您好,欢迎访问三七文档
《通信原理课程设计》2011/2012学年第一学期一、目的和要求:要求学生在熟练掌握MATLAB和simulink仿真使用的基础上,学会通信仿真系统的基本设计与调试。并结合通信原理的知识,对通信仿真系统进行性能分析。二、实验环境PC机、Matlab/Simulink三、具体内容及要求(1)试用Matlab/Simulink研究2ASK在加性高斯白噪声信道下的误码率性能与信噪比之间的关系;(2)试用Matlab/Simulink研究2ASK+信道编码(取汉明码)在加性高斯白噪声信道下的误码率性能与信噪比之间的关系;分析不同码率对误码率性能的影响。(3)试用Matlab编程实现HDB3码的编解码过程,并画出110100000011100000010的原始、编码和解码图形。四、设计报告1、DPSK在加性高斯白噪声信道下的误码率与信噪比的关系(1)设计思路先用Simulink建立DPSK在加性高斯白噪声信道(无突发干扰)下的仿真模型,设置好每个模块的参数,编写主程序实现DPSK的输入,在程序运行过程中调用DPSK仿真模型,然后用Pe取没加信道编码的误码率,最后画出没加信道编码的误码率曲线。(2)实现的功能通过调用已建立的DPSK在加性高斯白噪声信道下的仿真模型,利用Matlab编程分析DPSK在加性高斯白噪声信道的误码率性能。(3)程序流程图(4)程序源代码SNR_range=-5:1:10;y=zeros(size(SNR_range));fori=1:length(SNR_range)SNR=SNR_range(i);sim('sim_dpsk');y(i)=mean(BitErrorRate);endsemilogy(SNR_range,y,'b-p');holdon;xlabel('信噪比SNR(dB)');ylabel('误码率Pe');title('DPSK信噪比(SNR)与误码率(Pe)的关系');legend('误码率')axis([-5111e-61])gridon;(5)仿真模块设置DPSK仿真系统模块搭建如下图随即信号发生器设置DPSK调制模块设置信道设置DPSK解调模块设置误码率比较器设置选择器设置误码率结果放置区6、实验结果与分析分析:误码率是衡量一个数字通信系统性能的重要指标。有图可知,当信噪比SNR不断增加时,其误码率不断减小。其曲线与理论值相符合。2、DPSK+汉明码在加性高斯白噪声信道下的误码率与信噪比关系(1)设计思路先用Simulink建立DPSK在加性高斯白噪声信道(无突发干扰)下的仿真模型,再在调制前增加汉明码编码模块,设置好每个模块的参数,编写主程序实现DPSK的输入,取不同码元速率,然后用Pe取其误码率,最后画出不同码率的信噪比与误码率曲线。(2)实现的功能通过实验步骤一已建立的DPSK在加性高斯白噪声信道下的仿真模型,添加汉明码编码模块,利用Matlab编程分析DPSK在加性高斯白噪声信道的不同码元速率中信噪比与误码率性能的关系。(3)程序流程图(4)程序源代码SNR_range=-5:1:10;y=zeros(size(SNR_range));Bitrate=100000;ML=4;CL=7;fori=1:length(SNR_range)SNR=SNR_range(i);sim('sim_ham');y(i)=mean(BitErrorRate);endsemilogy(SNR_range,y,'k-p');holdon;ML=11;CL=15;fori=1:length(SNR_List)SNR_dB=SNR_List(i);sim('SIMU_DPSK_HAMMING');y(i)=mean(BER);endsemilogy(SNR_List,y,'b-+');holdon;ML=26;CL=31;fori=1:length(SNR_List)SNR_dB=SNR_List(i);sim('SIMU_DPSK_HAMMING');y(i)=mean(BER);endsemilogy(SNR_List,y,'r-s');holdon;xlabel('信噪比(dB)');ylabel('误码率');title('DPSK+汉明码的误码率性能');legend('1000bit/s','5000bit/s','100000bit/s')axis([-5111e-61])gridon;(5)仿真模块设置DPSK+汉明码仿真系统模块搭建如下图信号发生器设置汉明码编码模块DPSK调制模块信道设置DPSK解调模块汉明码解码模块误码率比较器选择器误码率结果放置区(6)实验结果与分析分析:在实验二中,分别取4/7、11/15、31/363个不同的码率。有图可知,对同一种码率,当信噪比不断增加时,误码率不断减少。对同一信噪比SNR,码率越高,其误码率越大。这和理论想符合。3、HDB3码的编解码过程(1)设计思路HDB3码是解决连0码问题的一种有效码型,其特点是将每4个连0码作为一节,定义为BOOV代替掉。所以编码过程为找到4个连0码,用V代替第4个0码。解码过程相对简单,找到两个极性相同的1码,将后面的1码用0代替。(2)实现的功能利用Matlab编写程序两个函数,实现HDB3码的编码和解码过程,并画出110100000011100000010的原始、编码和解码图形。(3)程序源代码1)HDB3编码程序functiony=hhdb3(x)n=length(x);v=-1;b=-1;y=zeros(size(x));count=0;fori=1:nifx(i)==1y(i)=-b;b=y(i);count=0;elsecount=count+1;ifcount==4count=0;y(i)=-v;v=y(i);ify(i)*b==-1y(i-3)=y(i);endb=y(i);endendendfigure(1)subplot(211)a=x;i=0:n-1;stairs(i,a);axis([0n-22]);title('原码型')xlabel('x');ylabel('y');gridonsubplot(212)a=y;i=0:n-1;stairs(i,a);axis([0n-22]);title('HDB3码型')xlabel('x');ylabel('y');gridon2)HDB3解码过程functiony=dehdb3(x)code=x;n=length(x);decode=code;sign=0;fork=1:nifcode(k)~=0ifsign==x(k)decode(k-3:k)=[0000];endsign=code(k);endenddecode=abs(decode);figure(2)subplot(2,1,1);stairs([0:n-1],x);axis([0n-22]);xlabel('x');ylabel('y');title('HDB3码型');gridon;subplot(2,1,2);stairs([0:n-1],decode);axis([0n-22]);xlabel('x');ylabel('y');title('原码型');gridon;3)码组110100000011100000010的编码和解码x=[110100000011100000010];y=hdb3(x);dehdb3(y);(4)运行结果与分析1)HDB3编码结果2)HDB3解码结果分析:编码是将原码组里1码进行极性交替,4个连0码的最后一个0码用前一个1码的极性码来代替。编码结果与理论相符合。解码过程是将2个极性相同的1码中,后一个1码代替为0码,同时将极性码转变为非极性码。有图可知,编码后再解码,得到的码型与原码型相同,没有错码。五、心得体会通过这几天的通信原理课程设计,我复习了MATLAB编程语言的基本概念、语法,加深了对通信原理课堂所学理论知识的理解,掌握了运用Simulink的方针,更重要的是培养了自己的自学能力。因为距离MATLAB的学习有一年了,在编写程序以及调试的过程中遇到了很多困难,但是我通过请教同学老师,再自己一点点改善程序,最终编写出一个比较完善的程序,实现了所有要求功能,这是最值得我欣慰的一点。以下是我的几点切身感受:一、编写程序需要一个清醒的头脑,明确的思路,同时也要有耐心毅力。刚拿到程序设计课题时,我感觉一片茫然,这是由于自己对MATLAB的模块设计不够理解,同时对MATLAB的基本语句的陌生,不过通过复习后懂得了首先要搭建Simulink的系统仿真,再根据程序中输入的变量来运行仿真系统,掌握了基本设计思路之后,后面的设计就顺利多了。至此,我真真体会到清晰地思路对成功编写一个程序的重要性。当然成功编写一个程序绝非易事,之前,我总以为程序能够正常运行,就代表着编程成功,后来我才发现我大错特错了。我用了一天时间,完成了仿真的建立、程序的编写、改错,但我立刻发现尽管程序能够正常运行,部分功能却不完善,甚至不能实现。经过一次又一次调试、修改又修改,一点一点发现问题并改正,我才真正发现编程远没有想象中的简单。它需要的不仅是清晰地编程思路、编程技巧,还需要有耐心有毅力,不要放弃。(二)我们在大学需要学习的不仅是基础知识、专业知识,更重要的是一种学习能力。正如老师所说学习是终生的,因此学习能力也就能让我们受益终生。由于课堂时间有限,老师不可能把每一种数字调制都用Matlab来仿真一遍,因此只能自己课后实验,实践也证明我们是有自学的潜能的,通过课后学习,不理解的知识,通过查找资料,请教老师,最终掌握知识,因此,这次课程设计时间培养了我们的自学能力。(三)要学会总结,提高。在编程过程中,我发现自己的程序还有很多地方可以完善。程序可以编写的更简洁,这样使用户使用更加方便,画图函数也还可以改进,例如:在使用figure分图显示的时候,我尽量选择部分图,都在一个figure中显示,这样既符合美观又符合要求。总体而言这次课程设计圆满结束,非常感谢老师和同学对帮助!
本文标题:通信原理课程设计
链接地址:https://www.777doc.com/doc-5970846 .html