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

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

?? reed_solomon0.h

?? DSP中實現的RS編碼+MFSK調制的實現
?? H
?? 第 1 頁 / 共 2 頁
字號:
	free(gx);
	free(addtemp);
	free(multtemp);
    return Temp;
}

int *CountSi(int *R, int m,int N /* N= 2^m-1*/,int t)   // count the 伴隨多項式 S(i)
{
    int i,j;
   // int *result=(int *)calloc(2*t,sizeof(int));
  //  int *s=(int *)calloc(N,sizeof(int));
    int s[2];
    Result=(int *)calloc(2*t,sizeof(int));
    for(j=0;j<2*t;j++)
    {
    	s[0]=R[0];
      for( i=1;i<N;i++)
      {
        s[1]=MultInGf(R[i],(i*(j+1))%N,N);       //R[a^i]
        s[1]=AddInGf(s[1],s[0],m);
		s[0]=s[1];
      }
      Result[j]=s[1];
    }
	 
    return Result;
	//free(result);
}
//多項式的運算。用于decode操作。poly(ErrorLoc,dj,j-1,maxIn,t,m)
int poly(int * o,int *dj, int j,int i,int t,int m)  //o:error,
{
	int Row;	
	int xish;
    int N;
    int q;
	int xi=j-i;
    int h;
	int polyLen=0;
	int *temp=(int *)calloc(2*t,sizeof(int));

	Row=2*t;
	N=(int)pow(2,m)-1;
	xish=DivInGf(dj[j],dj[i],N); // =dj/di;
	
	// count step1=(dj/di)*o(i)
	for(h=0;h<2*t;h++)
	{
		temp[h]=MultInGf(o[Row*i+h],xish,N);
	}

	// count step2=step1*x^(xi)
	for(q=0;q<xi;q++)
	{
		for(h=2*t-1;h>=1;h--)
		{
			temp[h]=temp[h-1];
		}
	}
	for(h=0;h<xi;h++)
		temp[h]=N;  // the LSB = N

	// count step3:o(i+1)
	
	for(h=0;h<2*t;h++)
		o[Row*(j+1)+h]=AddInGf(o[Row*j+h],temp[h],m);
	for(h=2*t-1;h>=0;h--) //計算多項式的階數。
	{
		if(o[Row*(j+1)+h]!=N)
		{
		polyLen=h;
		break;
		}
	}
	return polyLen;  //返回多項式的階數。
	//free(temp);
	
}  

