⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 qam.h

📁 it is a program about ofdm,and it is programed on dsk6455
💻 H
字号:
void QAM(short *buffer_jiaozhi,short *buffer_QAM,int buffer_jiaozhi_len,short *psudo_bit_sequence,short *qpsk_sequence)
{
  int i;
  int x;
  int L1;
  struct _complex temp[8];
  //struct _complex buffer_q[2800];
  x=buffer_jiaozhi_len%6;
  if(x==0)
   { 
    L1=buffer_jiaozhi_len;
	for(i=0;i<buffer_jiaozhi_len;i++)
     {
      psudo_bit_sequence[i]=buffer_jiaozhi[i];
     }
	}
  else 
   {
    L1=(floor((float)buffer_jiaozhi_len/(float)6)+1)*6;
  
    for(i=0;i<buffer_jiaozhi_len;i++)
     {
      psudo_bit_sequence[i]=buffer_jiaozhi[i];
     }
    for(i=buffer_jiaozhi_len;i<L1;i++)
     {
      psudo_bit_sequence[i]=0;
     }
	}
  //memset(qpsk_sequence,0,sizeof(qpsk_sequence)*sizeof(int));
  for(i=0;i<L1/3;i++)
   {
     qpsk_sequence[i]=4*psudo_bit_sequence[3*i]+2*psudo_bit_sequence[3*i+1]+psudo_bit_sequence[3*i+2];   //the range of data (qpsk_sequence) is from 1 to 8
    }
   
   temp[0].x=1;
   temp[0].y=1;
   temp[1].x=-1;
   temp[1].y=1;
   temp[2].x=1;
   temp[2].y=-1;
   temp[3].x=-1;
   temp[3].y=-1;
   temp[4].x=0;
   temp[4].y=2.732;
   temp[5].x=-2.732;
   temp[5].y=0;
   temp[6].x=2.732;
   temp[6].y=0;
   temp[7].x=0;
   temp[7].y=-2.732;
  
  for(i=0;i<2800;i++)
   {
    if(qpsk_sequence[i]==0)       //CPU peried 89754
      { buffer_QAM[2*i]=10000*temp[0].x/2.1753;
		buffer_QAM[2*i+1]=10000*temp[0].y/2.1753; }
	else if(qpsk_sequence[i]==1)
      { buffer_QAM[2*i]=10000*temp[1].x/2.1753;
		buffer_QAM[2*i+1]=10000*temp[1].y/2.1753; }
	else if(qpsk_sequence[i]==2)
      { buffer_QAM[2*i]=10000*temp[2].x/2.1753;
		buffer_QAM[2*i+1]=10000*temp[2].y/2.1753; }
	else if(qpsk_sequence[i]==3)
      { buffer_QAM[2*i]=10000*temp[3].x/2.1753;
		buffer_QAM[2*i+1]=10000*temp[3].y/2.1753; }
	else if(qpsk_sequence[i]==4)
      { buffer_QAM[2*i]=10000*temp[4].x/2.1753;
		buffer_QAM[2*i+1]=10000*temp[4].y/2.1753; } 
	else if(qpsk_sequence[i]==5)
      { buffer_QAM[2*i]=10000*temp[5].x/2.1753;
		buffer_QAM[2*i+1]=10000*temp[5].y/2.1753; }
	else if(qpsk_sequence[i]==6)
      { buffer_QAM[2*i]=10000*temp[6].x/2.1753;
		buffer_QAM[2*i+1]=10000*temp[6].y/2.1753; }
	else 
      { buffer_QAM[2*i]=10000*temp[7].x/2.1753;
		buffer_QAM[2*i+1]=10000*temp[7].y/2.1753; }
   }
   
   /*for(i=0;i<5600;i++)
	    {
		  buffer_QAM[i]=buffer_QAM[i]/10;
		  
		}*/
  
   return;

}

⌨️ 快捷键说明

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