数字通信计算机仿真课程设计.doc

上传人:F****n 文档编号:101522760 上传时间:2019-09-28 格式:DOC 页数:14 大小:40KB
返回 下载 相关 举报
数字通信计算机仿真课程设计.doc_第1页
第1页 / 共14页
数字通信计算机仿真课程设计.doc_第2页
第2页 / 共14页
数字通信计算机仿真课程设计.doc_第3页
第3页 / 共14页
数字通信计算机仿真课程设计.doc_第4页
第4页 / 共14页
数字通信计算机仿真课程设计.doc_第5页
第5页 / 共14页
点击查看更多>>
资源描述

《数字通信计算机仿真课程设计.doc》由会员分享,可在线阅读,更多相关《数字通信计算机仿真课程设计.doc(14页珍藏版)》请在金锄头文库上搜索。

1、(1)程序代码之 头文件/ SigTranmit.h: interface for the SigTranmit class./#if !defined(AFX_SIGTRANMIT_H_1E1D11BF_1E65_4834_9496_4E5CAA470F68_INCLUDED_)#define AFX_SIGTRANMIT_H_1E1D11BF_1E65_4834_9496_4E5CAA470F68_INCLUDED_#if _MSC_VER 1000#pragma once#endif / _MSC_VER 1000#define PI 3.#define N 63#define T 0.

2、005#define M 20#define freq 4000#define fh 200#define fc 1000class SigTranmit public:SigTranmit();virtual SigTranmit(); void SetDigtal(int ID, int Intensity);void Basesignal();void Lpf();void modulate();void Channel();void Bpf();void Demodulate();void Adjust();void Dft(float x,int m);void Idft(float

3、 h);void Hnc();void Hmc();void Blkmc();void Conv(float array1,float array2);void Noise(int inten); void SetHl(float H); void SetHb(float H); void Setc(int Myc); int GetmyIntensity();int Getc(); float* GetSa(); float* GetA(); float* GetHl(); float* GetH2(); float* GetHb();float* GetNo();private:int m

4、yID;int myIntensity; int c;/用来存放创函数选择int S016;int S116;float Mod16*M; float Sa16*M;/用来存放信号 float Sal16*M; float AR16*M; float AI16*M; float A16*M;/用来存放频域幅值 float Hl16*M; float H216*M; float No16*M;/用来存放生成的噪声 float HbN;/用来存放带通频域数据 float PN; float WnN; ;#endif / !defined(AFX_SIGTRANMIT_H_1E1D11BF_1E65

5、_4834_9496_4E5CAA470F68_INCLUDED_)(2)程序代码之 源文件/ SigTranmit.cpp: implementation of the SigTranmit class./#include stdafx.h#include 计算机仿真.h#include SigTranmit.h#include math.h#include stdio.h#include stdlib.h#include iostream#ifdef _DEBUG#undef THIS_FILEstatic char THIS_FILE=_FILE_;#define new DEBUG_N

6、EW#endif/ Construction/Destruction/SigTranmit:SigTranmit() c=0;s=1; SigTranmit:SigTranmit() void SigTranmit :SetDigital(int nMyID,int nIntensity) /初始化 MyID= nMyID; myIntensity=nIntensity; void SigTranmit : Basesignal() /基带信号的编码与采样 int d44; int e16; int m=0; int b4; b0=MyID/1000; b1=(MyID%1000)/100;

7、b2=(MyID%100)/10; b3=MyID-b0*1000-b1*100-b2*10; for(int i=0;i4;i+) switch(bi) case 0:di0=0; di1=0;di2=0; di3=0; break; case 1:di0=0; di1=0;di2=0; di3=1; break; case 2:di0=0; di1=0;di2=1; di3=0; break; case 3:di0=0; di1=0;di2=1; di3=1; break; case 4:di0=0; di1=1;di2=0; di3=0; break; case 5:di0=0; di1

8、=1; di2=0; di3=1; break; case 6:di0=0; di1=1;di2=1; di3=0; break; case 7:di0=0; di1=1;di2=1; di3=1; break; case 8:di0=1; di1=0;di2=0; di3=0; break; case 9:di0=1; di1=0;di2=0; di3=1;break; int k; for(k=0;k4;k+) for(int j=0;j4;j+) S0m=dkj; m+; for( i=0;i16;i+)ei=S0i;if(ei=0)ei=-1;for(int j=0;j16;j+)fo

9、r(k=0;kM;k+)Sa1k+M*j=ej;for(int n=0;n16*M;n+)San=Sa1n; void SigTranmit :Dft(float x,int m) /DFTfor(int k=0;km;k+) ARk=0.0;AIk=0.0; for(int n=0;nm;n+) ARk=ARk+xn*cos(-2.0*PI*k*n/m); AIk=AIk+xn*sin(-2.0*PI*k*n/m); Ak=sqrt(pow(ARk,2)+pow(AIk,2);void SigTranmit :Lpf() /低通滤波 float hdN; int i; float wc=(2*PI*400)/fs; float a=(N-1)/2; for(i=0;iN;i+)hdi=0.0;for(i=0;iN;i+)if(i=a) hdi=wc/(double)PI;elsehdi=sin(wc*(i-a)/(double)(PI*(i-a); switch(c) case 0:for( i=0;iN;i+) Wni=0.5*(1.0-cos(2.0*PI*i/(N-1);

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 教学/培训

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号