亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? rs.c

?? 一些糾錯編碼的c程序實現
?? C
?? 第 1 頁 / 共 2 頁
字號:
   following the terminology of Lin and Costello :   d[u] is the 'mu'th
   discrepancy, where u='mu'+1 and 'mu' (the Greek letter!) is the step number
   ranging from -1 to 2*tt (see L&C),  l[u] is the
   degree of the elp at that step, and u_l[u] is the difference between the
   step number and the degree of the elp.
*/
/* initialise table entries */
      d[0] = 0 ;           /* index form */
      d[1] = s[1] ;        /* index form */
      elp[0][0] = 0 ;      /* index form */
      elp[1][0] = 1 ;      /* polynomial form */
      for (i=1; i<n-k; i++)
        { elp[0][i] = -1 ;   /* index form */
          elp[1][i] = 0 ;   /* polynomial form */
        }
      l[0] = 0 ;
      l[1] = 0 ;
      u_lu[0] = -1 ;
      u_lu[1] = 0 ;
      u = 0 ;

      do
      {
        u++ ;
        if (d[u]==-1)
          { l[u+1] = l[u] ;
            for (i=0; i<=l[u]; i++)
             {  elp[u+1][i] = elp[u][i] ;
                elp[u][i] = index_of[elp[u][i]] ;
             }
          }
        else
/* search for words with greatest u_lu[q] for which d[q]!=0 */
          { q = u-1 ;
            while ((d[q]==-1) && (q>0)) q-- ;
/* have found first non-zero d[q]  */
            if (q>0)
             { j=q ;
               do
               { j-- ;
                 if ((d[j]!=-1) && (u_lu[q]<u_lu[j]))
                   q = j ;
               }while (j>0) ;
             } ;

/* have now found q such that d[u]!=0 and u_lu[q] is maximum */
/* store degree of new elp polynomial */
            if (l[u]>l[q]+u-q)  l[u+1] = l[u] ;
            else  l[u+1] = l[q]+u-q ;

/* form new elp(x) */
            for (i=0; i<n-k; i++)    elp[u+1][i] = 0 ;
            for (i=0; i<=l[q]; i++)
              if (elp[q][i]!=-1)
                elp[u+1][i+u-q] = alpha_to[(d[u]+n-d[q]+elp[q][i])%n] ;
            for (i=0; i<=l[u]; i++)
              { elp[u+1][i] ^= elp[u][i] ;
                elp[u][i] = index_of[elp[u][i]] ;  /*convert old elp value to index*/
              }
          }
        u_lu[u+1] = u-l[u+1] ;

/* form (u+1)th discrepancy */
        if (u<n-k)    /* no discrepancy computed on last iteration */
          {
            if (s[u+1]!=-1)
                   d[u+1] = alpha_to[s[u+1]] ;
            else
              d[u+1] = 0 ;
            for (i=1; i<=l[u+1]; i++)
              if ((s[u+1-i]!=-1) && (elp[u+1][i]!=0))
                d[u+1] ^= alpha_to[(s[u+1-i]+index_of[elp[u+1][i]])%n] ;
            d[u+1] = index_of[d[u+1]] ;    /* put d[u+1] into index form */
          }
      } while ((u<n-k) && (l[u+1]<=t)) ;

      u++ ;
      if (l[u]<=t)         /* can correct error */
       {
/* put elp into index form */
         for (i=0; i<=l[u]; i++)   elp[u][i] = index_of[elp[u][i]] ;

/* find roots of the error location polynomial */
         for (i=1; i<=l[u]; i++)
           reg[i] = elp[u][i] ;
         count = 0 ;
         for (i=1; i<=n; i++)
          {  q = 1 ;
             for (j=1; j<=l[u]; j++)
              if (reg[j]!=-1)
                { reg[j] = (reg[j]+j)%n ;
                  q ^= alpha_to[reg[j]] ;
                } ;
             if (!q)        /* store root and error location number indices */
              { root[count] = i;
                loc[count] = n-i ;
                count++ ;
              };
          } ;
         if (count==l[u])    /* no. roots = degree of elp hence <= tt errors */
          {
/* form polynomial z(x) */
           for (i=1; i<=l[u]; i++)        /* Z[0] = 1 always - do not need */
            { if ((s[i]!=-1) && (elp[u][i]!=-1))
                 z[i] = alpha_to[s[i]] ^ alpha_to[elp[u][i]] ;
              else if ((s[i]!=-1) && (elp[u][i]==-1))
                      z[i] = alpha_to[s[i]] ;
                   else if ((s[i]==-1) && (elp[u][i]!=-1))
                          z[i] = alpha_to[elp[u][i]] ;
                        else
                          z[i] = 0 ;
              for (j=1; j<i; j++)
                if ((s[j]!=-1) && (elp[u][i-j]!=-1))
                   z[i] ^= alpha_to[(elp[u][i-j] + s[j])%n] ;
              z[i] = index_of[z[i]] ;         /* put into index form */
            } ;

  /* evaluate errors at locations given by error location numbers loc[i] */
           for (i=0; i<n; i++)
             { err[i] = 0 ;
               if (recd[i]!=-1)        /* convert recd[] to polynomial form */
                 recd[i] = alpha_to[recd[i]] ;
               else  recd[i] = 0 ;
             }
           for (i=0; i<l[u]; i++)    /* compute numerator of error term first */
            { err[loc[i]] = 1;       /* accounts for z[0] */
              for (j=1; j<=l[u]; j++)
                if (z[j]!=-1)
                  err[loc[i]] ^= alpha_to[(z[j]+j*root[i])%n] ;
              if (err[loc[i]]!=0)
               { err[loc[i]] = index_of[err[loc[i]]] ;
                 q = 0 ;     /* form denominator of error term */
                 for (j=0; j<l[u]; j++)
                   if (j!=i)
                     q += index_of[1^alpha_to[(loc[j]+root[i])%n]] ;
                 q = q % n;
                 err[loc[i]] = alpha_to[(err[loc[i]]-q+n)%n] ;
                 recd[loc[i]] ^= err[loc[i]] ;  /*recd[i] must be in polynomial form */
               }
            }
          }
         else    /* no. roots != degree of elp => >tt errors and cannot solve */
           for (i=0; i<n; i++)        /* could return error flag if desired */
               if (recd[i]!=-1)        /* convert recd[] to polynomial form */
                 recd[i] = alpha_to[recd[i]] ;
               else  recd[i] = 0 ;     /* just output received codeword as is */
       }
     else         /* elp has degree has degree >tt hence cannot solve */
       for (i=0; i<n; i++)       /* could return error flag if desired */
          if (recd[i]!=-1)        /* convert recd[] to polynomial form */
            recd[i] = alpha_to[recd[i]] ;
          else  recd[i] = 0 ;     /* just output received codeword as is */
    }
   else       /* no non-zero syndromes => no errors: output received codeword */
    for (i=0; i<n; i++)
       if (recd[i]!=-1)        /* convert recd[] to polynomial form */
         recd[i] = alpha_to[recd[i]] ;
       else  recd[i] = 0 ;
 }



