?
?
数字通信计算机课设??程序代码?
//?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??
//?
//?Construction/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;?
???myIntensity=Intensity;
?}?
void?SigTranmit::Basesignal()//基带信号
?{?
?//ID变成int型数组
int?a[4]?=?{0};?
?int?i=0;??
int?k=15;
??int?temp=0;??
a[0]=myID%10;?
?a[1]=myID/10%10;?
?a[2]=myID/100%10;?
?a[3]=myID/1000;??
for(int?j=0;j<4;j++)??
{???i=0;?
??temp=a[j];?
??for(i;i<4;i++)???{????S0[k]=temp?&?0x1;????temp?=?temp>>1;????k--;???}??}??//采样??k=0;??for(i=0;i<16;i++)??{???for(j=0;j
?
?
void?SigTranmit::Lpf()//低通?{??Conv(Sa,GetH1());??Dft(Sa,16*M);??}?
void?SigTranmit::Dft(float?x[],int?m)//DFT变换?{??for(int?k=0;k
void?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?Si