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

燕山大学数字通信计算机仿真课程设计模板

数字通信计算机课设程序代码 //SigTranmit.cppimplementationoftheSigTranmitclass. // // includestdafx.h includeASK.h includeSigTranmit.h includemath.h ifdef_DEBUG undefTHIS_FILE staticcharTHIS_FILE[]__FILE__; definenewDEBUG_NEW endif // //Construction/Destruction // SigTranmitSigTranmit {c0; /*S0[16]{0}; floatS1[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};*/ } SigTranmitSigTranmit { } voidSigTranmitSetDigitalintID,intIntensity//赋值 { myIDID; myIntensityIntensity; } voidSigTranmitBasesignal//基带信号 { //ID变成int型数组 inta[4]{0}; inti0; intk15; inttemp0; a[0]myID10; a[1]myID/1010; a[2]myID/10010; a[3]myID/1000; forintj0;j4;j {i0; tempa[j]; fori;i4;i{S0[k]temp0 x1;temptemp1;k--;}}//采样k0;fori0;i16;i{forj0;jM;j{Sal[k]S0[i];k;}}fori0;i16*M;i{ifSal[i]0Sa[i]-1;elseSa[i]Sal[i];}DftSa,16*M;} voidSigTranmitLpf//低通{ConvSa,GetH1;DftSa,16*M;} voidSigTranmitDftfloatx[],intm//DFT变换{forintk0;km;k{AR[k]0;AI[k]0;forinti0;im;i{AR[k]AR[k]x[i]*cos2*PI*k*i/m;AI[k]AI[k]x[i]*sin2*PI*k*i/m;}A[k]sqrtAR[k]*AR[k]AI[k]*AI[k];}} voidSigTranmitmodulate//调制{floata0.0;forinti0;i16*M;i{a2.0*PI*i*0.15;Mod[i]Sa[i]*cosa;}fori0;i16*M;iSa[i]Mod[i];DftSa,16*M;} voidSigTranmitChannel//信道{NoisemyIntensity;forinti0;i16*M;iSa[i]No[i]Sa[i];DftSa,16*M;} voidSigTranmitNoiseintinten//噪声{inti,k;floatr00.0;floatr[12]; fork0;k16*M;k{fori0;i12;i{r[i]float2*rand-RAND_MAX/RAND_MAX;r0r[i];r0floatinten*r0/12.0;}No[k]r0;}DftNo,16*M;} voidSigTranmitBpf//带通{inti; floataN-1/2;//生成理想带通滤波器的单位取样响应fori0;iN;i{ifiaHb[i]float0.4;elseHb[i]sin0.7*PI*i-a/floatPI*i-a-sin0.3*PI*i-a/floatPI*i-a;}switchc{case0{fori0;iN;iWn[i]0.5*1.0-cos2.0*PI*i/N-1;};break;case1{fori0;iN;iWn[i]0.54-0.46*cos2.0*PI*i/N-1;};break;case2//生成布莱克曼窗{fori0;iN;iWn[i]0.42-0.5*cos2.0*PI*i/N-10.08*cos4.0*PI*i/N-1;};}fori0;iN;i{Hb[i]Hb[i]*Wn[i]; }ConvSa,GetHb;DftSa,16*M;} voidSigTra

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值