第一篇:通信原理课程设计报告-stu1
目录
一.设计题目~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~1 二.设计目标~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~1 三.设计要求~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~1 四.各个步骤的简要说明 ~~~~~~~~~~~~~~~~~~~~~~~~~~~1 五.课程设计的系统框图及详细设计步骤~~~~~~~~~~~~~~2 六.程序及图像~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~3 七.本次课设总结~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~8 八.参考书目~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~8
一.设计题目 2ASK系统的设计 二.设计目标
a.系统的工作原理 b.系统设计
c.设定参数(RB,仿真时间抽样速率fs,载频fc,SNR等)利用matlab仿真
三.设计要求
a.题目意义,所做工作以及系统主要功能 b.调制解调原理及系统的性能(有效性,可靠性)c.软件设计流程 d.源程序
e.系统的各部分波形图及频谱
四.各个步骤的简要说明:
1.消息代码的产生 2.基带信号的产生 3.已调信号的产生 4.已调信号通过白噪声信道
5.对信道输出端混合信号中的噪声进行抑制 6.信号的解调
信号先与同步载波相乘,再进行低通滤波,这里滤波器是以巴特沃斯为例,7.基带信号的恢复
抽样、判决和码元再生。
五.课程设计的系统框图及详细设计步骤
1、系统框图:
s(t)xs(t)e信号0(t)e0(t)2ASKcosωctx~信道e0(t)载波n(t)(a)cosωct1 0 0 1{an]1 0 0 1z(t)抽 样ke0(t)ks(t)e0(t)s(t)tt~BPFLPFx判决器s(t)e0(t)e0(t)载波y(t)s(t)s(t)cosωct(b)(a)(b)解调器(c)t(c)定时脉冲t
2.产生随机的消息代码
可以通过malab软件的randint函数产生一串随机的“0”、“1”消息代
码序列:
>> D=randint(1,8);N=length(D);%基带信号符号数目
3.产生数字基带信号s(t):2ASK系统 单极性波形
D=randint(1,8);
N=length(D);%基带信号符号数目 D0=[];
x=ones(1,100);%100个1 for k=1:N,D0=[D0,D(k)*x];end%开关信号
4.已调信号的产生
t=0:0.01:7.99;
y=cos(2*pi*3*t);%fc=3 z=y.*D0;
5.已调信号通过信道为高斯白噪声信道
m=awgn(z,20);%信噪比为20
6.对信道输出端的混合信号中的噪声进行抑制(BPF:恰好让已调信号完全通过)
7.信号的解调(采用同步解调法 LPF:恰好让s(t)所处频率范围的频率谱通过)y1=2*m.*cos(2*pi*t);
[n,Wn] = buttord(12*2*pi,40*2*pi,3,25,'s');%临界频率采用角频率表示 [b,a]=butter(n,Wn,'s');
[bz,az]=impinvar(b,a,fs);%映射为数字的 yt = filter(bz,az,y1)
8.抽样判决 码元再生 2ASK:x(kTs)>A/2—判为“1” 2ASK:x(kTs) Y=1*(yt>0.5); 六.程序及图像 D=randint(1,8); N=length(D);%基带信号符号数目 t=0:0.01:7.99; y=cos(2*pi*3*t);%fc=3 D0=[]; x=ones(1,100);%100个1 for k=1:N,D0=[D0,D(k)*x];end %开关信号 z=y.*D0;%ook的表达式 figure(1) subplot(2,1,1) plot(D0);title('基带信号');grid;axis([0,800,-2,2])%改变坐标范围 subplot(2,1,2) plot(abs(fft(D0)));title('基带信号的频谱');grid; figure(2) subplot(2,1,1) plot(z);title('2Ask已调信号');axis([0,800,-2,2]);grid;subplot(2,1,2) plot(abs(fft(z)));title('2Ask已调信号的频谱');grid;figure(3) m=awgn(z,20); subplot(2,1,1) plot(m);title('加入高斯白噪声后的信号');axis([0,800,-2,2]);grid;subplot(2,1,2) plot(abs(fft(m)));title('加入高斯白噪声后的信号的频谱');grid;figure(4) y1=2*m.*cos(2*pi*3*t);subplot(2,1,1); plot(y1);title('与同步载波相乘后的信号');axis([0,800,-2,2]);grid;subplot(2,1,2) plot(abs(fft(y1)));title('与同步载波相乘后的信号的频谱');grid;fs=1000; [n,Wc] = buttord(12*2*pi,40*2*pi,3,25,'s');%临界频率采用角频率表示 [b,a]=butter(n,Wc,'s'); [bz,az]=impinvar(b,a,fs);%映射为数字的参数 figure(5) yt = filter(bz,az,y1);subplot(2,1,1);plot(yt); axis([0 800-2 2]);title('低通滤波后的波形');grid; subplot(2,1,2);plot(abs(fft(yt)));title('低通滤波后的频谱');figure(6) Y=1*(yt>0.5);%门限为0.5 subplot(2,1,1) plot(Y);title('抽样判决后的信号'); axis([0 800-2 2]);grid;subplot(2,1,2) plot(abs(fft(Y)));title('抽样判决后的信号的频谱');grid;figure(7) h=freqz(bz,az); plot(abs(h));title('滤波器'); 七.本次课设总结 分析图像可以看出滤波后输出的信号相比原信号存在一定的延迟,原因是与载波cos()信号相乘使信号延迟而且经过低通滤波器的相频特性也会对信号造成影响。本次课设,使我对通信原理数字键控,滤波器以有了更深的了解,比较扎实地掌握本专业的基础知识和基本理论,也又一次熟悉了matlab软件的操作。在设计中遇到的问题通过老师的指导和同学的帮助顺利解决,收益颇多! 八.参考书目: [1] 通信原理 樊昌信等编著 国防工业出版社 [2] 数字信号处理 陈后金主编 高等教育出版社 [3] Matlab教程与应用 通信原理课程设计报告 电信0802 3080503031 王婉婉 题一:QPSK误码率性能研究以及QPSK和DQPSK调制信号性能的比较 (一):QPSK误码率性能 1:目的:本题是设计一个QPSK仿真模型,以衡量QPSK在高斯白噪声信道中的性能。 2:原理图解析 图中Bernoulli binary generator产生一个二进制向量,向量的长度等于2,分别代表QPSK Modulator baseband的两个输入信号。QPSK调制器产生的调制信号首先经过一个AWGN Channel然后进入QPSK Dodulator baseband进行解调;由于贝努力二进制序列产生器的输出信号是长度为2的二进制向量,而QPSK基带解调器模块的输出信号则是一个二进制序列,因此在对它们进行比较之前首先通过两个数值转换模块(Bit to integer Converter和Bit to integer Converter1),把它们转化成四进制数;最后两个数值转换的输出信号进入一个误码率统计模块(Error Rate Calculation),以统计QPSK解调信号的误码率。QPSK调制解调原理图如下图所示: 3:为了得到QPSK调制信号误码率与信号的信噪比之间的关系,所需m文件代码如下: xSampleTime=1/100000;xSimulationTime=10;xInitialSeed=[61 71];xPhaseOffset=pi/4;x=0:10;y=x;hold off;for index=1:4 xSamplesPerSymbol=index;switch index case 1 xReceiveDelay=0;color='r';case 2 xReceiveDelay=1;color='g';case 3 xReceiveDelay=1;color='b';case 4 xReceiveDelay=1;color='m';end for i=1:length(x)xSNR=x(i);sim('QPSK');y(i)=xErrorRate(1);end semilogy(x,y,color);hold on;end 4:将仿真截止时间设为0.1秒,可得如下图示仿真结果: 图中:4条曲线分别表示当QPSK调制器和解调器的Samples per symbol参数等于1,2,3,4时QPSK信号的误码率性能从图中可以看出Samples per symbol参数的设置在很大程度上影响着QPSK信号的解调性能。 (二)DQPSK和QPSK调制信号性能的比较 1:在DQPSK调制的仿真模型中,Bernoulli binary generator产生一个二进制向量,向量的长度等于2,分别代表DQPSK两个支路的输入信号。我们采用DQPSK Modulator baseband对这个信号进行调制产生DQPSK基带调制信号; 基带调制信号首先经过一个AWGN Channel然后进入DPSK Dodulator baseband进行解调;由于贝努力二进制序列产生器的输出信号在通过Bit to integer Converter转换成整数后,与DPSK解调信号一起进入一个误码率统计模块(Error Rate Calculation),以统计DPSK的误码率。DQPSK 调制解调原理图如下图所示: 2:将DQPSK和QPSK的误码率性能曲线绘出的m文件如下所示: xSampleTime=1/100000;xSimulationTime=10;xInitialSeed=[61 71];xPhaseOffset=pi/4;xSamplesPerSymbol=1;xReceiveDelay=0;x=0:10;y1=x;y2=x;for i=1:length(x)xSNR=x(i);sim('DQPSK');y1(i)=xErrorRate(1);sim('QPSK');y2(i)=xErrorRate(1);end semilogy(x,y1,'r');gtext('DQPSK');hold on;semilogy(x,y2,'g');gtext('QPSK'); 3:将仿真截止时间设为2秒,可得如下图示仿真结果: 图中紫红色曲线表示DQPSK调制信号的误码率,而绿色曲线表示QPSK调制信号的误码率,从图中可见在相同条件下(相同的数据源、相同的信噪比以及相同的调制信号抽样数),QPSK调制信号的性能优于DQPSK。 题二:SSB信号的调制与解调 1:其调制解调原理图如下图所示: 单边带调制系统中,发送端只传输频带幅度调制信号的上边带或下边带,它使用的带宽只是双边带调制信号的一半,因此具有更高的频带利用率,下图中,将输入信号进行SSB调制,然后将其解调回复原波形。图中示波器用以观察信号调制解调各个阶段的波形。 2:仿真结果如下所示: 示波器显示结果 注:第一个和第六个是输入信号波形,第二个是下边带调制信号,第三个是已调制是的信号波形,第四个是已解调的信号波形,第五个是下边带信号波形。 三:参考资料 【1】MATLAB通信仿真及应用实例详解 邓华等编著 人民邮电出版社 【2】MATLAB仿真在通信与电子工程中的应用 徐明远 邵玉斌编著 西安电子科技大学出版社 课 题 学 院 专 业 学生姓名学 号 班级 指导教师 通信原理 课程设计报告 基于MATLAB的2FSK仿真 电子信息工程学院 通信工程 二〇一五年一月 基于MATLAB的基带传输系统的研究与仿真 —— 码型变换 摘 要 HDB3码编码规则 首先将消息代码变换成AMI码;然后检查AMI码中的连0情况,当无4个或4个以上的连0串时,则保持AMI的形式不变;若出现4个或4个以上连0串时,则将1后的第4个0变为与前一非0符号(+1或-1)同极性的符号,用V表示(+1记为+V,-1记为-V);最后检查相邻V符号间的非0符号的个数是否为偶数,若为偶数,则再将当前的V符号的前一非0符号后的第1个0变为+B或-B符号,且B的极性与前一非0符号的极性相反,并使后面的非0符号从V符号开始再交替变化 关键词: HDB3码 MATLAB编码原则 V码 B码 目 一、背景知识 二、MATLAB仿真软件介绍 三、仿真的系统的模型框图 四、使用MATLAB编程(m文件)完成系统的仿真 五、仿真结果 六、结果分析 七、心得、参考文献 录 正文部分 一、背景知识 在实际的传输系统中,并不是所有的代码电气波形都可以信道中传输。含有直流分量和较丰富的单极性基带波形就不适宜在低频传输特性差的信道中传输,因为它有可能造成信号的严重的畸变。 在传输码(或称线路吗)的结构将取决于实际信道特性和系统的工作条件。通常,传输码的结构应具有以下的特性: (1)相应的基带信号无直流分理,且低频分量少(2)便于从信号中提取定时信息 (3)信号中高频分应尽量少以节省传输频带并减少码间串扰(4)不受信号源统计特性影响,即能适应于信息源变化 (5)具有内在的检错能力,传输的码型应具有一定的规律性,以便利用这一规律性进行宏观监测 (6)编译码设备要尽可能简单 满足以上特性的传输码型种类繁多,这里使用HDB3。 要了解HDB3码的编码规则,首先要知道AMI码的构成规则,AMI码就是把单极性脉冲序列中相邻的“1”码(即正脉冲)变为极性交替的正、负脉冲。将“0”码保持不变,把“1”码变为+ 1、-1交替的脉冲。如: NRZ码:1 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 1 1 AMI码:-1 0 0 0 0 +1 0 0 0 0-1 +1 0 0 0 0-1 +1 HBD3码(3nd Order High Density Bipolar)的全称是三阶高密度双极性码,它是AMI码的一种改进型,改进目的是为了保持AMI码的优点而克服其缺点,使连“0”个数不超过3个。其编码规则: (1)检查消息码中连“0”的个数。当连“0”数目小于等于3时,HBD3码与AMI码一样(“1”交替的变换为“+1”和“-1”,“0”保持不变)。 (2)当连“0”数目超过3时,将每4个连“0”化作一小节,定义为“B00V"称为破坏节,其中V称为破坏脉冲,而B称为调节脉冲; (3)V与前一个相邻的非“0”脉冲的极性相同(这破坏了极性交替的规则,所以V称破坏脉冲),并且要求相邻的V码之间极性必须交替。V的取值为“+1”或“-1”; (4)B的取值可选0、+1或-1,以使V同时满足(3)中的两个要求;(5)V码后面的传号码极性也要交替。例如: 消息码: 1 000 0 1 000 0 1 1 000 0 000 0 1 1 AMI码:-1 000 0 +1 000 0-1+1 000 0 000 0-1+1 HDB3码:-1 000-V +1 000+V-1+1-B00-V +B00+V-1+1 其中的±B脉冲和±V脉冲与±1脉冲波形相同,用V或B表示的目的是为了示意其中的该非“0”码是由原信码的“0”变换而来的。 当相邻两个V码之间有奇数个“1”码时,能保证V码满足(3)的要求,B取“0”;当相邻两个V码之间有偶数个“1”码时,不能保证V码极性交替,B取“+1”或“-1”,B码的符号与前相邻“1”相反,而其后面的V码与B码极性相同。 二、MATLAB简介 美国MATHWORK公司于1967年推出了“Matrix Laboratory”(缩写为MATLAB)软件包,不断更新和扩充。它是一种功能强、效率高便于进行科学和工程计算的交互式软件包。其中包括:一般数值分析、矩阵运算、数字信号处理、建模和系统控制和优化等应用程序。 MATLAB的基本数据单位是矩阵,它的指令表达式与数学,工程中常用的形式十分相似,故用MATLAB来解算问题要比用C,FORTRAN等语言完相同的事情简捷得多。在新的版本中也加入了对C,FORTRAN,c++,JAVA的支持。可以直接调用,用户也可以将自己编写的实用程序导入到MATLAB函数库中方便自己以后调用,此外许多的MATLAB爱好者都编写了一些经典的程序,用户可以直接进行下载就可以用,非常的方便。 MATLAB的基础是矩阵计算,但是由于他的开放性,并且mathwork也吸收了像maple等软件的优点,使MATLAB成为一个强大的数学软件。 当前流行的MATLAB 6.5/7.0包括拥有数百个内部函数的主包和三十几种工具包(Toolbox)。工具包又可以分为功能性工具包和学科工具包。功能工具包用来扩充MATLAB的符号计算,可视化建模仿真,文字处理及实时控制等功能。学科工具包是专业性比较强的工具包,控制工具包,信号处理工具包,通信工具包等都属于此类。 开放性使MATLAB广受用户欢迎。除内部函数外,所有MATLAB主包文件和各种工具包都是可读可修改的文件,用户通过对源程序的修改或加入自己编写程序构造新的专用工具包。 Matlab的优势和特点: (1)友好的工作平台和编程环境 MATLAB由一系列工具组成。这些工具方便用户使用MATLAB的函数和文件,其中许多工具采用的是图形用户界面。包括MATLAB桌面和命令窗口、历史命令窗口、编辑器和调试器、路径搜索和用于用户浏览帮助、工作空间、文件的浏览器。随着MATLAB的商业化以及软件本身的不断升级,MATLAB的用户界面也越来越精致,更加接近Windows的标准界面,人机交互性更强,操作更简单。而且新版本的MATLAB提供了完整的联机查询、帮助系统,极大的方便了用户的使用。简单的编程环境提供了比较完备的调试系统,程序不必经过编译就可以直接运行,而且能够及时地报告出现的错误及进行出错原因分析。 (2)简单易用的程序语言 Matlab一个高级的距阵/阵列语言,它包含控制语句、函数、数据结构、输入和输出和面向对象编程特点。用户可以在命令窗口中将输入语句与执行命令同步,也可以先编写好一个较大的复杂的应用程序(M文件)后再一起运行。新版本的MATLAB语言是基于最为流行的C++语言基础上的,因此语法特征与C++语言极为相似,而且更加简单,更加符合科技人员对数学表达式的书写格式。使之更利于非计算机专业的科技人员使用。而且这种语言可移植性好、可拓展性极强,这也是MATLAB能够深入到科学研究及工程计算各个领域的重要原因。 (3)强大的科学计算机数据处理能力 MATLAB是一个包含大量计算算法的集合。其拥有600多个工程中要用到的数学运算函数,可以方便的实现用户所需的各种计算功能。函数中所使用的算法都是科研和工程计算中的最新研究成果,而前经过了各种优化和容错处理。在通常情况下,可以用它来代替底层编程语言,如C和C++。在计算要求相同的情况下,使用MATLAB的编程工作量会大大减少。MATLAB的这些函数集包括从最简单最基本的函数到诸如距阵,特征向量、快速傅立叶变换的复杂函数。函数所能解决的问题其大致包括矩阵运算和线性方程组的求解、微分方程及偏微分方程的组的求解、符号运算、傅立叶变换和数据的统计分析、工程中的优化问题、稀疏矩阵运算、复数的各种运算、三角函数和其他初等数学运算、多维数组操作以及建模动态仿真等。 (4)出色的图形处理功能 MATLAB自产生之日起就具有方便的数据可视化功能,以将向量和距阵用图形表现出来,并且可以对图形进行标注和打印。高层次的作图包括二维和三维的可视化、图象处理、动画和表达式作图。可用于科学计算和工程绘图。新版本的MATLAB对整个图形处理功能作了很大的改进和完善,使他不仅在一般数据可视化软件都具有的功能(例如二维曲线和三维曲面的绘制和处理等)方面更加完善,而且对于一些其他软件所没有的功能(例如图形的光照处理、色度处理以及四维数据的表现等),MATLAB同样表现了出色的处理能力。同时对一些特殊的可视化要求,例如图形对话等,MATLAB也有相应的功能函数,保证了用户不同层次的要求。另外新版本的MATLAB还着重在图形用户界面(GUI)的制作上作了很大的改善,对这方面有特殊要求的用户也可以得到满足。 (5)应用广泛的模块集合工具箱 MATLAB对许多专门的领域都开发了功能强大的模块集和工具箱。一般来说,他们都是由特定领域的专家开发的,用户可以直接使用工具箱学习、应用和评估不同的方法而不需要自己编写代码。目前,MATLAB已经把工具箱延伸到了科学研究和工程应用的诸多领域,诸如数据采集、数据库接口、概率统计、样条拟合、优化算法、偏微分方程求解、神经网络、小波分析、信号处理、图像处理、系统辨识、控制系统设计、LMI控制、鲁棒控制、模型预测、模糊逻辑、金融分析、地图工具、非线性控制设计、实时快速原型及半物理仿真、嵌入式系统开发、定点仿真、DSP与通讯、电力系统仿真等,都在工具箱(Toolbox)家族中有了自己的一席之地。 (6)实用的程序接口和发布平台 新版本的MATLAB可以利用MATLAB编译器和C/C++数学库和图形库,将自己的MATLAB程序自动转换为独立于MATLAB运行的C和C++代码。允许用户编写可以和MATLAB进行交互的C或C++语言程序。另外,MATLAB网页服务程序还容许在Web应用中使用自己的MATLAB数学和图形程序。 MATLAB的一个重要特色就是他有一套程序扩展系统和一组称之为工具箱的特殊应用子程序。工具箱是MATLAB函数的子程序库,每一个工具箱都是为某一类学科专业和应用而定制的,主要包括信号处理、控制系统、神经网络、模糊逻辑、小波分析和系统仿真等方面的应用。 (7)应用软件开发(包括用户界面) 在开发环境中,使用户更方便地控制多个文件和图形窗口;在编程方面支持了函数嵌套,有条件中断等;在图形化方面,有了更强大的图形标注和处理功能,包括对性对起连接注释等;在输入输出方面,可以直接向Excel和HDF5。 三、仿真的系统的模型框图 (1)实验编码原理框图如下所示 : (2)以下是V码以及B码产生的框图: (3)V码产生单元的工作流程图 (4)B码产生单元的工作流程图 译码规则: 在接收端,将接收到的HDB3码序列恢复为原输入二进制数字信息序列的过程称为译码。 对HDB3码而言,译码就是找到编码时插入的特殊序列并将它恢复为0000。根据编码原则,HDB3的译码可分为三个步骤: (1)根据“V”的极性特点,找出特殊序列。由于编码时,每个“V”的极性 都与其前一个“1”码的极性相同,所以,在接收序列中一旦出现连续两个同极性码时,两个同极性码的后一个即为“V”,此“V”与其前的三位码就是一个特殊序列; (2)将所有的特殊序列都恢复为“0000”; (3)将正、负脉冲都恢复为“1”码,零电平恢复为“0”码。下图是译码的框图: 四、使用MATLAB编程(m文件)完成系统的仿真 程序源代码 global dt df t f N close all N=2^13; %采样点数 L=8; %每码元的采样点数 M=N/L; %码元数 Rb=2;Ts=0.5; %码元宽度是0.5us dt=Ts/L; df=1/(N*dt); %MHz RT=0.5; %占空比 T=N*dt; %截短 Bs=N*df/2; %系统带宽 t=[-T/2+dt/2:dt:T/2]; %时域横坐标 f=[-Bs+df/2:df:Bs]; %频域横坐标 figure(1) set(1,'Position',[10,50,300,200]) %设定窗口位置及大小 figure(2) set(2,'Position',[350,50,300,200]) %设定窗口位置及大小 EPAMI=zeros(size(f));EPHDB=zeros(size(f));for ii=1:8 ami=zeros(1,M);hdb=zeros(1,M);a=round(rand(1,M)); b=3; %表示0000之间循环个数 c=-1; %记载相邻V之间的1元素个数 sign1=-1; %标志前一个信号 sign2=-1; %标志前一个信号 for ii=1:M if a(ii)==1 sign1=0-sign1;ami(ii)=sign1; end End for ii=1:M if b==3 %表示非0000 if a(ii)==1 sign2=0-sign2;hdb(ii)=sign2; if c>=0 %表示不是第一个0000 c=c+1; %用来计算相邻v之间的非0元素个数 end elseif ii<=M-3 & a(ii)+a(ii+1)+a(ii+2)+a(ii+3)==0 if mod(c,2)==1 %000V hdb(ii+3)=sign2; else %B00V sign2=0-sign2;hdb(ii)=sign2; hdb(ii+3)=sign2; end c=0; b=0; end elseif b<3 %对0000的循环 b=b+1; End end for i=[1:L] ami1(i+[0:M-1]*L)=ami;hdb1(i+[0:M-1]*L)=hdb;end AMI=T2F*(ami1); PAMI=AMI.*conj(AMI)/T;HDB=T2F*(hdb1); PHDB=HDB.*conj(HDB)/T;EPAMI=(EPAMI*(ii-1)+PAMI)/ii;EPHDB=(EPHDB*(ii-1)+PHDB)/ii;figure(1) aa=30+10*log10(EPAMI+eps); %加eps以避免除以零 bb=30+10*log10(EPHDB+eps);plot(f,aa,'g');grid axis([-8,+8,-80,80])xlabel('f(MHz)') ylabel('AMIPs(f) (dBm/MHz)')figure(2)plot(f,bb,'b');grid axis([-8,+8,-80,80])xlabel('f(MHz)') ylabel('HDBPs(f) (dBm/MHz)')figure(3)subplot(3,1,1)tt=[1:40]; stem(tt,a(1:40),'g')title('原始RNZ信号')s ubplot(3,1,2) stem(tt,ami(1:40),'g')title('AMI信号')subplot(3,1,3) stem(tt,hdb(1:40),'g')title('HDB码')end %将下面的代码保存在t2f.m文件中 function X=t2f(x)global dt df N t f T %X=t2f(x) %x为时域的取样值矢量 %X为x的傅氏变换 %X与x长度相同,并为2的整幂。 %本函数需要一个全局变量dt(时域取样间隔)H=fft(x); X=[H(N/2+1:N),H(1:N/2)]*dt;end 五、仿真结果 六、结果分析和心得 HDB3(High DensityBinary-3)码的全称是3阶高密度双极性码。它是AMI码的一种改进型,主要是为了克服AMI码中连“0”时所带来的提取定时信息的困难。HDB3编码规则是:先把消息代码中的“1”交替变成“+1”和“-1”,“0”仍然保持“0”不变的AMI码,然后去检查AMI码的连“0”的情况 ,当没有4个和4个以上连“0”串时 ,这样的AMI码就是HDB3码 ;当出现4个和4个以上连“0”串时,则将每4个连“0”的小段的第4个“0”变换成与其前一个非零符号相同极型的符号,并用“+V”和“-V”表示.若此“V”使后面的序列破坏了“极性交替反转” 的原则,则将出现直流分量。故需要保证相邻“V”的符号也是极性相反,所以,当不满足V也极性相反时,将这个连“0” 码无串的等一个“0” 变成“-B”和“+B”。“B”的符号与前一个非“0”码的符号相反,并且让后面的非“0” 码元符号从“V” 码开始再交替变化。 HDB3码译码比较容易,从收到的符号序列中可以容易地找到破坏点V,于是也断定V符号及其前面3 个符号必是连0 符号,从而恢复4个连0码,再将所有的-1变成+1后便得到原消息代码。 下面用例题来进一步说明编码与译码的原理: 例:求序列***000对应的HDB3码。编码译码步骤如下: 找出四连0序列;用特殊序列代替连0序列,第一个特殊序列可任意选择如选择100V。 将“1”和“V”标上极性“+1”或“-1”。输入数据中的“1”和特殊序列中的“1”作为一个整体极性交替,第一个“1”的极性可任意选择如选择“-1”。第一个特殊序列中的“V“与其前第一个“1”的极性相同,后面的“V”依次极性交替。 根据上面步骤列出系列各式以及画图,实现HDB3码的编码。 通过译码原理可知:V码与B码的极性相同,我们可以对这个输出码从后开始译码,自然而然的可以得到原输入的序列,此时,编码与译码就完成了。 另外说明:1.由于第一个特殊序和第一个“1”的极性均可任意选择,所以同一数字信息序列的HDB3可有四种不同的形式。2.当编码的序列足够长时,我们的编码与译码过程中更容易得到规律。 以上的程序便是综合了HDB3的编码译码以及对于其仿真的全部过程,此是经过了本组成员的反复修改最终制作而成,对于HDB3的编译码有了更加深入的了解。 七、参考文献 1.郭文彬,桑林编著,通信原理-基于Matlab的计算机仿真,北京邮电大学出版社,2006 2.曹志刚,钱亚生,现代通信原理,清华大学出版社,2002年 3.郭仕剑等,《MATLAB 7.x数字信号处理》,人民邮电出版社,2006年 4.樊昌信,曹丽娜编著,通信原理学习指导,西安电子科技大学,2003 通信系统课程设计报告 单边带电台仿真 院(系): 专业年级(班): 学 生: 学 号: 指 导 教 师: 完 成 时 间: 摘 要 这篇文章介绍了使用MATLAB软件编制程序,以实现单边带信号的调制和解调。首先,利用相移法从语音信号的双边带信号得到单边带信号,再编写MATLAB程序,使单边带信号得到调制和调解。分析调制前后的时域和频域波形图,以更加深入理解单边带信号的调制和解调的原理。 关键词:单边带;调制和解调;MATLAB Single sideband radio simulation Abstract: This article introduces the way to modulate and demodulate the single side band with the soft program from MATLAB.First, get the single side band signal from the speech signal`s couple sides band , then wright the MATLAB program to modulate and demodulate the signal.Analyze the pictures ,and understand the theory furtherly.Keywords:single side band , modulation and demodulation , MATLAB 目录 一.设计任务与要求............................................................................................................二.开发环境........................................................................................................................三.电台设计原理及方案................................................3.1发送模块的设计方案.......................................................3.2信道模块的设计方案.......................................................3.3接收模块的设计方案.......................................................四.电台详细设计......................................................4.1对音频输入与调制的仿真...................................................4.2对指定信噪比信道的仿真...................................................4.3话音信号的解调...........................................................4.3.1 载频9.8KHz解调...................................................4.3.2 载频9.9KHz解调...................................................4.3.3 载频10KHz解调....................................................4.4 原信号和解调后的信号对比................................................4.4.1 原信号和解调后信号波形对比........................................4.4.2 原信号和解调后信号频率对比........................................五.设计总结..........................................................参考文献:............................................................附录:...............................................................一.设计任务与要求 一.设计任务与要求 这个仿真以真实的音频信号作为输入,设计一个单边带发信机。将基带信号调制为SSB信号后送入带通型高斯噪声信道,加入给定功率的噪声之后,再送入单边带接收机。单边带接收机将型号解调下来,通过计算机声卡将解调信号播放出来试听效果,从而对信道信噪比与解调音质之间的关系进行主观测试。现设计一个单边带发信机、带通信道和相应的接收机,参数定位如下值。 1.输入信号为一个话音信号,采样率为 8000Hz。话音输入后首先进行预滤波,滤波器是一个频率范围在[300, 3400]Hz的带通滤波器,其目的是将话音频频谱限制在3400Hz以下。单边带调制的载波频率设计为 10kHz,调制输出上边带。要求观测单边带调制前后的信号功率谱。 2.信道是一个带限高斯噪声信道,其通带频率范围是[10000, 13500]Hz。能够根据信噪比 SNR 的要求加入高斯噪声。 3.接收机采用相干解调方式。为了模拟载波频率误差对解调话音音质的影响,相干解调,设本地载波频率分别为为 9.8kHz,9.9kHz,10kHz。解调滤波器设计为 300~3400Hz的带通滤波器。 二.开发环境 操作系统:Microsoft Windows 7 Ultimate(64位)交互工具:键盘/鼠标 开发工具:MATLAB2010a 三.电台设计原理及方案 3.1发送模块的设计方案 有限语音信号可以采用直接用程序读取,当读取一次之后,可以把音频文件保存起来,当用到没有麦克风的电脑时可以备用,发送的语音信号首先进行希尔比特变化,然后用函数可以进行单边带调制,保存单边带语音信号。3.2信道模块的设计方案 单边带电台仿真 读取发送模块保存的语音信号,然后加入高斯白噪声,然后改变信噪比,通常情况下加入的信噪比为20,然后滤波,模拟现实当中的信道传输,并保存得到的语音信号。 3.3接收模块的设计方案 首先读取信道传输过来的语音信号,加入不同频率的载波,然后解调,并观察分析不同载波解调出来的语音信号和原语音信号的区别,分析失真度。 四.电台详细设计 4.1对音频输入与调制的仿真 根据设置的参数,系统中信号最高频率约为 14kHz。为了较好地显示调制波形,系统仿真采样率设为 50kHz,满足取样定理。由于话音信号的采样率为 8000Hz,与系统仿真采样率不等,因此,在进行信号处理之前,必须将话音的采样率提高到 50kHz,用插值函数来做这一任务。 先编写程序将基带音频信号读入,进行[300,3400]Hz的带通滤波,并将信号采样率提高到 50kHz,进行单边带调制之后,将调制输出结果保存为 wav 文件,文件名为 SSB_OUT.wav。 图1 基带信号和SSB的波形、功率谱 分析调制前后的波形频率,可以得到SSB调制只是把原来波形搬移到10KHz位置,并 四.电台详细设计错误!未指定书签。 没有改变原来波形的形状和频率范围,说明调制的效果很好。4.2对指定信噪比信道的仿真 信道是一个带限高斯噪声信道,其带通频率范围是[10000,13500]Hz.,目前输入的信噪比SNR为20。仿真指定信噪比信道计算信噪比为20dB时的信道输出,将结果保存为 Chanel_out.wav 文件。方便以后的实用。 运行结束:计算出的信噪比结果SNR_dB=19.9126 4.3话音信号的解调 4.3.1 载频9.8KHz解调 接收机采用想干解调方式。为了模拟载波频率误差对解调话音音质的影响,社本地载波的频率为9.8KHz,与发信机载波频率相差200Hz。解调滤波器设计为300Hz到3400Hz。 图2 9.8KHz解调后波形和功率谱 解调输出信号被保存为音频文件 SSBDemo_OUT9.8KHz.wav,并由 sound 函数播放。聆听播放解调输出信号的声音可知,在20dB信道信噪比条件下,即使解调本地载波频 四.电台详细设计错误!未指定书签。 图4 9.9KHz解调后波形和功率谱 解调输出信号被保存为音频文件 SSBDemo_OUT9.9KHz.wav,并由 sound 函数播放。聆听播放解调输出信号的声音可知,在20dB信道信噪比条件下,即使解调本地载波频率误差达到 100Hz,声音仍然是清晰可懂的。 四.电台详细设计错误!未指定书签。 图7 10KHz解调后波形和功率谱 解调输出信号被保存为音频文件 SSBDemo_OUT10KHz.wav,并由 sound 函数播放。聆听播放解调输出信号的声音可知,在解调波和载波频率相同,10dB信道信噪比条件下,声音是很清晰的,并且和信噪比为20dB基本没有差别,耳朵几乎分辨不出。4.4 原信号和解调后的信号对比 4.4.1 原信号和解调后信号波形对比 单边带电台仿真 图8 原信号波形与解调后信号波形对比 从波形上来看,三个频率解调出来的音频信号波形整体差别不大,要是要仔细看,在低频部分最后一个频率解调出来的波形效果最好。4.4.2 原信号和解调后信号频率对比 图9 原信号波形与解调后信号频谱对比 从频率上来看,三个频率解调出来的音频信号波形整体差别不大,在细微处还是有差别的,尤其是在高频和低频处,有部分的失真,但是对音频的整体效果影响不大,最后一个借条出来的频谱和原信号的频谱最接近,因此也是最好的解调频率。 五.设计总结 通过这门实验使我学习掌握了许多知识。首先是对matlab有了一个全新的认识,其次是对matlab的更多操作和命令的使用有了更高的掌握,最重要的事对matlab的处理能力有了一个更高的飞跃尤其是对相关函数的使用及相关问题的处理。 就对matlab相关的命令操作而言,通过这次实验的亲身操作和实践,学习掌握了 参考文献:错误!未指定书签。 许多原本不知道的或者不太熟悉的命令。比如说相关m文件的建立,画图用到的标注,配色,坐标控制,同一张图里画几幅不同的图像,相关参数的设置以及相关函数的调用格式等等。就拿建立一个数学方程而言,通过设置不同的参数达到所需要的要求和结果,而且还可以在不同的窗口建立不同的函数而达到相同的效果。而自己对于矩阵及闭环传递函数的建立原本所掌握的知识几乎为零,而通过这次实验使我彻底的掌握了相关的命令操作和处理的方法,在这里我们不仅可以通过建立函数和参数来达到目标效果,而且还可以通过可视化的编程达到更快更方便,更简洁的效果。就拿可视化编程而言原本根本就只是听说而已罢了,从来就没有亲身去尝试过,然而现在自己却可以和容易的通过搭建不同功能木块来实现相关的函数及功能。这些在原本根本就不敢相信,然而通过学习和实验亲身操作这些原本看似不可能的操作在此就变的轻而易举的事了。 通过对同一个模块分析其对应的不同的参数分析图的建立去分析和解释其对应的相关功能和技术指标和性能分析是非常重要的,我们不可能只需要建立相关的模块和功能就说自己掌握了所有的相关知识和技术,真正的技术和知识是怎么去分析和解释相关的技术指标和功能参数才是重中之重。就此而言,我坦诚的说自己所掌握的还是十分的有限的,但是老师给我们介绍的相关方法和技巧还是十分有效果的,如果自己真的想在这方面有什么建树对自己以后的要求还是需要更改的要求的,万不可以就此止步不前,自命不凡,我们还需掌握和了解还有许多许多,我们真正所掌握的只是皮毛,要想取得更大的成绩就得不断的去努力学习和汲取相关的知识和技巧。万不可自以为傲,裹足不前,matlab真的是个非常强大和有用的工具我们真正的能把它学懂学透的话还是需要下非常大的功夫和努力的。 参考文献: [1]张渭滨,陈方,苏武浔等.Chen-Mobius多路数字通信系统的Matlab仿真[J].系统仿真学报,2007,19(8):1886-1889.DOI:10.3969/j.issn.1004-731X.2007.08.058.[2]刘素心,王汝芳,张广森等.基于Matlab的通信系统的实验仿真设计[J].实验室科学,2008,(3):101-103,105.DOI:10.3969/j.issn.1672-4305.2008.03.043.[3]王峰,丁金林.基于MATLAB/GUI的数字通信系统虚拟实验平台的设计[J].南通职业大学学报,2013,27(1):96-100.DOI:10.3969/j.issn.1008-5327.2013.01.026.[4]陈蕾,姚远程,秦明伟等.自适应抗干扰通信系统中频谱感知技术研究[J].电视技术,2014,38(5):101-104.单边带电台仿真 [5]梅志红,邓文华.基于Matlab与VB集成技术的通信系统仿真软件的开发[J].计算机仿真,2004,21(6):195-199.DOI:10.3969/j.issn.1006-9348.2004.06.056.[6]范伟,翟传润,战兴群等.基于MATLAB的扩频通信系统仿真研究[J].微计算机信息,2006,22(19):242-244.DOI:10.3969/j.issn.1008-0570.2006.19.086.[7]周晓兰,张杰.MATLAB在通信系统仿真中的应用[J].计算机技术与发展,2006,16(9):166-168.DOI:10.3969/j.issn.1673-629X.2006.09.057.[8]解伟俊,胡修林,张蕴玉等.基于MATLAB的仿真通信语音库实现[J].华中理工大学学报,2000,28(2):77-79.DOI:10.3321/j.issn:1671-4512.2000.02.027.附录: %FileName:ForSSB.m clc;clear all;%功能,采样点数40000,采样率为8000 %jilu = wavrecord(5*8000, 8000, 'double');%wavwrite(jilu, 'GDGvoice8000.wav');[wav, fs] = wavread('GDGvoice8000.wav');%计算声音时间长度 t_end = 1/fs * length(wav);%仿真系统采样时间点 Fs = 50000;t = 1/Fs:1/Fs:t_end;%设计300~3400hz的带通滤波器 [fenzi, fenmu] = butter(3, [300 3400]/(fs/2));%对音频信号进行滤波 wav = filter(fenzi, fenmu, wav);%输出滤波后的声音 wavwrite(wav, 'LVBO_OUT.wav');%利用插值函数将音频的采样率提升为50khz wav = interp1([1/fs:1/fs:t_end], wav, t, 'spline');%音频信号的希尔伯特变换 wav_hilbert = imag(hilbert(wav));%载波频率 fc = 10000;%单边带调制 附录:错误!未指定书签。 SSB_OUT = wav.*cos(2*pi*fc*t)10000;% 噪声功率谱密度值 W/Hz NO = Power_of_noise/bandwidth;Gause_noise = sqrt(NO*Fs/2).* randn(size(in));% 噪声通道 10~13.5kHz [num, den] = butter(4, [10000 13500]/(Fs/2));signal_of_filter_out = filter(num, den, in);noise_of_filter_out = filter(num, den, Gause_noise); 单边带电台仿真 SNR_dB = 10*log10(var(signal_of_filter_out)/var(noise_of_filter_out));% 测量得出信噪比 % 信道输出 out = signal_of_filter_out + noise_of_filter_out;SNR_dB % FileName:Forjietiao 9.8K.m % clear;Fs=50000;% 读入信道输出信号数据 [recvsignal, Fs] = wavread('Chanel_OUT.wav');t =(1/Fs:1/Fs:length(recvsignal)/Fs)';% 本地载波频率 fc_local1 = 10000-200;% fc_local = 10000-100;% fc_local = 10000;% 本地载波 local_carrier1 = cos(2*pi*fc_local1.*t);% 相干解调 xianggan_out1 = recvsignal.*local_carrier1;% 设计 300~3400Hz 的带通滤波器 [fenzi, fenmu] = butter(3, [300 3400]/(Fs/2));demod_out1 = filter(fenzi, fenmu, xianggan_out1);%sound(demod_out1/max(demod_out1), Fs); wavwrite(demod_out1, Fs, 'SSBDemod_OUT_9.8k.wav');figure(2);subplot(1, 2, 1);plot(5*demod_out1(53550:53750));axis([0 200-0.3 0.3]);title('解调信号波形');xlabel('时间(样值数)');subplot(1, 2, 2);psd(5*demod_out1, 10000, Fs);axis([0 2500-20 10]);title('解调信号功率谱');xlabel('频率/Hz');ylabel('功率谱/(dB)'); %FileName:Forjietiao 9.9K.m %clear;Fs=50000;% 读入信道输出信号数据 [recvsignal, Fs] = wavread('Chanel_OUT.wav');t =(1/Fs:1/Fs:length(recvsignal)/Fs)';% 本地载波频率 %fc_local = 10000-200;fc_local2 = 10000-100; 附录:错误!未指定书签。 %fc_local = 10000;% 本地载波 local_carrier2 = cos(2*pi*fc_local2.*t);% 相干解调 xianggan_out2 = recvsignal.*local_carrier2;% 设计 300~3400Hz 的带通滤波器 [fenzi, fenmu] = butter(3, [300 3400]/(Fs/2));demod_out2 = filter(fenzi, fenmu, xianggan_out2);%sound(demod_out2/max(demod_out2), Fs); wavwrite(demod_out2, Fs, 'SSBDemod_OUT_9.9k.wav');figure(3);subplot(1, 2, 1);plot(5*demod_out2(53550:53750));axis([0 200-0.3 0.3]);title('解调信号波形');xlabel('时间(样值数)');subplot(1, 2, 2);psd(5*demod_out2, 10000, Fs);axis([0 2500-20 10]);title('解调信号功率谱');xlabel('频率/Hz');ylabel('功率谱/(dB)'); %FileName:Forjietiao 10K.m %clear;Fs=50000;% 读入信道输出信号数据 [recvsignal, Fs] = wavread('Chanel_OUT.wav');t =(1/Fs:1/Fs:length(recvsignal)/Fs)';% 本地载波频率 %fc_local = 10000-200;%fc_local = 10000-100;fc_local3 = 10000;% 本地载波 local_carrier3 = cos(2*pi*fc_local3.*t);% 相干解调 xianggan_out3 = recvsignal.*local_carrier3;% 设计 300~3400Hz 的带通滤波器 [fenzi, fenmu] = butter(3, [300 3400]/(Fs/2));demod_out3 = filter(fenzi, fenmu, xianggan_out3);%sound(demod_out/max(demod_out), Fs); wavwrite(demod_out3, Fs, 'SSBDemod_OUT_10k.wav');figure(4);subplot(1, 2, 1);plot(5*demod_out3(53550:53750));axis([0 200-0.3 0.3]);title('解调信号波形');xlabel('时间(样值数)');subplot(1, 2, 2);psd(5*demod_out3, 10000, Fs);axis([0 2500-20 10]);title('解调信号功率谱');xlabel('频率/Hz');ylabel('功率谱/(dB)'); 单边带电台仿真 %插值函数interp1的用法 hours=1:12;temps=[5 8 9 15 25 29 31 30 22 25 27 24];h=1:0.1:12;t=interp1(hours,temps,h,'spline');%(直接输出将是很多的,spline三次样条插值)plot(hours,temps,'+',h,t,hours,temps,'r');%作图 xlabel('hour'),ylabel('degrees celsius'); %filename:Forduibi.m %将原来信号的频谱和三次解调出来的频谱结果作对比,并分析结果 figure(5);subplot(2, 2, 1);psd(wav, 10000, Fs);axis([0 2500-20 10]);title('基带信号功率谱');xlabel('频率/Hz');ylabel('功率谱/(dB)');subplot(2, 2, 2);psd(5*demod_out1, 10000, Fs);axis([0 2500-20 10]);title('9.8KHz解调信号功率谱');xlabel('频率/Hz');ylabel('功率谱/(dB)');subplot(2, 2, 3);psd(5*demod_out2, 10000, Fs);axis([0 2500-20 10]);title('9.9KHz解调信号功率谱');xlabel('频率/Hz');ylabel('功率谱/(dB)');subplot(2, 2, 4);psd(5*demod_out3, 10000, Fs);axis([0 2500-20 10]);title('10KHz解调信号功率谱');xlabel('频率/Hz');ylabel('功率谱/(dB)');%将原来信号的波形和三次解调出来的信号波形结果作对比,并分析结果 figure(6);subplot(2, 2, 1);plot(wav(53550:53750));axis([0 200-0.3 0.3]);title('基带信号波形');xlabel('时间(样值数)');subplot(2, 2, 2);plot(5*demod_out1(53550:53750));axis([0 200-0.3 0.3]);title('9.8KHz解调信号波形');xlabel('时间(样值数)');subplot(2, 2, 3);plot(5*demod_out2(53550:53750));axis([0 200-0.3 0.3]);title('9.9KHz解调信号波形');xlabel('时间(样值数)');subplot(2, 2, 4);plot(5*demod_out3(53550:53750));axis([0 200-0.3 0.3]);title('10KHz解调信号波形');xlabel('时间(样值数)'); 《通信原理》 课程设计报告 题目:AM超外差收音机的设计及仿真 班 级: 姓 名: 学 号: 指导老师: 2011年6月 引言 课程设计目的 综合运用信号与系统、数字信号处理的理论知识进行频谱分析和滤波器设计,通过理论推导得出相应结论,再利用MATLAB作为编程工具进行计算机实现从而加深对所学知识的理解,建立概念。系统介绍(本部分包括对系统的分析,系统仿真结构等)3 系统仿真(本部分包括系统仿真的各种图形分析,波形,功率谱图形等分析)系统各模块的参数及调整参数后的各波形对比 5 心得体会 6 参考文献引言 超外差式是与直放式相对而言的一种接收方式,超外差式收音机能把接收到的频率不同的电台信号都变成固定的中频信号(465kHz),再由放大器对这个固定的中频信号进行放大。它的优点是灵敏度高,选择性好,音质好(通频带宽)工作稳定(不容易自激),它的缺点是镜像干扰(比接收频率高两个中频的干扰信号)较大,存在假响应(变频电路的非线性),但这并不影响它的广泛应用,现在大部分的收音机都是超外差的。 2系统介绍 无线广播的接收仪器为收音机。在晶体管收音机中,多采用磁性天线作为接收信号的天线。某台载频电磁波在LC回路中产生并联谐振,次级线圈中感生出高频调幅信号,收到信号,磁性天线回路,作用是选台,并将信号通过绕在磁棒上的次级线圈耦合到变频级,收音机原理框图: 收音机的原理框图 超外差式收音机利用混频电路使本机振荡信号与接收到的电台信号进行非线性混频,使二者的差值始终为465KHZ,这样就降低了放大电路的信号频率,可以有效克服直接放大式收音机的缺点。由于本机振荡信号的频率始终比接收到的电台信号频率超出465KHZ,故把这种收音机叫做超外差式收音机。电路如图 超外差接收机原理图 AM超外差收音机系统的设计框图及仿真 广播发射端使用三不同的扫频信号源,分别用925KHZ,965KHZ,1005KHZ的载波进行AM 调制本振频率为1430KHZ时,可将965KHz载波信号解调,经过处理可以还原出原始信号。 它包括了AM调制部分,三路AM调制信号的混合,混频部分,中放部分,解调检波部分。仿真结果频谱图: .(1)中频信号频谱图如图 心得体会 通过这次课程设计,我更加深刻地学会了用仿真软件systemview仿真一般的简单的通信电路,掌握了初步的电路分析技巧及波形分析能力。通过仿真通信电路,我学习到的理论知识得到了一次切实的应用,也更加深层次的了解了这些通信电路的产生原理及过程,我的学习热情也也得到了提 高。 参考文献 1《通信原理》(2006年第6版)樊昌信、曹丽娜编著 2《数字信号处理教程》(2006年第3版)程佩青第二篇:通信原理课程设计报告
第三篇:通信原理课程设计报告
第四篇:通信原理课程设计报告
第五篇:通信原理课程设计报告