通信原理课程设计_通信原理课程设计程序

2020-02-27 其他范文 下载本文

通信原理课程设计由刀豆文库小编整理,希望给你工作、学习、生活带来方便,猜你可能喜欢“通信原理课程设计程序”。

通信原理课程设计2011/2012学年第一学期

《 》

一、目的和要求:

要求学生在熟练掌握MATLAB和simulink仿真使用的基础上,学会通信仿真系统的基本设计与调试。并结合通信原理的知识,对通信仿真系统进行性能分析。

二、实验环境

PC机、Matlab/Simulink

三、具体内容及要求

(1)试用Matlab/Simulink研究2ASK在加性高斯白噪声信道下的误码率性能与信噪比之间的关系;

(2)试用Matlab/Simulink研究2ASK+信道编码(取汉明码)在加性高斯白噪声信道下的误码率性能与信噪比之间的关系;分析不同码率对误码率性能的影响。(3)试用Matlab编程实现HDB3码的编解码过程,并画出1 1 0 1 0 0 0 0 0 0 1 1 1 0 0 0 0 0 0 1 0的原始、编码和解码图形。

四、设计报告

1、DPSK在加性高斯白噪声信道下的误码率与信噪比的关系

(1)设计思路

先用Simulink建立DPSK在加性高斯白噪声信道(无突发干扰)下的仿真模型,设置好每个模块的参数,编写主程序实现DPSK的输入,在程序运行过程中调用DPSK仿真模型,然后用Pe取没加信道编码的误码率,最后画出没加信道编码的误码率曲线。

(2)实现的功能

通过调用已建立的DPSK在加性高斯白噪声信道下的仿真模型,利用Matlab编程分析DPSK在加性高斯白噪声信道的误码率性能。(3)程序流程图

(4)程序源代码

SNR_range=-5:1:10;y=zeros(size(SNR_range));for i=1:length(SNR_range)

SNR=SNR_range(i);

sim('sim_dpsk');

y(i)=mean(BitErrorRate);end semilogy(SNR_range,y,'b-p');hold on;xlabel('信噪比SNR(dB)');

ylabel('误码率Pe');

title('DPSK信噪比(SNR)与误码率(Pe)的关系');legend('误码率')axis([-5 11 1e-6 1])grid on;

(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;for i=1:length(SNR_range)

SNR=SNR_range(i);

sim('sim_ham');

y(i)=mean(BitErrorRate);end semilogy(SNR_range,y,'k-p');hold on;ML=11;CL=15;for i=1:length(SNR_List)

SNR_dB=SNR_List(i);

sim('SIMU_DPSK_HAMMING');

y(i)=mean(BER);end semilogy(SNR_List,y,'b-+');hold on;ML=26;CL=31;for i=1:length(SNR_List)

SNR_dB=SNR_List(i);

sim('SIMU_DPSK_HAMMING');

y(i)=mean(BER);end semilogy(SNR_List,y,'r-s');hold on;xlabel('信噪比(dB)');

ylabel('误码率');

title('DPSK+汉明码的误码率性能');legend('1000bit/s','5000bit/s','100000bit/s')axis([-5 11 1e-6 1])grid on;

(5)仿真模块设置

DPSK+汉明码仿真系统模块搭建如下图

信号发生器设置

汉明码编码模块

DPSK调制模块

信道设置

DPSK解调模块 汉明码解码模块

误码率比较器

选择器

误码率结果放置区

(6)实验结果与分析

分析:在实验二中,分别取4/

7、11/

15、31/36 3个不同的码率。有图可知,对同一种码率,当信噪比不断增加时,误码率不断减少。对同一信噪比SNR,码率越高,其误码率越大。这和理论想符合。

3、HDB3码的编解码过程

(1)设计思路

HDB3码是解决连0码问题的一种有效码型,其特点是将每4个连0码作为一节,定义为BOOV代替掉。所以编码过程为找到4个连0码,用V代替第4个0码。解码过程相对简单,找到两个极性相同的1码,将后面的1码用0代替。

(2)实现的功能

利用Matlab编写程序两个函数,实现HDB3码的编码和解码过程,并画出1 1 0 1 0 0 0 0 0 0 1 1 1 0 0 0 0 0 0 1 0的原始、编码和解码图形。(3)程序源代码

1)HDB3编码程序 function y=hhdb3(x)n=length(x);v=-1;b=-1;y=zeros(size(x));

count=0;

for i=1:n

if x(i)==1

y(i)=-b;

b=y(i);

count=0;

else

count=count+1;

if count==4

count=0;

y(i)=-v;

v=y(i);

if y(i)*b==-1

y(i-3)=y(i);

end

b=y(i);

end

end end figure(1)subplot(211)a=x;i=0:n-1;stairs(i,a);axis([0 n-2 2]);title('原码型')xlabel('x');ylabel('y');grid on subplot(212)a=y;i=0:n-1;stairs(i,a);axis([0 n-2 2]);title('HDB3码型')xlabel('x');ylabel('y');grid on 2)HDB3解码过程 function y=dehdb3(x)code=x;n=length(x);decode=code;

sign=0;

for k=1:n

if code(k)~= 0

if sign==x(k)

decode(k-3:k)=[0 0 0 0];

end

sign=code(k);

end end decode=abs(decode);

figure(2)subplot(2,1,1);stairs([0:n-1],x);axis([0 n-2 2]);xlabel('x');

ylabel('y');

title('HDB3码型');grid on;subplot(2,1,2);stairs([0:n-1],decode);axis([0 n-2 2]);xlabel('x');

ylabel('y');

title('原码型');grid on;3)码组1 1 0 1 0 0 0 0 0 0 1 1 1 0 0 0 0 0 0 1 0的编码和解码 x=[1 1 0 1 0 0 0 0 0 0 1 1 1 0 0 0 0 0 0 1 0];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中显示,这样既符合美观又符合要求。

总体而言这次课程设计圆满结束,非常感谢老师和同学对帮助!

通信原理课程设计

数字幅度调制的抗噪声性能摘要:多进制数字振幅调制又称多电平调制。这种方式在原理上是通断键控(OOK)方式的推广。近几年它成了十分引人注目的一种高效率的传输方式。所谓高效......

通信原理课程设计

课设一一、设计题目信号特性分析(如正弦波信号的波形与频谱)二、设计目的通信原理课程设计是《通信原理》理论课的辅助环节。着重体现通信原理教学知识的运用,培养学生主动研究......

通信原理课程设计

通 题目:信 原 理课程设计基于MATLAB的系统的2ASK仿真- 1五、设计心得和体会„„„„„„„„„„„„„„„„„„„„„„„1、心得和体会………………………………………......

通信原理课程设计

通 信 原理课程 设计班级:姓名:学号:任课教师:Simulink建模仿真实现频分复用 设计目的1 掌握频分复用工作原理2 学会使用Simulink建模仿真  设计题目涉及的理论知识当一条物理信......

通信原理课程设计

通信原理课程设计姓名______ 学号_______ 班级_____目录一、目录 …………………………………………………………………2 二、任务书……………………………………………………………………......

《通信原理课程设计.docx》
将本文的Word文档下载,方便收藏和打印
推荐度:
通信原理课程设计
点击下载文档
相关专题 通信原理课程设计程序 通信 课程设计 原理 通信原理课程设计程序 通信 课程设计 原理
[其他范文]相关推荐
[其他范文]热门文章
下载全文