void Decode(int * R,int *S,int m,int N,int L)  //解碼函數。R=code
{
   int t=(N-L)/2;
   //t=(N-L)/2;

   int * D=(int *) calloc(2*t+2,sizeof(int));
   int * deta=(int*)calloc(2*t+2,sizeof(int));
   int * dj=(int *)calloc(2*t+2,sizeof(int));
   int * ErrorLoc=(int *)calloc((2*t+2) * 2*t,sizeof(int));  //o(x)
 
   int i,j=0;   
   int Row=2*t;

   int max,maxIn=0;
   int temp;
   int sum;

   int vol;

   int thelast;

   int	k=0,current;
   int  RootNum;  //根的個數。
   int  *root;

   int mik;
   int sign;
   int *xe;  //在xe數組里存放了錯誤值。
   int * ErrorMat;
   int * B;

   int CorrectR=0;

   //  initial  //
   for(i=0;i<(2*t+2)*2*t;i++)
	   ErrorLoc[i]=N;

   ///////////迭代法求錯誤多項式//////////////
   ErrorLoc[Row*j]=0;   
   D[j]=0;
   deta[j]=-1;
   dj[j]=0;   //a^0=1  //有限域內的指數表示。
   
   j++;
   ErrorLoc[Row*j]=0;
   D[j]=0;
   deta[j]=0;
   dj[j]=S[0];         //有限域內的指數表示。

  
   //int max,maxIn=0;
   //int temp;
   //int sum;

   for(j=2;j<2*t+2;j++)
	{
		if(dj[j-1]!=N)
		{
	     // 找到max(i-D(i)) 并且di!=N
		 // step0: to find the max(i-D(i)) and di!=N
		  max=deta[0];
		  maxIn=0;
			for(i=j-2;i>=1;i--)
			{
			  if(max< deta[i] && dj[i]!=N)
				{ max=deta[i];
				  maxIn=i;
				}
			}

        // 更新ErrorLoc(j+1)=ErrorLoc(i)+dj/di*x^(j-i)*ErrorLoc(i) 
			D[j]=poly(ErrorLoc,dj,j-1,maxIn,t,m); 
			deta[j]=j-D[j]-1;   //更新j-D[j]
          
		}// if(dj[j-1]!=N)
		else   // dj[j-1]==N
		{
			for(i=0;i<2*t;i++)
				ErrorLoc[Row*j+i]=ErrorLoc[Row*(j-1)+i];

			deta[j]=1+deta[j-1];
			D[j]=D[j-1];
			
		}

		// update dj;
			if(j!=2*t+1)
			{
			sum=S[j-1];
			for(vol=1;vol<=D[j];vol++)
			{
				temp=MultInGf(ErrorLoc[Row*j+vol],S[j-vol-1],N);
				sum=AddInGf(sum,temp,m);
			}
			dj[j]=sum;
			}
	}

   //int thelast=j-1;
   thelast=j-1;
     //use the chien method to find the polynomial root.
	 //用錢收索法計算多項式的根。
     //求錯誤位置。
	 //root[] 存放錯誤位置。
	
    //int	k=0,current;
	//int RootNum=D[j-1];  //根的個數。
	//int *root=(int *)calloc(RootNum,sizeof(int));
   RootNum=D[j-1];
   root=(int *)calloc(RootNum,sizeof(int));

	for (i=N-1;i>=0;i-- )
	{
        sum=0;
		for(j=1;j<=RootNum;j++)
		{
			current=MultInGf((i*j)% N ,ErrorLoc[Row*thelast+j],N);
			sum=AddInGf(current,sum,m);
		}
		if(sum==N)
		{root[k]=N-i;
		 k++;
		}
	}

////////////////////////////////////////////////////////
// use the Gauss method again to find the error value.
// 計算錯誤值。
// 下面的方法是基于高斯消元法進行的。
   //int mik;
   //int sign;
   //int *xe=(int *)calloc(RootNum,sizeof(int));  //在xe數組里存放了錯誤值。
   //int * ErrorMat=(int *)calloc(RootNum*RootNum,sizeof(int));
   //int * B= (int *)calloc(RootNum,sizeof(int));
    xe=(int *)calloc(RootNum,sizeof(int));  //在xe數組里存放了錯誤值。
    ErrorMat=(int *)calloc(RootNum*RootNum,sizeof(int));
    B= (int *)calloc(RootNum,sizeof(int));

   RootNum=k;
   if(k!=0)   //如果沒有錯誤值,下面的步驟就不用了。
   {
   //建立錯誤值線性多項式〔矩陣〕。
   for(i=0;i<RootNum;i++)
   {
	   for(j=0;j<RootNum;j++)
	   {
		   ErrorMat[i*RootNum+j]=((i+1)*root[j]) % N;      /// 可能有bug發生
	   }
   B[i]=S[i];
   }
   
   //高斯法求解線性多項式。
	  for(k=0;k<RootNum-1;k++)  // 一共有的行數。
      {
       for(i=k+1;i<RootNum;i++)  //計算 現在所在的行數以下的各行
       {
         mik=(abs(ErrorMat[i*RootNum+k]-ErrorMat[k*RootNum+k])) % N;  //a^i / a^j
         sign=(ErrorMat[i*RootNum+k]-ErrorMat[k*RootNum+k])>0 ? 1:-1;

		 for(j=k+1;j<RootNum;j++)  //對于本行中的所有元素
         {
			 if(sign>0)
				 ErrorMat[i*RootNum+j]=AddInGf(ErrorMat[i*RootNum+j],MultInGf(mik,ErrorMat[k*RootNum+j],N),m);
			 else
				 ErrorMat[i*RootNum+j]=AddInGf( MultInGf(ErrorMat[i*RootNum+j],mik,N), ErrorMat[k*RootNum+j] ,m);
         }
		 if (sign>0)
            B[i]=AddInGf(B[i],MultInGf(mik,B[k],N),m);
		 else
			B[i]=AddInGf(MultInGf(B[i],mik,N), B[k], m);
       }
      }	 

	 // initial the x
   	 //回代求解
	 for (i=0;i<RootNum;i++ )
	 {
		 xe[i]=N;
	 }
	 /////////////////////////////////////////////////////////////////////////////
	 xe[RootNum-1]=DivInGf(B[RootNum-1],ErrorMat[(RootNum-1)*RootNum+RootNum-1],N);  //GF divide

         current=0;
		 for(i=RootNum-2;i>=0;i--)
	     {
			sum=N;
			for(j=i+1;j<=RootNum-1;j++)
			 {
				current=MultInGf(ErrorMat[i*RootNum+j],xe[j],N);
				sum=AddInGf(current,sum,m);
			 }
			   temp=AddInGf(B[i],sum,m);
			   xe[i]=DivInGf(temp,ErrorMat[i*RootNum+i],N);
		 }
	  ////////////// 在xe數組里存放了錯誤值。/////
		//更正接收值。R[]存放接收值。
		//int CorrectR=0;
          for (i=0;i<N;i++)
		  { if(i==root[CorrectR])
			  {R[i]=AddInGf(R[i],xe[CorrectR],m);
			  CorrectR++;
			  }
		  }
   }//if(k!=0)
   free(xe);  //free memory
   free(D); 
   free(deta);
   free(dj);
   free(ErrorLoc);
   free(ErrorMat);
   free(B); 
   free(root);
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美一区二区免费视频| 污片在线观看一区二区| 亚洲电影激情视频网站| 国产精品自拍三区| 欧美日韩精品一区二区在线播放| 精品国内片67194| 亚洲国产精品一区二区尤物区| 国产一区二区视频在线| 这里只有精品免费| 亚洲精品一二三四区| 国产高清无密码一区二区三区| 91精品国产综合久久福利| 亚洲美女在线国产| 91丨九色丨蝌蚪丨老版| 精品对白一区国产伦| 日本中文字幕一区二区有限公司| 色久综合一二码| 最新日韩av在线| 成人av在线资源网站| 久久精品人人做人人综合 | 亚洲中国最大av网站| 国产aⅴ综合色| 久久精品视频一区二区三区| 精品一区二区在线播放| 日韩欧美一区电影| 免费高清在线一区| 精品国产一区a| 激情亚洲综合在线| 日韩欧美不卡一区| 久久电影国产免费久久电影 | 蜜臀久久久久久久| 欧美日韩在线一区二区| 亚洲一区二区三区四区五区黄 | 中文字幕日韩欧美一区二区三区| 国产精品乡下勾搭老头1| 久久精品日产第一区二区三区高清版 | 国产精品一区在线观看你懂的| 2022国产精品视频| 国产精品一二三四| 国产精品久线观看视频| 成人高清免费在线播放| 国产精品国产三级国产| av电影天堂一区二区在线| 亚洲视频综合在线| 欧美视频中文字幕| 日韩成人精品在线观看| 欧美精品一区二区三| 成人中文字幕合集| 亚洲美女电影在线| 4438亚洲最大| 国产成人精品免费看| 亚洲欧洲另类国产综合| 91国偷自产一区二区使用方法| 午夜视黄欧洲亚洲| 精品国精品自拍自在线| 不卡电影免费在线播放一区| 一区二区三区精品在线观看| 在线成人av网站| 风间由美一区二区三区在线观看 | 亚洲激情第一区| 日韩色在线观看| 福利电影一区二区| 亚洲va欧美va天堂v国产综合| 欧美va亚洲va| 一本到一区二区三区| 蜜臂av日日欢夜夜爽一区| 国产欧美一区二区精品秋霞影院| 欧美综合天天夜夜久久| 麻豆成人免费电影| 亚洲欧美偷拍三级| 精品国产1区2区3区| 色婷婷av一区| 国产一区二区在线免费观看| 一区二区三区四区激情| 久久青草国产手机看片福利盒子 | 成人18视频日本| 日本亚洲一区二区| 国产精品久久久久久久久图文区 | 国产精品一二三| 日韩精品视频网| 洋洋av久久久久久久一区| 国产午夜亚洲精品不卡 | 欧美福利一区二区| av福利精品导航| 国产成人自拍网| 日本欧美在线观看| 一区二区三区不卡视频| 久久精品夜夜夜夜久久| 日韩一区二区三区四区五区六区| 91在线免费播放| 丁香五精品蜜臀久久久久99网站| 美女网站视频久久| 五月综合激情网| 亚洲综合一二区| 亚洲欧洲精品一区二区三区| 国产拍欧美日韩视频二区| 精品日韩欧美在线| 制服丝袜av成人在线看| 欧美性色黄大片| 91麻豆免费观看| 99天天综合性| 成人黄色777网| 国产精品系列在线观看| 国产毛片精品国产一区二区三区| 蜜芽一区二区三区| 日本在线不卡视频一二三区| 亚洲成人第一页| 亚洲成人动漫在线免费观看| 亚洲图片欧美一区| 亚洲成人在线观看视频| 亚洲高清三级视频| 午夜电影一区二区| 天天色综合成人网| 日韩在线一区二区三区| 国产精品自拍网站| thepron国产精品| 91免费在线播放| 不卡的看片网站| va亚洲va日韩不卡在线观看| 成人h动漫精品一区二| www.欧美亚洲| 色综合夜色一区| 一本到不卡免费一区二区| 欧美系列日韩一区| 欧美日韩高清在线播放| 欧美一区二区三区啪啪| 精品久久一区二区三区| 国产欧美一区二区三区在线看蜜臀 | 久久精品一级爱片| 亚洲欧洲日产国产综合网| 一级中文字幕一区二区| 婷婷亚洲久悠悠色悠在线播放 | 欧美mv和日韩mv的网站| 久久午夜羞羞影院免费观看| 中文字幕电影一区| 亚洲电影视频在线| 久久精品久久久精品美女| 国产高清亚洲一区| 色偷偷久久一区二区三区| 7777精品伊人久久久大香线蕉| 精品乱码亚洲一区二区不卡| 国产精品久久久久aaaa樱花| 亚洲国产欧美日韩另类综合| 国产一区二区三区四| 成人av在线一区二区| 欧美狂野另类xxxxoooo| 久久美女艺术照精彩视频福利播放| 国产精品理伦片| 五月综合激情日本mⅴ| 国产伦精品一区二区三区视频青涩| 99久久伊人网影院| 日韩一区二区视频在线观看| 国产精品天美传媒| 日韩中文字幕麻豆| 99久久婷婷国产精品综合| 日韩三级在线观看| 国产精品电影一区二区三区| 免费观看一级特黄欧美大片| 91蜜桃免费观看视频| 精品国产乱码久久久久久老虎| 中文字幕在线一区| 久久国产精品72免费观看| 色狠狠综合天天综合综合| 久久日韩粉嫩一区二区三区| 有码一区二区三区| 国内精品伊人久久久久影院对白| 91国内精品野花午夜精品| 国产欧美精品国产国产专区| 天堂一区二区在线| 色综合久久88色综合天天6| 欧美精品一区二区高清在线观看| 一区二区三区在线免费观看| 成人精品国产福利| 精品免费日韩av| 日韩黄色免费电影| 日本乱码高清不卡字幕| 中文字幕av免费专区久久| 六月丁香婷婷色狠狠久久| 欧美精品乱码久久久久久按摩| 亚洲色图制服诱惑| 成人手机电影网| 久久日韩粉嫩一区二区三区| 麻豆精品在线观看| 欧美狂野另类xxxxoooo| 亚洲一区二区三区精品在线| 99精品国产一区二区三区不卡| 欧美激情在线一区二区三区| 国产一区二区网址| 久久亚洲影视婷婷| 狠狠色丁香婷婷综合久久片| 日韩三区在线观看| 免费高清在线一区| 日韩天堂在线观看| 日韩二区在线观看| 欧美欧美欧美欧美| 性欧美疯狂xxxxbbbb| 欧美日韩一区二区三区免费看| 亚洲在线成人精品| 欧美精品在欧美一区二区少妇| 性做久久久久久久免费看|