数字通信计算机课设仿真代码,燕山大学数字通信计算机仿真课程设计报告模板.doc...

《燕山大学数字通信计算机仿真课程设计报告模板.doc》由会员分享,提供在线免费全文阅读可下载,此文档格式为doc,更多相关《燕山大学数字通信计算机仿真课程设计报告模板.doc》文档请在天天文库搜索。

1、 ..   数字通信计算机课设  程序代码 // SigTranmit.cpp: implementation of the SigTranmit class. // //  #include "stdafx.h" #include "ASK.h" #include "SigTranmit.h" #include   #ifdef _DEBUG #undef THIS_FILE static char THIS_FILE[]=__FILE__; #define new DEBUG_NEW #endif  // // Co。

2、nstruction/Destruction //  SigTranmit::SigTranmit() {  c=0; /* S0[16]={0};  float S1[16]={0};Mod[16*M]={0};  Sa[16*M]={0};  Sal[16*M]={0};    H1[16*M]={0};  H2[16*M]={0};  No[16*M]={0};  Hb[N]={0};  P[N]={0};  Wn[N]={0};*/ }  SigTranmit::~SigTranmit() {  } void SigTranmit::SetDigital(int ID,int Intensity)//赋值 {    myID=ID;    myIn。

3、tensity=Intensity; } void SigTranmit::Basesignal()//基带信号 {  //ID变成int型数组int a[4] = {0};  int i=0;  int k=15;  int temp=0;  a[0]=myID;  a[1]=myID/10;  a[2]=myID/100;  a[3]=myID/1000;  for(int j=0;j<4;j++)  {   i=0;   temp=a[j];   for(i;i>1;    k--;   }  }  //采样  k=0;  for(i=0;i<16;i++)  {   for(j=0;j

4、 0)    Sa[i] = -1;   else    Sa[i] = Sal[i];  }  Dft(Sa,16*M);  }    void SigTranmit::Lpf()//低通 {  Conv(Sa,GetH1());  Dft(Sa,16*M);  } void SigTranmit::Dft(float x[],int m)//DFT变换 {  for(int k=0;k

5、SigTranmit::modulate()//调制 {  float a=0.0;  for(int i=0;i<16*M;i++)  {   a=2.0*PI*i*0.15;   Mod[i] = Sa[i]*cos(a);  }  for(i=0;i<16*M;i++)   Sa[i] = Mod[i];  Dft(Sa,16*M); } void SigTranmit::Channel()//信道 {  Noise(myIntensity);  for(int i=0;i<16*M;i++)   Sa[i] = No[i] + Sa[i];  Dft(Sa,16*M); } void SigTranmit::Noise(int inten)//噪声 {  int i,k;  float r0=0.0;  float r[12];    for(k=0; k

6、16*M; k++)  {   for(i=0; i<12; i++)   {    r[i] = (float)(2*rand()-RAND_MAX)/RAND_MAX;    r0 += r[i];    r0 = float(inten*r0/12.0);   }   No[k] = r0;  }  Dft(No,16*M); } void SigTranmit::Bpf()//带通 {  int i;     float a=(N-1)/2;   //生成理想带通滤波器的单位取样响应  for(i=0;i

7、}   switch(c)  {  case 0:   {for(i=0;i

8、d SigTranmit::Demodulate()//解调 {  float a=0.0;  for(int i=0;i<16*M;i++)  {   a=2.0*PI*i*0.15;   Mod[i] = Sa[i]*cos(a);  }  for(i=0;i<16*M;i++)   Sa[i] = Mod[i];  Dft(Sa,16*M); } void SigTranmit::Adjust()//判决 {  int k=0;  int j=0;  for(int i=0;i<16;i++)  {   S1[i]=0;   for(j=0;j

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值