完整版基于MATLAB2FSK数字通信系统设计.docx
《完整版基于MATLAB2FSK数字通信系统设计.docx》由会员分享,可在线阅读,更多相关《完整版基于MATLAB2FSK数字通信系统设计.docx(13页珍藏版)》请在冰豆网上搜索。
![完整版基于MATLAB2FSK数字通信系统设计.docx](https://file1.bdocx.com/fileroot1/2023-1/7/0045c5e5-98e8-4291-9783-431c5443473d/0045c5e5-98e8-4291-9783-431c5443473d1.gif)
完整版基于MATLAB2FSK数字通信系统设计
鉴于MATLAB的2FSK数字通信系统设计
一、课程设计目的
本次课程设计是对通信原理课程理论授课和实验授课的综合和总结。
经过此次课程设计,使同学认识和理解通信系统,掌握信号是怎样经过发端办理、被送入信道、
尔后在接收端还原。
要修业生掌握通信原理的基本知识,运用所学的通信仿真的方法实现某种传输系统。
可以依照设计任务的详细要求,掌握软件设计、调试的详细方法、步骤和技巧。
对一个本质课题的软件设计有基本认识,能进一步掌握高级语言程序设计基本看法,
掌握基本的程序设计方法,拓展知识面,激发在此领域中连续学习和研究的兴趣,为
学习后续课程做准备。
二、课程设计内容
在信道中,大多数拥有带通传输特点,必定用数字基带信号对载波进行调制,产生各种已调数字信号。
可以用数字基带信号改变正弦型载波的幅度、频率或相位中的某个参数,产生相应的数字振幅调制、数字频率调制和数字相位调制。
也可以用数字基带信号同时改变正弦型载波幅度、频率或相位中的某几个参数,产生新式的数字调制。
本课程设计旨在依照所学的通信原理知识,并鉴于MATLAB软件,设计一2FSK数字通信系统。
2FSK数字通信系统,即频移键控的数字调制通信系统。
可以鉴于MATLAB仿真软件以及Simulink仿真环境设计该系统。
频移键控是利用载波的频率变化来传
递数字信息。
在2FSK中,载波的频率随二进制基带信号在f1和f2两个频率点间变
化。
因此,一个2FSK信号的波形可以看作是两个不同样载频的2ASK信号的叠加。
可以
利用频率的变化传达数字基带信号,经过调制解调还原数字基带信号,实现课程设计
目标。
三、设计原理
在二进制数字调制中,若正弦载波的频率随二进制基带信号在f1和f2两个频率
点间变化,则产生二进制移频键控信号(2FSK信号)。
二进制移频键控信号可以看作是两个不同样载波的二进制振幅键控信号的叠加。
然
后在MATLAB中产生高斯白噪声,这特别方便,可以直接应用两个函数,一个是WGN,
另一个是AWGN。
WGN用于产生高斯白噪声,AWGN则用于在某一信号中加入高斯白噪
声。
高斯白噪声,是指噪声的概率密度函数满足正态分布统计特点,同时它的功率谱
密度函数是常数的一类噪声。
这里值得注意的是,高斯型白噪声同时涉及到噪声的两
个不同样方面,即概率密度函数的正态分布性和功率谱密度函数均匀性,二者缺一不可以。
其解调原理是将二进制移频键控信号分解为上下两路二进制振幅键控信号,分别进行
有关解调,经过对上下两路的抽样值进行比较最后判决出输出信号,并与原信号进行
比较统计。
基本的系统原理图以下:
二进制数字基带信号2FSK调制加入高斯白噪声
求误码率抽样判决输出信号2FSK有关解调
理学与信息科学学院通信原理课程设计报告
四、实现方法
经过在Matlab环境下利用有关程序对二进制信号进行抽样产生二进制随机序
列,并在此时确定抽样间隔、抽样个数,进行显示。
尔后对二进制信号进行2FSK调制,利用Matlab函数库中awgn函数在信道中加入高斯白噪声,并对此时的信号进行显示,接着进行有关解调,输出显示解调后序列,比较信号调制前后的变化,统计误
码率,并解析调制利害。
以下为详细过程:
a)调整模块
使用键控法产生2FSK信号,即由电子开关在两个独立的频率源之间变换形成,这样的相邻码元之间相位不用然连续。
产生2FSK调制信号原理图:
振荡器1
f1
选通开关
基
带
信
e2FSK(t)
号
相加
器
反相器
振荡器2
f2
Fc=10;%载频
Fs=40;%系统采样频率
Fd=1;%码速率
N=Fs/Fd;
df=10;
选通开关
numSymb=25;%进行仿真的信息代码个数
M=2;%进制数
SNRpBit=60;%信噪比
SNR=SNRpBit/log2(M);
seed=[1234554321];
numPlot=25;
1
理学与信息科学学院通信原理课程设计报告
如上图,使用产BernoulliBinaryGenerator模块生二进制随机比特流,经过键控法进行2FSK调制。
figure
(1)
%产生25个二进制随机码
x=randsrc(numSymb,1,[0:
M-1]);%产生25个二进制随机码
subplot(2,2,1)
stem([0:
numPlot-1],x(1:
numPlot),'bx');
title('二进制随机序列')
xlabel('Time');
ylabel('Amplitude');
2、传输模块
(1)2FSK调制阶段
在二进制数字调制中,若正弦载波的频率随二进制基带信号在
f1和f2两个频率
点间变化,则产生二进制移频键控信号(
2FSK信号)。
二进制移频键控信号的时间波
形以以下图所示:
ak
10
1100
1
a
s(t)
t
b
s(t)
t
c
t
dt
et
ft
g2FSK信号t
2
理学与信息科学学院通信原理课程设计报告
图中波形g可分解为波形e和波形f,即二进制移频键控信号可以看作是两个不同样载波的二进制振幅键控信号的叠加。
若二进制基带信号的1符号对应于载波频率f1,0符号对应于载波频率f2,则二进制移频键控信号的时域表达式为:
%调制
y=dmod(x,Fc,Fd,Fs,'fsk',M,df);
numModPlot=numPlot*Fs;
t=[0:
numModPlot-1]./Fs;
subplot(2,2,2)
plot(t,y(1:
length(t)),'b-');
axis([min(t)max(t)-1.51.5]);
title('调制后的信号')
xlabel('Time');
ylabel('Amplitude');
(2)在已调信号中加入高斯白噪声
在二进制数字调制系统抗噪声性能解析中,假设信道特点是恒参信道,在信号的频带范围内其拥有理想矩形的传输特点(可取传输系数为K)。
噪声为等效加性高斯白噪声,其均值为零,方差为σ2。
加入高斯噪声信道的总图以下
其中,Scope图为原随机二进制比特流图形,Scope3图为高频率f1信号调制后的波形,Scope2图为低频率f2信号调制后的波形,Scope14图为经过2FSK调制后未加高斯白噪声前的波形图,Scope13为经过加有高斯白噪声信道后的波形图,Scope5图为经过解调抽样判决后的波形信号。
3
理学与信息科学学院通信原理课程设计报告
%在已调信号中加入高斯白噪声
randn('state',seed
(2));
y=awgn(y,SNR-10*log10(0.5)-10*log10(N),'measured',[],'dB');%在已调信
号中加入高斯白噪声
subplot(2,2,4)
plot(t,y(1:
length(t)),'b-');%画出经过信道的本质信号
axis([min(t)max(t)-1.51.5]);
title('加入高斯白噪声后的已调信号')
xlabel('Time');
ylabel('Amplitude');
3、解调模块
(1)解调输出
本设计使用有关解调。
其解调原理是将2FSK信号分解为上下两路2ASK信号分别进行解调,尔后进行判决。
抽样判决是直接比较两路信号抽样值的大小,判决规则应与调制规则相响应,调制时若规定“1”符号对应载波频率f1,则接收时上支路的样值较大,应判为“1”;反之则判为“0”。
将加入的高斯白噪声滤除,并抽样判决出解调后的信号:
4
理学与信息科学学院通信原理课程设计报告
ω1
带通滤
相乘器
低通滤
输入
波器
波器
输出
抽样脉
抽样判
Cosω1t
决器
带通滤
低通滤
波器
相乘器
波器
ω2
Cosω2t
调制后的信号经过带通滤波器和低通滤波器解调出不同样频率的两路信号,经过抽样判决器,解调出原信号。
%有关解调
z1=ddemod(y,Fc,Fd,Fs,'fsk/eye',M,df);
%带输出波形的有关M元频移键控解调
subplot(2,2,3)
stem([0:
numPlot-1],x(1:
numPlot),'bx');
holdon;
stem([0:
numPlot-1],z1(1:
numPlot),'ro');
holdoff;
axis([0numPlot-0.51.5]);
title('有关解调后的信号原序列比较')
legend('原输入二进制随机序列','有关解调后的信号')
xlabel('Time');
ylabel('Amplitude')
(2)、误码率统计
在数字通信系统中,信号的传输过程会碰到各种搅乱,从而影响对信号的恢复。
通信系统的抗噪声性能是指系统战胜加性噪声影响的能力。
衡量数字通信系统抗噪声性能的重要指标是误码率.解析二进制数字调制系统的抗噪声性能,得出误码率与信噪比之间的数学关系。
%误码率统计
z1=ddemod(y,Fc,Fd,Fs,'fsk/eye',M,df);
[errorSymratioSym]=symerr(x,z1);
figure
(2)
simbasebandex([0:
1:
5]);
title('有关解调后误码率统计')
5
理学与信息科学学院通信原理课程设计报告
五、总结与领悟
经过本次课程设计,我对课本上数字通信传输系统特别是二进制频移键控(2FSK)有了重新的认识。
对2FSK调制数字基带信号加深了理解。
对于使用键控法产生2FSK信号、增加高斯白噪声、使用有关解调、抽样判决等,我比较系统地认识了数字通信
传输系统。
本课程设计使用的MATLAB仿真软件和Simulink仿真环境,经过写其源程序代码,加深了我对每一步进行的理解,即要理解每一步都是怎么来的。
经过使用Simulink仿真环境,我可以直观地放置相应的模块,搭建通信系统,并可以动向的显示仿真结果,使学习设计不再无聊
1、程序设计与系统推行。
MATLAB供应了程序设计仿真环境,可以经过编写代码完成某些模块的仿真。
同
时利用其供应的画图功能,可以令人直观地观察程序设计及调试的结果。
每一步都得十分认真,需要详细到一个小小的标点符号,否则程序就会在调试中出错。
本设计中,依照设计规划包括基带信号的产生和调制、加入高斯白噪声、带通滤波和低通滤波、
有关解调、计算误码率等。
本过程使我将学习过但其实不熟练的MATLAB软件重新学习
和使用了一下,并经过查阅和引用有关资料学习使用其有关的函数功能。
MATLAB中的画图功能是本课程设计的亮点,将结果直观地表现出来。
2、理论模糊造成设计困难。
经过进行设计我发现,没有熟悉的理论知识搞设计是困难的。
在设计每一步时,
必定搞清楚每一步是干什么的,怎么进行,这些都需要理论进行指导。
当哪一步不会
弄时,我就去查书,将书中的理论细细研读,这样经过本课程设计我又把书中有关的
部分细细看了几遍,对书中的理论有了更深的认识。
因为多次调试,结果越来越凑近
理论情况下的结果,可见实验其实就是对理论的考据。
因此,清楚地掌握理论是进行
设计的要点步骤。
6
理学与信息科学学院通信原理课程设计报告
本课程设计可是在通信理论下的软件系统仿真,若放在本质环境中必然有好多需要改进的地方,甚至根本行不通。
因为理论下的设计是鉴于理想的环境中的,现实中的环境充满搅乱因素,如噪声其实不是理想化的高斯白噪声、信源及信道自己存在系统误差、滤波器不可以能实现理想化等等。
因此,若要将系统应用于现实世界,还需要依照详细的环境改进该系统。
参照书目:
【1】樊昌信、曹丽娜,《通信原理》(第6版),国防工业初版社,2009.5【2】曹弋,《MATLAB教程及实训》,机械工业初版社,
【3】李贺兵,《Simulink通信仿真教程》,国防工业初版社,
【4】刘波、文忠、曾涯,《MATLAB信号办理》,电子工业初版社,
源程序:
Fc=10;%载频
Fs=40;%系统采样频率
Fd=1;%码速率
N=Fs/Fd;
df=10;
numSymb=25;%进行仿真的信息代码个数
M=2;%进制数
SNRpBit=60;%信噪比
SNR=SNRpBit/log2(M);
seed=[1234554321];
numPlot=25;
%产生25个二进制随机码
x=randsrc(numSymb,1,[0:
M-1]);%产生25个二进制随机码
figure
(1)
stem([0:
numPlot-1],x(1:
numPlot),'bx');
title('二进制随机序列')
xlabel('Time');
7
理学与信息科学学院通信原理课程设计报告
ylabel('Amplitude');
%调制
y=dmod(x,Fc,Fd,Fs,'fsk',M,df);
numModPlot=numPlot*Fs;
t=[0:
numModPlot-1]./Fs;
figure
(2)
plot(t,y(1:
length(t)),'b-');
axis([min(t)max(t)-1.51.5]);
title('调制后的信号')
xlabel('Time');
ylabel('Amplitude');
%在已调信号中加入高斯白噪声
randn('state',seed
(2));
y=awgn(y,SNR-10*log10(0.5)-10*log10(N),'measured',[],'dB');%在已调信号中
加入高斯白噪声
figure(3)
plot(t,y(1:
length(t)),'b-');%画出经过信道的本质信号
axis([min(t)max(t)-1.51.5]);
title('加入高斯白噪声后的已调信号')
xlabel('Time');
ylabel('Amplitude');
%有关解调
figure(4)
z1=ddemod(y,Fc,Fd,Fs,'fsk/eye',M,df);
8
理学与信息科学学院通信原理课程设计报告
title('有关解调后的信号的眼图')
%带输出波形的有关M元频移键控解调
figure(5)
stem([0:
numPlot-1],x(1:
numPlot),'bx');
holdon;
stem([0:
numPlot-1],z1(1:
numPlot),'ro');
holdoff;
axis([0numPlot-0.51.5]);
title('有关解调后的信号原序列比较')
legend('原输入二进制随机序列','有关解调后的信号')
xlabel('Time');
ylabel('Amplitude');
%误码率统计
[errorSymratioSym]=symerr(x,z1);
figure(6)
simbasebandex([0:
1:
5]);
title('有关解调后误码率统计')
9