main()
{
  register int i;

/* generate the Galois Field GF(2**mm) */

//modify by mhzhang 06-7-8
//change the m,k of the rs code
  enter_parameter();
  generate_gf() ;
  printf("Look-up tables for GF(2**%2d)\n",m) ;
  printf("  i   alpha_to[i]  index_of[i]\n") ;
  for (i=0; i<=n; i++)
   printf("%3d      %3d          %3d\n",i,alpha_to[i],index_of[i]) ;
  printf("\n\n") ;

/* compute the generator polynomial for this RS code */
  gen_poly() ;


/* for known data, stick a few numbers into a zero codeword. Data is in
   polynomial form.
*/
for  (i=0; i<k; i++)   data[i] = 0 ;

/* for example, say we transmit the following message (nothing special!) */
data[0] = 8 ;
data[1] = 6 ;
data[2] = 8 ;
data[3] = 1 ;
data[4] = 2 ;
data[5] = 4 ;
data[6] = 15 ;
data[7] = 9 ;
data[8] = 9 ;

/* encode data[] to produce parity in bb[].  Data input and parity output
   is in polynomial form
*/
  encode_rs() ;

/* put the transmitted codeword, made up of data plus parity, in recd[] */
  for (i=0; i<n-k; i++)  recd[i] = bb[i] ;
  for (i=0; i<k; i++) recd[i+n-k] = data[i] ;

/* if you want to test the program, corrupt some of the elements of recd[]
   here. This can also be done easily in a debugger. */
/* Again, lets say that a middle element is changed */
  data[n-n/2] = 3 ;


  for (i=0; i<n; i++)
     recd[i] = index_of[recd[i]] ;          /* put recd[i] into index form */

/* decode recv[] */
  decode_rs() ;         /* recd[] is returned in polynomial form */

/* print out the relevant stuff - initial and decoded {parity and message} */
  printf("Results for Reed-Solomon code (n=%3d, k=%3d, t= %3d)\n\n",n,k,t) ;
  printf("  i  data[i]   recd[i](decoded)   (data, recd in polynomial form)\n");
  for (i=0; i<n-k; i++)
    printf("%3d    %3d      %3d\n",i, bb[i], recd[i]) ;
  for (i=n-k; i<n; i++)
    printf("%3d    %3d      %3d\n",i, data[i-n+k], recd[i]) ;
}


