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

📄 channel.h

📁 单用户dscdma的仿真
💻 H
字号:
#include <complex>
using namespace std;
class channel
{public:
  int numberofuserbit;                             //信息bit数
 double SNRdB;                                 //信噪比db表示
  double SNR;                                       //信噪比 Es/N0
  int Tb ;                                      //信息码的间隔时间
  int Tspreadfactor ;                          //时域扩频因子
  int Fspreadfactor ;                          //频域扩频因子
  int numberofpath  ;                           //径数
  int flat ;                                    //flat fading or not
  //(1->flat (only amplitude is fluctuated),0->nomal(phase and amplitude are fluctutated)
  int rayornot      ;
  double sigma;                                  // 方差 attenuation level caused by Eb/No or C/N
 // int mean  ;                                 //均值
  double SignalPower;                           //信号功率
  double N0;                                    //噪声平均功率 gauss噪声平均功率为其方差
  void AWGN( );                    //信号通过高斯信道
  double **ChannelRealIn;                   //进入信道序列的实部
  double **ChannelImagIn;                  //进行信道序列的虚部
  double **ChannelRealOut;                  //离开信道序列的实部
  double **ChannelImagOut;                  //离开调制后的序列的虚部

double tstp  ;     //最小时间分辨率    tstp   = 1 / sr / IPOINT(采样点) / clen(clen = length(mesq));       
int itau[10]  ; //Arrival time for each multipath normalized by tstp//数组大小=径数
double dlvl[10]  ; //Mean power for each multipath normalized by direct wave.//数组大小=径数
                   //dlvl = [0 ,10 ,20 ,25];This means that the second path is -10dB less than the first direct path.
double th[10]  ;  //Initial Phase of delayed wave//数组大小=径数//th1=[0.0,0.0,0.0,0.0];
double itnd    ;   //Number of fading counter to skip (50us/0.5us) nd*(fftlen+gilen)*10;
double itn[10];   //Initial value of fading counter//itnd1=[1000,2000, 3000, 4000];
int nsamp ; //Number of samples to be simulated
int fd   ;  //% Maximum Doppler frequency [Hz]              
int n0[10]   ;  //number of waves in order to generate fading//数组大小=径数 
                //n0=[6,7,6,7];% In normal case, more than six waves are needed to generate Rayleigh fading  
                     
void frequencyselectingfade();       //生成frequencyselectingfading信道

  
protected:

 private:
double normalnumber[100];                              //正态分布的随机数 
double *inoise  ;                          //每点噪声值
double *ramp  ;    // Amplitude contaminated by fading
double *rcos  ;    //Cosine value contaminated by fading
double *rsin  ;    //Cosine value contaminated by fading
   
    
 // int SpreadOut[100][100] ;                         //扩频后的信息码
  

  void randn(double *,double ,double ,double ,int );                    //产生正态分布的随机数
    void AWGN( int );                   //信号通过AWGN信道
	void Rayleighfade(double *,double *,double *,double *,double,int);                   //生成Rayleigh信道
	void delay(double *,double *,double *,double *,int);                           //产生延迟

	 double **Allocate2DArray( unsigned int, unsigned int );  //动态分配二维数组double
void DeAllocate2DArray(double **,unsigned int);         // 释放动态分配的二维数组double
int **intAllocate2DArray(unsigned int,unsigned int );  //动态分配二维数组int
void intDeAllocate2DArray( int **,unsigned int);       // 释放动态分配的二维数组int
double **sefadeRealOut;                  //通过频率选择性衰落后序列的实部
  double **sefadeImagOut;                  //通过频率选择性衰落后序列的虚部
  //void QPSK(int);                         //进行qpsk调制
  //void FFT(complex<double> * ,complex<double> * ,int,int);                //进行FFT变换和逆变换
  //int num;
  //char name[20]; 
  //char sex;
};

⌨️ 快捷键说明

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