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

📄 channel.cpp

📁 QPSK调制Modem的C实现及文档说明
💻 CPP
字号:
// definition of channel
#include "GaussianNoiseGenerator.cpp"

class channel
{
  private:
   long seed;
   double variance;
  public:
   channel(){ seed = -300; variance=1;}  /* seed must be a negative integer*/
   void SetParameters(double var, long sd) { variance=var; seed=sd; }
   void AddAWGN(char InFile[],char Out1[],char Out2[],long int NumSamples);
};

void channel::AddAWGN(char InFile[],char Out1[],char Out2[],long int NumSamples)
{ ifstream ReadFromFile(InFile,ios::in);
  ofstream WriteChannelSample(Out1,ios::out);
  ofstream WriteNoiseSample(Out2,ios::out);
  double temp1,temp2;
   cout<<"Adding AWGN(variance="<<variance<<" Mean=0)..."<<endl;
   for (int i=0; i<NumSamples; ++i)
   { ReadFromFile>>temp1;
     temp2=sqrt(variance)*Gaussian(&seed);
     temp1=temp1+temp2;                     /* add noise here */
     WriteChannelSample<<temp1<<endl;
     WriteNoiseSample<<temp2<<endl;
   }
}
 

⌨️ 快捷键说明

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