人人范文网 范文大全

通信原理课程设计

发布时间:2020-03-03 07:14:51 来源:范文大全 收藏本文 下载本文 手机版

通信原理课程设计

姓名______ 学号_______ 班级_____

目录

一、目录 …………………………………………………………………2

二、任务书……………………………………………………………………3

三、具体内容及要求 ……………………………………………………………4

3.1 题目一

…………………………………………………………………4

3.1.1题目内容

……………………………………………………………4

3.1.2设计思想或方法 ………………………………………………………4

3.1.3实现的功能或方法 ……………………………………………………4

3.1.4程序流程图 ……………………………………………………………4

3.1.5程序代码

……………………………………………………………5

3.1.6仿真框图

……………………………………………………………5

3.1.7模块描述及参数设置 …………………………………………………5

3.1.8结果运行

……………………………………………………………10

3.1.9结果分析

……………………………………………………………11

3.2 题目二 …………………………………………………………………11

3.2.1题目内容

……………………………………………………………11

3.2.2设计思想或方法

……………………………………………………11

3.2.2程序流程图……………………………………………………………12

3.2.4程序代码

……………………………………………………………13

3.2.5仿真框图

……………………………………………………………13

3.2.6模块描述及参数设置…………………………………………………14

3.2.7结果运行

……………………………………………………………20

3.2.8结果分析

……………………………………………………………20

3.3 题目三 …………………………………………………………………20

3.3.1题目内容

……………………………………………………………20

3.3.2设计思想或方法………………………………………………………20

3.2.3程序流程图……………………………………………………………21

3.2.4程序代码

……………………………………………………………21

3.2.5结果运行

……………………………………………………………23

3.2.6结果分析

……………………………………………………………23

四、心得与体会……………………………………………………………………23

五、参考文献………………………………………………………………………23

《通信原理课程设计》任务书

一、目的和要求:

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

二、实验环境

PC机、Matlab/Simulink

三、具体内容及要求

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

(2) 试用Matlab/Simulink研究BPSK+信道编码(取汉明码)在加性高斯白噪声信道下的误码率性能与信噪比之间的关系;分析不同码率对误码率性能的影响。

(3) 试用Matlab编程实现HDB3码的编解码过程,并画出1 1 0 1 0 0 0 0 0 0 1 1 1 0 0 0 0 0 0 1 0的原始、编码和解码图形。

四、提交设计报告

内容包括:

 系统的基本原理框图以及每一个模块的作用;

 系统Simulink 仿真过程中,每一个用到的模块中主要参数的意义;  仿真系统参数的设定和设定的依据;

 仿真系统参数改变时,给仿真结果带来的影响(如高斯白噪声信道的信噪比增加,则误码率减小);

 仿真程序(需要加注释)。

 仿真的结果(波形,误码率等)。

五、主要参考文献及资料

邵玉斌.Matlab/Simulink通信系统建模与仿真实例分析.清华大学出版社 2008年 李贺冰等,Simulink通信仿真教程,国防工业出版社,2006年5月。

3.1、题目一

3.1.1、题目内容

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

3.1.2、设计思想或方法

先用Simulink建立BPSK在加性高斯白噪声信道(无突发干扰)下的仿真模型,设置好每个模块的参数,编写主程序实现BPSK的输入,在程序运行过程中调用BPSK仿真模型,然后用BitErrorRate取在加性高斯白噪声信道下的误码率,最后画出BPSK在加性高斯白噪声信道下的误码率性能与信噪比之间的关系。3.1.3、实现的功能说明

通过调用已建立的BPSK在加性高斯白噪声信道(无突发干扰)下的仿真模型,利用Matlab编程分析BPSK在加性高斯白噪声信道(无突发干扰)的误码率性能。

3.1.4、程序流程图

3.1.5、程序代码

x=0:20;

y=x;

hold off;%取消原来的图 M=2

for i=1:length(x)

SNR=x(i); %信道的信噪比依次取x中的元素

