您的当前位置:首页正文

通信原理课程设计

2023-04-16 来源:钮旅网


通信原理课程设计

姓名______ 学号_______ 班级_____

目录

一、目录 …………………………………………………………………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通信系统建模与仿真实例分析.清华大学出版社 2020年 李贺冰等,Simulink通信仿真教程,国防工业出版社,2006年5月。

3.一、题目一

3.1.一、题目内容

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

3.1.二、设计思想或方式

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

3.1.3、实现的功能说明

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

3.1.4、程序流程图

3.1.五、程序代码

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.六、仿真框图

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.八、运行结果

3.1.九、结果分析

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

3.二、题目二

3.2.一、题目内容

试用Matlab/Simulink研究BPSK+信道编码(取汉明码)在加性高斯白噪声信

道下的误码率性能与信噪比之间的关系;分析不同码率对误码率性能的阻碍。

3.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;

%循环执行仿真程序

MessageLength=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;

MessageLength=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;

MessageLength=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帧由MessageLength个比特组成

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.一、题目内容

试用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.二、设计思想或方式

编码时,关于消息码中的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&ix3(i-2:i+1)=[0 0 0 0]; e=0; end

if e==2&iif 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.

因篇幅问题不能全部显示,请点此查看更多更全内容