《通信原理课程设计》
文档及源码下载地址:https://wwei.lanzouf.com/i5bBf0fyujcb[4.14已更新]
一、目的和要求:
要求学生在熟练掌握MATLAB和simulink仿真使用的基础上,学会通信仿真系统的基本设计与调试。并结合通信原理的知识,对通信仿真系统进行性能分析。
二、实验环境
PC机、Matlab/Simulink
三、具体内容及要求
(1) 试用Matlab/Simulink分析BPSK在加性高斯白噪声信道下的误码率性能与信噪比之间的关系。
(2) 试用Matlab/Simulink研究BPSK+信道编码(取汉明码)在加性高斯白噪声信道下的误码率性能与信噪比之间的关系;分析不同码率对误码率性能的影响。
(3) 在上步仿真分析的基础上,添加直接序列扩频/解扩模块,建立直接序列扩频系统的matlab仿真模型,在信道中存在高斯白噪声和干扰的情况下,对系统在不同扩频增益下的误码率性能进行仿真及分析。
四、提交设计报告
内容包括:
-
系统的基本原理框图以及每一个模块的作用;
-
系统matlab/Simulink 仿真过程中,每一个用到的模块中主要参数的意义;
-
仿真系统参数的设定和设定的依据;
-
仿真系统参数改变时,给仿真结果带来的影响(如高斯白噪声信道的信噪比增加,则误码率减小);
-
仿真程序(需要加注释)。
-
仿真的结果(波形,误码率等)。
五、主要参考文献及资料
邵玉斌. Matlab/Simulink通信系统建模与仿真实例分析.清华大学出版社 2008年
李贺冰等,Simulink通信仿真教程,国防工业出版社,2006年5月。
题目1
1、题目内容
试用Matlab/Simulink研究BPSK在加性高斯白噪声信道下的误码率性能与信噪比之间的关系;
2、设计思想或方法
先用Simulink建立BPSK在加性高斯白噪声信道下的仿真模型,设置好每个模块的参数,编写主程序实现BPSK的输入,在程序运行过程中调用BPSK仿真模型,然后用BitErrorRate取在加性高斯白噪声信道下的误码率,最后画出BPSK在加性高斯白噪声信道下的误码率性能与信噪比之间的关系。
3、实现的功能说明
通过调用已建立的BPSK在加性高斯白噪声信道下的仿真模型,利用Matlab编程分析BPSK在加性高斯白噪声信道的误码率性能。
4、程序流程图
5、程序源代码与Simulink仿真模块
5.1 程序源代码与注释
x=0:1:20;
y=x;
%hold off;
% M=2;
for i=1:length(x)
SNR=x(i);%信道的信噪比
sim('BPSK');%运行仿真程序,将得到的误比特率保存在工作区变量中
y(i)=mean(BitErrorRate);%计算BitErrorRate的平均值作为误码率
end
semilogy(x,y);%对y取对数画图
hold on;
xlabel('高斯白噪声信道中的SNR');
ylabel('误码率');
title('BPSK的误码率曲线');
hold on;
grid on;
5.2 Simulink框图及参数设置
Random Integer Generator
模块描述:采用该模块产生随机的二进制随机信号作为系统的信源。
模块参数:
Initial seed:随机数种子,不同的随机数种子通常产生不同的序列。
Sample time:抽样时间,表示输出序列中每个二进制符号的持续时间。
Samples per frame:只有当Frame-based outputs选种后才可编辑此参数,它表示输出一帧中包含的抽样点数。此处表示1帧由10000个比特组成。
output data type:输出数据类型。
BPSK Modulator Baseband
AWGN Channel
模块描述:最简单的信道,常指加权高斯白噪声(AWGN)信道。这种噪声假设为在整个信道带宽下功率谱密度(PDF)为常数,并且振幅符合高斯概率分布。
模块参数:
Initial seed:随机数种子,不同的随机数种子通常产生不同的序列。
SNR:信噪比。
Input signal power,referenced to 1 ohm:输入信号功率,参考1Ω。
BPSK Demodulator Baseband
Error Rate Calculation
模块描述:通过比较传输数据和接收数据来计算误码率,模块的输出数据是长度
为n的向量,其中每个元素的意义分别是:误码率或误比特率、总的错误个数、总的参加比较的符号或比特数。
模块参数:
Receive delay:指定接收方滞后发送的抽样点数,即接收的第几个值对应发送的第一个值。
Computation delay:指定开始比较时模块忽略的抽样点数。
Computation mode:指定模块是比较全部还是输入数据。
Output data:指定计算结果是输出到工作区还是端口。
Selector
模块描述:通过比较传输数据和接收数据来计算误码率,模块的输出数据是长度
为n的向量,其中每个元素的意义分别是:误码率或误比特率、总的错误个数、总的参加比较的符号或比特数。
模块参数: Receive delay:指定接收方滞后发送的抽样点数,即接收的第几个值对应发送的第一个值。
Computation delay:指定开始比较时模块忽略的抽样点数。 Computation mode:指定模块是比较全部还是输入数据。
Output data:指定计算结果是输出到工作区还是端口。
To Workspace
模块描述:将其输出写入工.作空问。模块将其输出写入到一个由模块Variablename参数命名的矩阵或结构中。
模块参数:Variable name:写入工作区间的数据名称,默认为simout。
Limit data points to last:模块最多可以保留的数据个数,inf表示无穷大。
Dccimation:写入数据的抽样频率,即每隔多少抽样点输入一个值。
Sample time:写入数据的抽样时间,默认值为-1,表示与上一模块抽样时间相同。
Save format:将仿真输出保存到工作空间的格式,该模块将输出保存为数组形式。
Display
6、实验结果与分析
6.1 仿真结果(信噪比SNR与误码率曲线)
6.2 分析
在信道高斯白噪声的干扰下,数字调制系统的误码率取决于信噪比,BPSK的误码率随着信噪比的增大而减小。
题目2
1、题目内容
试用Matlab/Simulink研究BPSK+信道编码(取汉明码)在加性高斯白噪声信道下的误码率性能与信噪比之间的关系;分析不同码率对误码率性能的影响。
2、设计思想或方法
先用Simulink建立BPSK在加性高斯白噪声信道(无突发干扰)下的仿真模型,信道编码及解码方式,采用汉明码进行处理,设置好每个模块的参数,编写主程序实现BPSK的输入,在程序运行过程中调用BPSK仿真模型,然后用BitErrorRate取在加性高斯白噪声信道下的误码率,最后画出BPSK在加性高斯白噪声信道下的误码率性能与信噪比之间的关系曲线。
3、实现的功能说明
通过Simulink调用已建立的BFSK在加性高斯白噪声信道(有突发干扰)下的仿真模型,利用Matlab编程分析BFSK在加性高斯白噪声信道(有突发干扰)的误码率性能;分析突发干扰的持续时间对误码率性能的影响。分析突发干扰的持续时间对误码率性能的影响。
4、程序流程图
依次设定N=15,K=11,S=11和 设定N=31,K=26,S=26
5、程序源代码与Simulink仿真模块
5.1 程序源代码与注释
(1)BPSK+取汉明码在加性高斯白噪声信道下的误码率性能与信噪比之间的关系;
clear
clc
x=-10:1:10;
y=x;
BitRate=10000;
N=7;
K=4;
S=4;
for i=1:length(x)
SNR=x(i);
sim('BPSK_Hamming'); %运行仿真程序,得到的误比特率保存在工作区变量
y(i)=mean(BitErrorRate); %对矩阵中各列的误码率元素分别求平均值
end
semilogy(x,y,'-r'); %y轴用对数标度,x轴用线性标度绘制图形
hold on;
xlabel('信噪比SNR');
ylabel('误码率');
title('BPSK+汉明码的信噪比和误码率关系');
axis([-10,10,1e-6,1]);
grid on;
(2)不同码率对误码率性能的影响。
clear
clc
x=-10:1:10;
y=x;
N=7;
K=4;
S=4;
for i=1:length(x)
SNR=x(i)
sim('BPSK-Hamming'); %运行仿真程序,得到的误比特率保存在工作区变量
y(i)=mean(BitErrorRate) %对矩阵中各列的误码率元素分别求平均值
end
semilogy(x,y,'-r'); %y轴用对数标度,x轴用线性标度绘制图形
hold on;
N=15;
K=11;
S=11;
for i=1:length(x)
SNR=x(i)
sim('BPSK-Hamming'); %运行仿真程序,得到的误比特率保存在工作区变量
y(i)=mean(BitErrorRate) %对矩阵中各列的误码率元素分别求平均值
end
semilogy(x,y,'-g'); %y轴用对数标度,x轴用线性标度绘制图形
hold on;
N=31;
K=26;
S=26;
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'); %横坐标
ylabel('误码率'); %纵坐标
title('BPSK+汉明码不同码率对误码率性能的影响');
legend('码率=4/7','码率=11/15','码率=26/31')
grid on;
5.2 Simulink框图及参数设置
Random Integer Generator
Hamming Encoder
BPSK Modulator Baseband
AWGN Channel
BPSK Demodulator Baseband
Hamming Decoder
Error Rate Calculation
Selector
Display
To Workspace
6、实验结果与分析
6.1 仿真结果
当BFSK使用汉明码编码时随着信道的噪声比的增加误码率快速下降。
6.2 分析
在相同信噪比的情况下,码率不同误码率也不同,信息码长度越长的误码率和信噪比关系曲线越低,在信噪比较小时很难分辨误码率相差不大,而随着信噪比的增大误码率会相差越来越大。当BFSK使用汉明码编码时在相同信噪比的情况下,码率不同误码率也不同。在信噪比比较小时很难分辨误码率相差不大,当误码率在4-4.5之间时就会有很大的区别,可以看到,码率越小的误码率越大。
题目3
1、题目内容
在上步仿真分析的基础上,添加直接序列扩频/解扩模块,建立直接序列扩频系统的matlab仿真模型,在信道中存在高斯白噪声和干扰的情况下,对系统在不同扩频增益下的误码率性能进行仿真及分析。
2、设计思想或方法
先用Simulink建立 BPSK在加性高斯白噪声信道(无突发干扰)下的仿真模型,信道编码及解码方式,采用直接扩频/解扩进行处理,设置好每个模块的参数,编写主程序实现BPSK的输入,在程序运行过程中调用BPSK仿真模型,然后用BitErrorRate取在加性高斯白噪声信道下的误码率,最后画出 BPSK在加性高斯白噪声信道下的误码率性能与信噪比之间的关系曲线。
3、实现的功能说明
通过调用经直接扩频/解扩后的BPSK在加性高斯白噪声信道(无突发干扰)下的仿真模型,利用Matlab编程分析经直接扩频/解扩后的BPSK在加性高斯白噪声信道(无突发干扰)的误码率性能。
4、程序流程图
5、程序源代码与Simulink仿真模块
5.1 程序源代码与注释
x=0:1:30;%信噪比
y=zeros(size(x));%产生全零矩阵
BitRate=100;%信源产生信号的bit为100bit/s
BitRatePN=200;%伪随机码速率bit/s
for i=1:length(x)
SNR=x(i);
sim('test3');%运行仿真程序,得到的误比特率保存在工作区变量BitErrorRate中
y(i)=mean(BitErrorRate);%对矩阵中各列的误码率元素分别求平均值
end
semilogy(x,y,'-r');%y轴用对数标度,x轴用线性标度绘制图形
hold on;
BitRate=100;%信源产生信号的bit为100bit/s
BitRatePN=300;%伪随机码速率bit/s
for i=1:length(x)
SNR=x(i);
sim('test3');%运行仿真程序,得到的误比特率保存在工作区变量BitErrorRate中
y(i)=mean(BitErrorRate);%对矩阵中各列的误码率元素分别求平均值
end
semilogy(x,y,'-k');%y轴用对数标度,x轴用线性标度绘制图形
hold on;
BitRate=100;%信源产生信号的bit为100bit/s
BitRatePN=400;%伪随机码速率bit/s
for i=1:length(x)
SNR=x(i);
sim('test3');%运行仿真程序,得到的误比特率保存在工作区变量BitErrorRate中
y(i)=mean(BitErrorRate);%对矩阵中各列的误码率元素分别求平均值
end
semilogy(x,y,'-b');%y轴用对数标度,x轴用线性标度绘制图形
xlabel('信噪比SNR(db)');
ylabel('误码率Pe');
title('不同扩频增益下的误码率');
legend('扩频增益=20','扩频增益=30','扩频增益=40');%给图形加注释
axis([-10 5 1e-6 1]);%坐标轴
grid on;
5.2 Simulink框图及参数设置
Random Integer Generator
Unipolar to Bipolar Converter (单极性码转双极性码)*
模块描述:将单极性码转为双极性码
模块参数:
M-ary number:表示信号星座图的点数,该项必须设为一个偶数
Output data type:输出数据类型
Bipolar to UnipolarConverter(双极性码转单极性码)
模块描述:将单极性码转为双极性码
模块参数:
M-ary number:表示信号星座图的点数,该项必须设为一个偶数。
N-Output data type:输出数据类型
Unipolar to Bipolar Converter(单极性码转双极性码)
模块说明:生成伪随机序列
模块参数:
Generator polynomial:生成多项式
Initial states:初始状态
Sample time:采样速率
Samples per frame: 只有当Frame-based outputs选种后才可编辑此参数,它表示输出一帧中包含的抽样点数。此处表示1帧由10000个比特组成。
Output data type:输出数据类型
AWGN Channel
BPSK Demodulator Baseband
Error Rate Calculation
Selector
Display
To Workspace
6、实验结果与分析
6.1 仿真结果
信噪比越大,误码率越小,扩频增益越大,误码率越小
6.2 分析
在信道高斯白噪声的干扰下,数字调制系统的误码率取决于信噪比,BPSK的误码率随着信噪比的增大而减小。并且经直接扩频/解扩后误码率比直接BPSK的误码率更低。
附加题
1、题目内容
试用Matlab/Simulink研究2FSK在加性高斯白噪声信道下的误码率性能与信噪比之间的关系;
2、设计思想或方法
先用Simulink建立2FSK在加性高斯白噪声信道下的仿真模型,设置好每个模块的参数,编写主程序实现2FSK的输入,在程序运行过程中调用2FSK仿真模型,然后用BitErrorRate取在加性高斯白噪声信道下的误码率,最后画出2FSK在加性高斯白噪声信道下的误码率性能与信噪比之间的关系。
3、实现的功能说明
通过调用已建立的2FSK在加性高斯白噪声信道下的仿真模型,利用Matlab编程分析2FSK在加性高斯白噪声信道的误码率性能。
4、程序流程图
5、程序源代码与Simulink仿真模块
5.1 程序源代码与注释
Clc
x=0:1:20;
y=x;
%hold off;
% M=2;
for i=1:length(x)
SNR=x(i);%信道的信噪比
sim('test11');%运行仿真程序,将得到的误比特率保存在工作区变量中
y(i)=mean(BitErrorRate);%计算BitErrorRate的平均值作为误码率
end
semilogy(x,y);%对y取对数画图
hold on;
xlabel('高斯白噪声信道中的SNR');
ylabel('误码率');
title('2FSK的误码率曲线');
hold on;
grid on;
5.2 Simulink框图及参数设置
Random Integer Generator
模块描述:采用该模块产生随机的二进制随机信号作为系统的信源。
模块参数:
Initial seed:随机数种子,不同的随机数种子通常产生不同的序列。
Sample time:抽样时间,表示输出序列中每个二进制符号的持续时间。
Samples per frame:只有当Frame-based outputs选种后才可编辑此参数,它表示输出一帧中包含的抽样点数。此处表示1帧由10000个比特组成。
output data type:输出数据类型。
2FSK Modulator Baseband
AWGN Channel
模块描述:最简单的信道,常指加权高斯白噪声(AWGN)信道。这种噪声假设为在整个信道带宽下功率谱密度(PDF)为常数,并且振幅符合高斯概率分布。
模块参数:
Initial seed:随机数种子,不同的随机数种子通常产生不同的序列。
SNR:信噪比。
Input signal power,referenced to 1 ohm:输入信号功率,参考1Ω。
2FSK Demodulator Baseband
Error Rate Calculation
模块描述:通过比较传输数据和接收数据来计算误码率,模块的输出数据是长度
为n的向量,其中每个元素的意义分别是:误码率或误比特率、总的错误个数、总的参加比较的符号或比特数。
模块参数:
Receive delay:指定接收方滞后发送的抽样点数,即接收的第几个值对应发送的第一个值。
Computation delay:指定开始比较时模块忽略的抽样点数。
Computation mode:指定模块是比较全部还是输入数据。
Output data:指定计算结果是输出到工作区还是端口。
Selector
模块描述:通过比较传输数据和接收数据来计算误码率,模块的输出数据是长度
为n的向量,其中每个元素的意义分别是:误码率或误比特率、总的错误个数、总的参加比较的符号或比特数。
模块参数: Receive delay:指定接收方滞后发送的抽样点数,即接收的第几个值对应发送的第一个值。
Computation delay:指定开始比较时模块忽略的抽样点数。 Computation mode:指定模块是比较全部还是输入数据。
Output data:指定计算结果是输出到工作区还是端口。
To Workspace
模块描述:将其输出写入工.作空问。模块将其输出写入到一个由模块Variablename参数命名的矩阵或结构中。
模块参数:Variable name:写入工作区间的数据名称,默认为simout。
Limit data points to last:模块最多可以保留的数据个数,inf表示无穷大。
Dccimation:写入数据的抽样频率,即每隔多少抽样点输入一个值。
Sample time:写入数据的抽样时间,默认值为-1,表示与上一模块抽样时间相同。
Save format:将仿真输出保存到工作空间的格式,该模块将输出保存为数组形式。
Display
6、实验结果与分析
6.1 仿真结果(信噪比SNR与误码率曲线)
6.2 分析
在信道高斯白噪声的干扰下,数字调制系统的误码率取决于信噪比,2FSK的误码率随着信噪比的增大而减小。
附加题
1、题目内容
试用Matlab/Simulink研究2FSK在加性高斯白噪声信道下的误码率性能与信噪比之间的关系;
2、设计思想或方法
先用Simulink建立2FSK在加性高斯白噪声信道下的仿真模型,设置好每个模块的参数,编写主程序实现2FSK的输入,在程序运行过程中调用2FSK仿真模型,然后用BitErrorRate取在加性高斯白噪声信道下的误码率,最后画出2FSK在加性高斯白噪声信道下的误码率性能与信噪比之间的关系。
3、实现的功能说明
通过调用已建立的2FSK在加性高斯白噪声信道下的仿真模型,利用Matlab编程分析2FSK在加性高斯白噪声信道的误码率性能。
4、程序流程图
5、程序源代码与Simulink仿真模块
5.1 程序源代码与注释
Clc
x=0:1:20;
y=x;
%hold off;
% M=2;
for i=1:length(x)
SNR=x(i);%信道的信噪比
sim('test11');%运行仿真程序,将得到的误比特率保存在工作区变量中
y(i)=mean(BitErrorRate);%计算BitErrorRate的平均值作为误码率
end
semilogy(x,y);%对y取对数画图
hold on;
xlabel('高斯白噪声信道中的SNR');
ylabel('误码率');
title('2FSK的误码率曲线');
hold on;
grid on;
5.2 Simulink框图及参数设置
Random Integer Generator
模块描述:采用该模块产生随机的二进制随机信号作为系统的信源。
模块参数:
Initial seed:随机数种子,不同的随机数种子通常产生不同的序列。
Sample time:抽样时间,表示输出序列中每个二进制符号的持续时间。
Samples per frame:只有当Frame-based outputs选种后才可编辑此参数,它表示输出一帧中包含的抽样点数。此处表示1帧由10000个比特组成。
output data type:输出数据类型。
2FSK Modulator Baseband
AWGN Channel
模块描述:最简单的信道,常指加权高斯白噪声(AWGN)信道。这种噪声假设为在整个信道带宽下功率谱密度(PDF)为常数,并且振幅符合高斯概率分布。
模块参数:
Initial seed:随机数种子,不同的随机数种子通常产生不同的序列。
SNR:信噪比。
Input signal power,referenced to 1 ohm:输入信号功率,参考1Ω。
2FSK Demodulator Baseband
Error Rate Calculation
模块描述:通过比较传输数据和接收数据来计算误码率,模块的输出数据是长度
为n的向量,其中每个元素的意义分别是:误码率或误比特率、总的错误个数、总的参加比较的符号或比特数。
模块参数:
Receive delay:指定接收方滞后发送的抽样点数,即接收的第几个值对应发送的第一个值。
Computation delay:指定开始比较时模块忽略的抽样点数。
Computation mode:指定模块是比较全部还是输入数据。
Output data:指定计算结果是输出到工作区还是端口。
Selector
模块描述:通过比较传输数据和接收数据来计算误码率,模块的输出数据是长度
为n的向量,其中每个元素的意义分别是:误码率或误比特率、总的错误个数、总的参加比较的符号或比特数。
模块参数: Receive delay:指定接收方滞后发送的抽样点数,即接收的第几个值对应发送的第一个值。
Computation delay:指定开始比较时模块忽略的抽样点数。 Computation mode:指定模块是比较全部还是输入数据。
Output data:指定计算结果是输出到工作区还是端口。
块参数: Receive delay:指定接收方滞后发送的抽样点数,即接收的第几个值对应发送的第一个值。
Computation delay:指定开始比较时模块忽略的抽样点数。 Computation mode:指定模块是比较全部还是输入数据。
Output data:指定计算结果是输出到工作区还是端口。
To Workspace
模块描述:将其输出写入工.作空问。模块将其输出写入到一个由模块Variablename参数命名的矩阵或结构中。
模块参数:Variable name:写入工作区间的数据名称,默认为simout。
Limit data points to last:模块最多可以保留的数据个数,inf表示无穷大。
Dccimation:写入数据的抽样频率,即每隔多少抽样点输入一个值。
Sample time:写入数据的抽样时间,默认值为-1,表示与上一模块抽样时间相同。
Save format:将仿真输出保存到工作空间的格式,该模块将输出保存为数组形式。
Display
6、实验结果与分析
6.1 仿真结果(信噪比SNR与误码率曲线)
6.2 分析
在信道高斯白噪声的干扰下,数字调制系统的误码率取决于信噪比,2FSK的误码率随着信噪比的增大而减小。