sim(\'untitled1\'); %运行仿真程序,得到的误比特率保存在工作区变量 BitErrorRate中 y(i)=mean(BitErrorRate); %计算BitErrorRate的平均值作为本次仿真的误比 特率

End semilogy(x,y,\'k\',\'LineWidth\',2); %对y取对数画图 hold on;

xlabel(\'高斯白噪声信道中的SNR\'); ylabel(\'误码率\');

title(\'BPSK的误码率曲线\'); hold on; grid on;%画网格

3.1.6、仿真框图

3.1.7、模块描述及参数设置

Random Integer Generator (随机整数发生器)

模块描述:采用该模块产生随机的二进制随机信号作为系统的信源。 模块参数:Initial seed:随机数种子,不同的随机数种子通常产生不同的序列。

Sample time:抽样时间,表示输出序列中每个二进制符号的持续时间。 Frame-based outputs:选种表示输出为帧格式,否则输出数据流。 Samples per frame:只有当Frame-based outputs选种后才可编辑此参数,它表示输出一帧中包含的抽样点数。此处表示1帧由10000个比特组成。

Output data type:输出数据类型。

BPSK Modulator Baseband (BPSK基带调制器) 模块参数: Phase offset(rad):相位偏移

AWGN Channel(高斯信道)

模块描述:最简单的信道,常指加权高斯白噪声(AWGN)信道。这种噪声假设为在整个信道带宽下功率谱密度(PDF)为常数,并且振幅符合高斯概率分布。

模块参数:Initial seed: 随机数种子,不同的随机数种子通常产生不同的序列。

SNR:信噪比。

Input signal power,referenced to 1 ohm:输入信号功率,参考1欧姆。

BPSK Demodulator Baseband(BPSK基带解调器) 模块参数:Phase offset(rad):相位偏移

Error Rate Calculation(误码率计算)

模块描述:通过比较传输数据和接收数据来计算误码率,模块的输出数据是长度为n的向量,其中每个元素的意义分别是:误码率或误比特率、总的错误个数、总的参加比较的符号或比特数。

模块参数:Receive delay:指定接收方滞后发送的抽样点数,即接收的第几个值对应发送的第一个值。

Computation delay:指定开始比较时模块忽略的抽样点数。 Computation mode:指定模块是比较全部还是输入数据。 Output data:指定计算结果是输出到工作区还是端口。

Selector(信号选择器)

模块描述:选择或重组信号,对输入矢量的元素进行有选择的输出。选择第一个,则输出误码率;选择第二个,则输出误码个数;选择第三个,则输出全部码数。

模块参数:Number of input dimensions:输入维数。

Index mode: 索引模式,该模块默认从一开始的(one-based)。

Input port size: 输入口大小。

To Workspace(将输出数据写入到Matlab的工作空间) 模块描述:将其输出写入工作空间。模块将其输出写入到一个由模块Variable name参数命名的矩阵或结构中。

模块参数: Variable name:写入工作区间的数据名称,默认为simout。

Limit data points to last:模块最多可以保留的数据个数,inf表示无穷

大。

Decimation:写入数据的抽样频率,即每隔多少抽样点输入一个值。

Sample time:写入数据的抽样时间,默认值为-1,表示与上一模块抽

样时间相同。

Save format:将仿真输出保存到工作空间的格式,该模块是将输出保

存为为数组形式。

3.1.8、运行结果 3.1.

9、结果分析

在信道高斯白噪声的干扰下,数字调制系统的误码率取决于信噪比,BPSK的误码率随着信噪比的增大而减小。

3.2、题目二

3.2.1、题目内容

试用Matlab/Simulink研究BPSK+信道编码(取汉明码)在加性高斯白噪声信道下的误码率性能与信噪比之间的关系;分析不同码率对误码率性能的影响。

3.2.2、设计思想或方法

先用Simulink建立BPSK在加性高斯白噪声信道(无突发干扰)下的仿真模型,信道编码及解码方式,采用汉明码进行处理,设置好每个模块的参数,编写主程序实现BPSK的输入,在程序运行过程中调用BPSK仿真模型,然后用BitErrorRate取在加性高斯白噪声信道下的误码率,最后画出BPSK在加性高斯白噪声信道下的误码率性能与信噪比之间的关系曲线。

3.2.3、程序流程图

3.2.4、程序代码

clc

%x表示信噪比 x=-2:1:8;

y=zeros(size(x));%产生全零矩阵

%信源产生信号的bit等于10000bit/s BitRate=10000;

%循环执行仿真程序

MeageLength=4; CodewordLength=7; for i=1:length(x) SNR=x(i);

sim(\'BPSK_Hamming\');%运行仿真程序,得到的误比特率保存在工作区变量BitErrorRate中

y(i)=mean(BitErrorRate);%对矩阵中各列的误码率元素分别求平均值 end

semilogy(x,y,\'-r\');%y轴用对数标度,x轴用线性标度绘制图形 hold on;

MeageLength=11 CodewordLength=15 for i=1:length(x) SNR=x(i);

sim(\'BPSK_Hamming\');%调用仿真程序 y(i)=mean(BitErrorRate);%取平均值 end

semilogy(x,y,\'-k\'); %y轴用对数标度,x轴用线性标度绘制图形 hold on;

MeageLength=26 CodewordLength=31 for i=1:length(x) SNR=x(i);

sim(\'BPSK_Hamming\'); %调用仿真程序 y(i)=mean(BitErrorRate); %取平均值 end

semilogy(x,y,\'-b\'); %y轴用对数标度,x轴用线性标度绘制图形

hold on;

xlabel(\'信噪比SNR(dB)\'); ylabel(\'误码率Pe\');

title(\'BPSK+汉明码的误码率性能\');

legend(\'码率=4/7\',\'码率=11/15\',\'码率=26/31\')%给图形加注解 axis([-2 8 1e-6 1]);%坐标轴 grid on; %画网格线

3.2.5、仿真框图

3.2.6、模块描述及参数设置

Random Integer Generator(随机整数发电器) 模块描述:采用该模块产生随机的二进制随机信号作为系统的信源

模块参数:Initial seed:随机数种子,不同的随机数种子通常产生不同的序列。

Sample time:抽样时间,表示输出序列中每个二进制符号的持续时间。 Frame-based outputs:选种表示输出为帧格式,否则输出数据流。 Samples per frame:只有当Frame-based outputs选种后才可编辑此参数,它表示输出一帧中包含的抽样点数。此处表示1帧由MeageLength个比特组成

Output data type:输出数据类型。

Hamming Encoder(汉明码编码器)

模块描述:用于对输入信息进行汉明编码,汉明码是一种能够纠正一位错误的红性分组码,码长为N。该信息位的长度为K,其中,N=2^M-1(M>=3),K=N-M。

模块参数:CodewordLength:码长

M-degree primitive polynomial:m次本始多项式

BPSK Modulator Baseband (BPSK基带调制器) 模块参数: Phase offset(rad):相位偏移

AWGN Channel(高斯信道)

模块描述:最简单的信道,常指加权高斯白噪声(AWGN)信道。这种噪声假设为在整个信道带宽下功率谱密度(PDF)为常数,并且振幅符合高斯概率分布。

模块参数:Initial seed: 随机数种子,不同的随机数种子通常产生不同的序列。

SNR:信噪比。

Input signal power,referenced to 1 ohm:输入信号功率,参考1欧姆。

BPSK Demodulator Baseband(BPSK基带解调器) 模块参数:Phase offset(rad):相位偏移

Hamming Decoder(汉明码解码器)

模块描述:创建一个码长为N,信息码长为K的汉明码。其中,N=2^M-1(M>=3),K=N-M。

模块参数:此处的两个参数要与前面的Hamming Encode参数一致。

Error Rate Calculation(误码率计算)

模块描述:通过比较传输数据和接收数据来计算误码率,模块的输出数据是长度为n的向量,其中每个元素的意义分别是:误码率或误比物率、总的错误个数、总的参加比较的符号或比特数。

模块参数:Receive delay:指定接收方滞后发送的抽样点数,即接收的第几个值对应发送的第一个值。

Computation delay:指定开始比较时模块忽略的抽样点数。 Computation mode:指定模块是比较全部还是输入数据。 Output data:指定计算结果是输出到工作区还是端口。

Selector(信号选择器)

模块描述:选择或重组信号,对输入矢量的元素进行有选择的输出。选择第一个,则输出误码率;选择第二个,则输出误码个数;选择第三个,则输出全部码数。

模块参数:Number of input dimensions:输入维数。

Index mode: 索引模式,该模块默认从一开始的(one-based)。

Input port size: 输入口大小。

To Workspace(将输出数据写入到Matlab的工作空间) 模块描述:写入专门的数据到MATLAB的主工作区。数据不可用直到仿真结束或暂停。

模块参数: Variable name:写入工作区间的数据名称,默认为simout。

Limit data points to last:模块最多可以保留的数据个数,inf表示无穷

大。

Decimation:写入数据的抽样频率,即每隔多少抽样点输入一个值。

Sample time:写入数据的抽样时间,默认值为-1,表示与上一模块抽

样时间相同。

Save format:输出数据的形式。

3.2.7、运行结果

3.2.8、结果分析

在相同信噪比的情况下,码率不同误码率也不同,信息码长度越长的误码率和信噪比关系曲线越低,在信噪比较小时很难分辨误码率相差不大,而随着信噪比的增大误码率会相差越来越大。

3.3题目三

3.3.1、题目内容

试用Matlab编程实现HDB3码的编解码过程,并画出1 1 0 1 0 0 0 0 0 0 1 1 1 0 0 0 0 0 0 1 0的原始、编码和解码图形。

3.3.2、设计思想或方法

编码时,对于消息码中的1依次取+1,-1,连续有4个0时,第4个0置为V,第一个V的正负与前一个相邻0的1的正负一样,之后V依次取前个V的相反极性;并且判断V的极性与前一个与0相邻的非0值的极性是否一样,若不一样,则改变该非0值的极性;

解码时,+1,—1都变成1;连续遇见3个0则把该3个0与之后1位皆变为0 ;l连续遇见2个0,则判断2个0之前一位与之后一位极性是否相同,若相同,则该4为皆化为0。

3.3.3、程序流程图

3.3.4、程序代码

x1=[1 1 0 1 0 0 0 0 0 0 1 1 1 0 0 0 0 0 0 1 0]; n=length(x1); x2=x1; m=1; r=0; c=0; d=0;

%HDB3编码 for i=1:n

if x2(i)==0 r=r+1;

if r==4&c==0 c=1;

x2(i)=b; d=-x2(i); r=0;

end

if r==4&c==1 x2(i)=d; d=-d; if x2(i)~=x2(i-4) x2(i-3)=x2(i); m=-x2(i-3);

end r=0; end

else

x2(i)=m; b=m; m=-m; r=0;

end end

%HDB3解码 e=0; x3=x2; for i=1:n

if x3(i)==0 e=e+1;

if e==3&i

x3(i-2:i+1)=[0 0 0 0]; e=0;

end

if e==2&i

if x3(i+1)==x3(i-2) x3(i-2:i+1)=[0 0 0 0]; e=0;

end

end

else x3(i)=1; e=0;

end end

%作图

subplot(4,1,1);stairs([0:length(x1)-1],x1);axis([0 2]);ylabel(\'消息码\');

subplot(4,1,2);stairs([0:length(x1)-1],x2);axis([0 2]);ylabel(\'HDB3码\');

subplot(4,1,3);stairs([0:length(x1)-1],x3);axis([0 2]);ylabel(\'解码后\');

3.3.5、运行结果

length(x1) length(x1) length(x1) -2 -2 -2

3.3.6、结果分析

第一个波形是消息码1 1 0 1 0 0 0 0 0 0 1 1 1 0 0 0 0 0 0 1 0 第二个波形是HDB3码1 -1 0 1 0 0 0 1 0 0 -1 1 -1 0 0 0 -1 0 0 1 0 第三个波形是解码1 1 0 1 0 0 0 0 0 0 1 1 1 0 0 0 0 0 0 1 0 通过对比经HDB3码编码前的原消息码和HDB3码解码,可以得出其编码译码过程完全对应正确,解码成功。

四、心得与体会

这次通信原理的课程设计,不像平时的实验课,会提供仿真框图和程序,所以如何连接仿真框图,需要哪些部件,每个部件如何设置参数,如何编写程序都需要自己来解决。虽然一开始无从下手,不过在同学的帮助下,上网查找资料,还是解决了这些问题。这也使得我对于仿真框图与BPSK的调制解调等印象更加深刻。

在编写HDB3码的编码与解码程序时,也遇到了不少问题,好几次都失败了,令我满头疼的,最后冷静的分析了HDB3码的编码过程,并列出了许多个消息码转化为HDB3码的例子,相互比较找到规律后,成功解决了何时添加B,V和B,V极性的问题。解码时便要容易许多了,只要观察几个例子,很容易得到规律。不过我编写的解码部分程序还是存在一些不足之处,对于一些特别的消息码不能应用。

五、参考文献

【1】樊昌信,曹丽娜.通信原理,第6版.国防工业出版社,2006.

通信原理课程设计

通信原理课程设计

通信原理课程设计

通信原理课程设计

通信原理课程设计

通信原理课程设计

通信原理课程设计

通信原理课程设计

通信原理课程设计

通信原理课程设计

通信原理课程设计
《通信原理课程设计.doc》
将本文的Word文档下载到电脑,方便编辑。
推荐度:
点击下载文档
点击下载本文文档