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

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

?? rs.c

?? RS(15,9)上的C語言糾錯源碼.在VC++6.0平臺上調試通過
?? C
?? 第 1 頁 / 共 2 頁
字號:
            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<nn-kk; 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]+nn-d[q]+elp[q][i])%nn] ; 
				 }
			}
            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<nn-kk)    /* 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]])%nn] ; 
				 }
			}
            d[u+1] = index_of[d[u+1]] ;    /* put d[u+1] into index form */ 
        } 
      } while ((u<nn-kk) && (l[u+1]<=tt)) ; 
      u++ ; 
      if (l[u]<=tt)         /* 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<=nn; i++) 
         {  
			 q = 1 ; 
             for (j=1; j<=l[u]; j++) 
			 {
				if (reg[j]!=-1) 
                { 
					reg[j] = (reg[j]+j)%nn ; 
					q ^= alpha_to[reg[j]] ; 
                } 
			 }
             if (!q)        /* store root and error location number indices */ 
             { 
					root[count] = i; 
					loc[count] = nn-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])%nn] ; 
					 }
			   }
			   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<nn; 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])%nn] ; 
					}
			   }
			   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])%nn]] ; 
						 }
					 }
					 q = q % nn ; 
					 err[loc[i]] = alpha_to[(err[loc[i]]-q+nn)%nn] ; 
					 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<nn; 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<nn; 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 codewor d */ 
	{
		for (i=0; i<nn; 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) */ 
  generate_gf() ; 
  printf("Look-up tables for GF(2**%2d)\n",mm) ; 
  printf("  i   alpha_to[i]  index_of[i]\n") ; 
  for (i=0; i<=nn; 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<kk; i++)   data[i] = 0 ; 
/* for example, say we transmit the following message (nothing special!) */ 
data[0] = 4; 
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<nn-kk; i++)  recd[i] = bb[i] ; 
  for (i=0; i<kk; i++) recd[i+nn-kk] = 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 */
//------------------------ Here Assum The Nioce Coming -----------------------
  //data[nn-nn/2] = 3 ;
