qam1.h

来自「it is a program about ofdm,and it is pro」· C头文件 代码 · 共 117 行

H
117
字号
void QAM1(int *buffer_QAM1,short *buffer_jiaozhi1,short *qpsk_sequence1,short *r_data,int rdata_len)
{  
   int i,j; 
   double r_data_avrg;
   long double sum=0;  
   double min;
   double dis[8];
   double temp[8][2];
   double a,b;	
   for(i=0;i<5600;i++)
     {
	   r_data[i]=buffer_QAM1[i]/100;
	 }
   temp[0][0]=10000/2.1753;
   temp[0][1]=10000/2.1753;
   temp[1][0]=-10000/2.1753;
   temp[1][1]=10000/2.1753;
   temp[2][0]=10000/2.1753;
   temp[2][1]=-10000/2.1753;
   temp[3][0]=-10000/2.1753;
   temp[3][1]=-10000/2.1753;
   temp[4][0]=0;
   temp[4][1]=27320/2.1753;
   temp[5][0]=-27320/2.1753;
   temp[5][1]=0;
   temp[6][0]=27320/2.1753;
   temp[6][1]=0;
   temp[7][0]=0;
   temp[7][1]=-27320/2.1753;

   for (i=0;i<rdata_len;i++)
	  {
	    sum+=pow(r_data[i],2);
	   }
   r_data_avrg=sqrt(2*sum/rdata_len);
   for (i=0;i<rdata_len;i++)
	  {
	    r_data[i]=10000*r_data[i]/r_data_avrg;
	  }

   for(i=0;i<2800;i++)
     {
	   qpsk_sequence1[i]=0;
	   for(j=0;j<8;j++)
	     { 
	       dis[j]=0;
		   a=r_data[2*i]-temp[j][0];
		   b=r_data[2*i+1]-temp[j][1];
		   dis[j]=module(a,b);
	     }
        min=dis[0];
	    for(j=1;j<8;j++)
	      {
		    if(dis[j]<min)
	          {
	            min=dis[j];
		        qpsk_sequence1[i]=j;
	          }
		  }
      } 	
   for(i=0;i<rdata_len/2;i++)
	{
      if (qpsk_sequence1[i]==0)
	    {
	      buffer_jiaozhi1[3*i]=0;
	      buffer_jiaozhi1[3*i+1]=0;
	      buffer_jiaozhi1[3*i+2]=0;
		}
	  else if (qpsk_sequence1[i]==1)
	    {
	      buffer_jiaozhi1[3*i]=0;
	      buffer_jiaozhi1[3*i+1]=0;
	      buffer_jiaozhi1[3*i+2]=1;
		 }
	  else if (qpsk_sequence1[i]==2)
	    {
	      buffer_jiaozhi1[3*i]=0;
	      buffer_jiaozhi1[3*i+1]=1;
	      buffer_jiaozhi1[3*i+2]=0;
	     }
	  else if (qpsk_sequence1[i]==3) 
	    {
	      buffer_jiaozhi1[3*i]=0;
	      buffer_jiaozhi1[3*i+1]=1;
	      buffer_jiaozhi1[3*i+2]=1;
		 } 
	  else if (qpsk_sequence1[i]==4)
	    {
	      buffer_jiaozhi1[3*i]=1;
	      buffer_jiaozhi1[3*i+1]=0;
	      buffer_jiaozhi1[3*i+2]=0;
	 	 }
	  else if (qpsk_sequence1[i]==5)
	    {
	      buffer_jiaozhi1[3*i]=1;
	      buffer_jiaozhi1[3*i+1]=0;
	      buffer_jiaozhi1[3*i+2]=1;
		 }
	  else if (qpsk_sequence1[i]==6)
	    {
	      buffer_jiaozhi1[3*i]=1;
	      buffer_jiaozhi1[3*i+1]=1;
	      buffer_jiaozhi1[3*i+2]=0;
		 }
	  else 
	    {
	      buffer_jiaozhi1[3*i]=1;
	      buffer_jiaozhi1[3*i+1]=1;
	      buffer_jiaozhi1[3*i+2]=1;
		 }
	}
return;
}



⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?