?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲天堂a在线| 国产精品免费视频观看| 久久国产尿小便嘘嘘尿| 国产精品久久99| 欧美一区日韩一区| av一本久道久久综合久久鬼色| 亚州成人在线电影| 亚洲日本成人在线观看| 久久久久久电影| 国产精品久久毛片| 蜜桃av一区二区在线观看| 欧美日精品一区视频| 国产精品久久三区| 91香蕉视频污在线| 亚洲国产精品成人综合色在线婷婷| 午夜国产精品影院在线观看| 欧美午夜精品久久久久久孕妇| 中文字幕在线不卡国产视频| 成人av网站在线观看| 最新日韩av在线| 色国产综合视频| 亚洲精品国产a| 欧美精品欧美精品系列| 免费成人美女在线观看| 日韩欧美电影一区| 顶级嫩模精品视频在线看| 亚洲综合色区另类av| 欧美一二三区在线观看| 国产一区二区三区最好精华液| 欧美极品aⅴ影院| 91视频你懂的| 亚洲国产日韩精品| 色婷婷综合激情| 一区二区三区欧美日韩| 色噜噜偷拍精品综合在线| 26uuu精品一区二区三区四区在线| 成人在线一区二区三区| 国产美女在线精品| 色爱区综合激月婷婷| 在线亚洲+欧美+日本专区| 亚洲色图色小说| 成人欧美一区二区三区1314| 国产精品色噜噜| 中文字幕不卡一区| 国产精品麻豆欧美日韩ww| 一色桃子久久精品亚洲| 亚洲欧美色图小说| 亚洲一级在线观看| 爽爽淫人综合网网站| 日本欧美大码aⅴ在线播放| 一区在线播放视频| 国产色一区二区| 久久先锋影音av| 日韩欧美不卡在线观看视频| 91麻豆精品国产91久久久久 | 毛片一区二区三区| 中文字幕第一页久久| 久久久久久一级片| 日韩亚洲欧美成人一区| 欧美男同性恋视频网站| 欧美色图片你懂的| 在线免费不卡电影| 在线精品视频一区二区三四 | 欧美日韩国产影片| 欧美日韩欧美一区二区| 91色porny蝌蚪| 在线观看日韩av先锋影音电影院| 一本到一区二区三区| 欧洲精品一区二区| 精品久久99ma| 欧美一区二区三区在线看| 欧美老肥妇做.爰bbww视频| 欧美一区二区三区影视| 欧美丝袜自拍制服另类| 五月激情丁香一区二区三区| 亚洲欧美一区二区在线观看| 亚洲另类色综合网站| 久久精品国产99国产| 26uuuu精品一区二区| 丝袜亚洲另类丝袜在线| 精品剧情在线观看| 日本欧美在线观看| 粉嫩绯色av一区二区在线观看 | 日本一二三四高清不卡| 亚洲综合激情网| 精品一区二区三区不卡| 99久久国产综合精品色伊| 日韩一区二区三| 国产日韩欧美高清| 午夜国产精品一区| 国产伦理精品不卡| 欧美色图12p| 中文字幕乱码亚洲精品一区| 婷婷开心激情综合| 国产乱妇无码大片在线观看| 日本乱人伦aⅴ精品| 26uuu亚洲| 奇米色一区二区| 91免费看`日韩一区二区| 欧美一级一区二区| 亚洲一二三四区不卡| 不卡的av在线| 久久久蜜桃精品| 麻豆一区二区三| 在线不卡中文字幕| 亚洲成人av电影在线| 91年精品国产| 亚洲欧洲成人精品av97| 国内精品伊人久久久久av影院 | 亚洲精选在线视频| 国产mv日韩mv欧美| 欧美大尺度电影在线| 丝袜脚交一区二区| 欧美精品 日韩| 26uuuu精品一区二区| 国产不卡在线一区| 久久久国际精品| 国产专区综合网| av日韩在线网站| 日韩一区二区在线观看视频| 亚洲成av人片在线| 日韩色视频在线观看| 美女视频网站久久| 26uuu精品一区二区在线观看| 成人听书哪个软件好| 欧美一区二区三区的| 日本亚洲三级在线| 蓝色福利精品导航| 国产精品一区二区三区网站| 亚洲人成网站在线| 国模冰冰炮一区二区| 欧美一区二区三区在线电影| 亚洲va国产天堂va久久en| 欧美亚洲尤物久久| 国产成人av资源| 久久综合色播五月| 99精品视频一区| 日韩va欧美va亚洲va久久| 日韩欧美一区二区免费| 成人精品免费看| 日韩一区精品字幕| 国产欧美日韩亚州综合| 91精品福利视频| 国产一区二区不卡在线| 亚洲男人天堂av网| 日韩一区二区三区在线观看 | 成人精品一区二区三区中文字幕| 亚洲欧洲无码一区二区三区| 欧美久久一区二区| 成人av集中营| 免费看精品久久片| 综合久久综合久久| 久久久久国产精品麻豆ai换脸| 色成年激情久久综合| 国产精品亚洲一区二区三区在线| 韩国精品主播一区二区在线观看 | 欧美精品一区男女天堂| 亚洲国产va精品久久久不卡综合| 欧美一级二级在线观看| 色综合久久综合网97色综合| 国内外成人在线视频| 粉嫩在线一区二区三区视频| 精品处破学生在线二十三| 天使萌一区二区三区免费观看| 日韩欧美中文字幕精品| 在线观看视频一区二区欧美日韩| 亚洲欧美日韩久久| 欧美夫妻性生活| 国产一区二区三区高清播放| 国产精品系列在线| 精品视频在线视频| 国产一区二区91| 伊人开心综合网| 日韩一区二区三区电影在线观看 | 奇米影视一区二区三区小说| 亚洲超碰精品一区二区| 亚洲成年人网站在线观看| 一区二区三区成人| 亚洲韩国精品一区| 奇米影视一区二区三区| 美女视频黄 久久| 精品无人码麻豆乱码1区2区| 国产高清不卡一区二区| 成人高清视频在线| 日本韩国欧美在线| 欧美一二三区在线| 国产欧美精品一区aⅴ影院| 亚洲欧洲精品一区二区三区 | 国产色产综合色产在线视频| 国产欧美一区二区精品仙草咪| 欧美国产一区视频在线观看| 一区二区三区蜜桃网| 青娱乐精品视频| 风间由美一区二区av101| 91国在线观看| 日韩三级在线免费观看| 亚洲日韩欧美一区二区在线| 免费成人av在线播放| 成人国产精品视频| 欧美一级精品在线|