//------------------------ Here Assum The Noice Coming -----------------------
  for (i=0; i<nn; 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",nn,kk,tt) ; 
  printf("  i  data[i]   recd[i](decoded)   (data, recd in polynomial form)\n"); 
  for (i=0; i<nn-kk; i++) 
    printf("%3d    %3d      %3d\n",i, bb[i], recd[i]) ; 
  for (i=nn-kk; i<nn; i++) 
    printf("%3d    %3d      %3d\n",i, data[i-nn+kk], recd[i]) ; 
} 
 
 
/////////-- 

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
婷婷久久综合九色综合伊人色| 久久综合视频网| 欧美r级电影在线观看| 亚洲欧美视频在线观看| 国产在线观看一区二区| 亚洲一卡二卡三卡四卡五卡| 午夜精品久久久久久久久久| 国产.欧美.日韩| 91精品国产美女浴室洗澡无遮挡| 中文字幕在线免费不卡| 国产一区美女在线| 日韩一区二区三区免费看 | 国产最新精品免费| 欧美亚洲日本国产| 亚洲免费高清视频在线| 懂色一区二区三区免费观看| 日韩免费视频线观看| 丝袜国产日韩另类美女| 91官网在线免费观看| 最近中文字幕一区二区三区| 国产suv精品一区二区883| 精品99久久久久久| 国内精品在线播放| 日韩欧美一二三四区| 日韩成人免费电影| 91精品在线一区二区| 婷婷激情综合网| 欧美日韩国产不卡| 日韩激情在线观看| 日韩免费高清视频| 九一久久久久久| 欧美va在线播放| 极品美女销魂一区二区三区 | 韩国在线一区二区| 久久午夜免费电影| 国产成人精品一区二区三区网站观看 | 不卡电影免费在线播放一区| 亚洲国产高清不卡| 色综合久久精品| 午夜精品久久久| 日韩免费看网站| 国产一区二区在线视频| 欧美极品aⅴ影院| 99久久精品免费观看| 亚洲一区在线视频| 欧美一区二区在线播放| 激情综合网av| 国产精品久久毛片| 91黄色免费版| 精品亚洲国内自在自线福利| 久久久精品tv| 色婷婷精品久久二区二区蜜臂av| 亚洲成av人片在线| 久久亚洲二区三区| 91小视频在线免费看| 午夜av区久久| 国产午夜精品美女毛片视频| 色8久久精品久久久久久蜜| 日韩综合一区二区| 国产欧美精品国产国产专区| 在线中文字幕不卡| 蜜桃久久精品一区二区| 欧美国产综合一区二区| 欧美色大人视频| 国产美女精品人人做人人爽| 亚洲欧美日韩一区| wwwwww.欧美系列| 欧美丝袜丝交足nylons图片| 久久精品国产精品亚洲综合| 亚洲女同女同女同女同女同69| 欧美日韩成人激情| 99国产精品久久| 韩国一区二区在线观看| 亚洲午夜久久久久久久久电影网| 久久久久久99精品| 欧美精选一区二区| 91在线码无精品| 国内成人自拍视频| 日韩精品成人一区二区在线| 国产精品理论片| 欧美成人一区二区| 欧美性大战xxxxx久久久| 丁香啪啪综合成人亚洲小说 | 亚洲图片欧美色图| 亚洲国产精品精华液ab| 日韩精品一区国产麻豆| 欧美性生活大片视频| 成人福利视频网站| 国产麻豆成人精品| 热久久久久久久| 五月天激情综合| 亚洲你懂的在线视频| 国产精品美女久久久久久久久久久| 欧美一区二区三区白人| 欧美中文一区二区三区| 色综合一区二区| 国产成人亚洲综合a∨猫咪| 久久国产成人午夜av影院| 五月天中文字幕一区二区| 亚洲在线观看免费| 伊人开心综合网| 一卡二卡三卡日韩欧美| 亚洲欧美日韩成人高清在线一区| 国产精品萝li| 欧美激情一二三区| 国产精品私人影院| 欧美国产激情二区三区 | 日韩制服丝袜av| 午夜私人影院久久久久| 亚洲午夜电影网| 性欧美疯狂xxxxbbbb| 午夜视频在线观看一区二区 | 91麻豆精品国产91久久久久| 欧美日本国产一区| 欧美精品在欧美一区二区少妇| 在线观看一区二区视频| 欧美私人免费视频| 欧美精品色一区二区三区| 欧美日韩不卡一区| 91麻豆精品国产91| 欧美成人一区二区三区在线观看| 精品电影一区二区三区| 久久毛片高清国产| 自拍偷自拍亚洲精品播放| 亚洲青青青在线视频| 亚洲成人免费av| 蜜桃精品视频在线| 国产成人综合亚洲网站| 9久草视频在线视频精品| 欧美综合视频在线观看| 在线成人午夜影院| 精品福利在线导航| 亚洲欧洲韩国日本视频| 亚洲综合一二三区| 秋霞午夜av一区二区三区| 国产自产高清不卡| jiyouzz国产精品久久| 欧美亚洲动漫制服丝袜| 日韩欧美一区二区免费| 国产视频一区二区在线| 亚洲精品乱码久久久久久久久 | 国产成人综合亚洲网站| 91麻豆免费看| 欧美一级日韩一级| 中文字幕av一区二区三区| 亚洲午夜在线视频| 精品午夜一区二区三区在线观看 | 亚洲一区二区四区蜜桃| 久久福利资源站| 91国在线观看| 久久亚洲一区二区三区四区| 夜色激情一区二区| 久久99精品久久久久久| 一本一道综合狠狠老| 精品乱人伦一区二区三区| 中文字幕亚洲一区二区av在线| 日韩影视精彩在线| 91啪九色porn原创视频在线观看| 5月丁香婷婷综合| 亚洲色图欧洲色图| 狠狠色丁香久久婷婷综合_中| 在线影视一区二区三区| 日本一区二区三区电影| 奇米精品一区二区三区在线观看一| av电影在线观看一区| 日韩精品中文字幕在线一区| 亚洲一区二区影院| 99热精品一区二区| 26uuu色噜噜精品一区二区| 午夜激情久久久| 一本久久综合亚洲鲁鲁五月天 | 国产欧美一区二区精品性色超碰| 亚洲成人资源网| 99久久99久久久精品齐齐| 久久精品日韩一区二区三区| 日本在线播放一区二区三区| 99久久99精品久久久久久| 国产亚洲欧美日韩俺去了| 免费欧美在线视频| 欧美人狂配大交3d怪物一区| 亚洲综合在线电影| 91毛片在线观看| 亚洲欧美日韩中文播放| 99久久精品免费看国产| 国产精品久久毛片av大全日韩| 国产一区二区三区免费| 欧美电视剧免费观看| 奇米888四色在线精品| 欧美一区二区播放| 首页国产丝袜综合| 91精品国产日韩91久久久久久| 亚洲视频免费观看| 91色婷婷久久久久合中文| 亚洲欧美日韩一区二区三区在线观看| 福利一区二区在线| 国产精品福利一区二区| 91麻豆自制传媒国产之光| 一区二区三区日韩精品视频| 欧美色精品天天在线观看视频| 亚洲最大的成人av|