通信工程专业课设报告.docx
《通信工程专业课设报告.docx》由会员分享,可在线阅读,更多相关《通信工程专业课设报告.docx(28页珍藏版)》请在冰豆网上搜索。
通信工程专业课设报告
课程设计说明书
课程设计名称:
通信专业课程设计
课程设计题目:
基于MATLAB环境下的GUI的FSK仿
真演示系统设计
学院名称:
信息工程学院
专业:
通信工程班级:
姓名:
同组人:
评分:
教师:
2013年7月1日
专业课程设计任务书
2012-2013学年第2学期 第17周-19周
题目
基于MATLAB环境下GUI的FSK仿真演示系统设计
内容及要求
1.掌握FSK的原理和仿真方法;
2.通过脚本编程或者SIMULINK对FSK调制方式进行仿真;
3.在MATLAB环境下制作一个GUI,可以由用户输入载波频率、两个调制频率f1和f2,动态产生FSK调制波形;
4.观察调制信号和已调信号波形,分析调制性能。
进度安排
17周:
查找资料,进行系统软件方案设计;
18周:
软件的分模块调试;
19周:
系统联调;设计结果验收,报告初稿的撰写。
学生姓名:
指导时间:
每周一、二、三、四
指导地点:
任务下达
2013年6月17日
任务完成
2013年7月5日
考核方式
1.评阅□ 2.答辩□3.实际操作□ 4.其它□
指导教师
系(部)主任
注:
1、此表一组一表二份,课程设计小组组长一份;任课教师授课时自带一份备查。
2、课程设计结束后与“课程设计小结”、“学生成绩单”一并交院教务存档。
摘要
MATLAB是目前国际上流行的进行科学研究、工程计算的软件。
它起源于矩阵运算,并已经发展成为一种高度集成的计算机语言。
MATLAB具有强大的数学运算能力、方便实用的绘图功能及语言的高度集成性。
除具备卓越的数值计算能力之外,它还提供了专业水平的符号计算、文字处理、可视化建模仿真、实时控制等功能。
在通信领域MATLAB更是优势明显,因为通信领域中很多问题是研究系统性能的,传统的方法只有构建一个实验系统,采用各种方法进行测量,才能得到所需的数据,这样不仅需要花费大量的资金用于实验系统的构建,而且系统构建周期长,系统参数的调整也十分困难。
而MATLAB的出现使得通信系统的仿真能够用计算机模拟实现,免去构建实验系统的不便,而且操作十分简便,只需要输入不同的参数就能得到不同情况下系统的性能,而且在结构的观测和数据的存储方面也比传统的方式有很多优势。
因而MATLAB在通信仿真领域得到越来越多的应用。
基于MATLAB环境下GUI的FSK仿真演示系统设计只是其中诸多功能的一个小分支而已,实现起来更加方便。
其中涉及的滤波器设计更有相关的滤波器函数可调用,为实验仿真提供了便捷。
关键字:
MatlabFSK系统仿真滤波器
目录
前言................................................................5
第一章设计要求及任务...............................................6
第二章系统组成及工作原理...........................................7
2.1系统各单元模块................................................7
2.2FSK的基本原理和实现...........................................7
第三章系统设计思路..............................。
。
。
。
。
..............10
3.1调制模块设计..................................................10
3.2解调模块设计.................................................11
3.3GUI界面设计...............................。
.................12
第四章系统调试结果分析.............................................13
4.1调试步骤及波形分析............................................13
4.2调试故障分析..................................................19
第五章总结.........................................................20
参考文献............................................................21
附录一M文件.......................................................22
前言
MATLAB已发展成为适合众多学科,多种工作平台、功能强大的大型软件。
在欧美等国家的高校,MATLAB已成为线性代数、自动控制理论、数理统计、数字信号处理、时间序列分析、动态系统仿真等高级课程的基本教学工具。
成为攻读学位的本科、硕士、博士生必须掌握的基本技能。
在设计研究单位和工业开发部门,MATLAB被广泛的应用于研究和解决各种具体问题。
在中国,MATLAB也已日益受到重视,短时间内就将盛行起来,因为无论哪个学科或工程领域都可以从MATLAB中找到合适的功能。
基于MATLAB环境下GUI的2FSK仿真演示系统设计涉及的带通滤波器和低通滤波器都可以通过调用滤波器函数进行设计,仿真也能方便给信号加入相应的噪声,模拟现实中的噪声干扰。
在程序中可以随便调出某个测试点,观察起波形,分析波形更加方便。
Matlab的图形界面功能GUI(GraphicalUserInterface)能为仿真系统生成一个人机交互界面,便于仿真系统的操作。
因此,GUI在通信系统的各种仿真中得到了广泛的应用,本文也选用该工具对数字调制系统进行仿真。
第一章设计要求及任务
1.1课程设计题目
本次课程设计的题目是基于MATLAB环境下GUI的2FSK仿真演示系统设计。
1.2设计要求
设计一个“基于MATLAB环境下GUI的2FSK仿真演示系统”,具体要求如下:
1.掌握2FSK的原理和仿真方法;
2.通过脚本编程或者SIMULINK对2FSK调制方式进行仿真;
3.在MATLAB环境下制作一个GUI,可以由用户输入载波频率、两个调制频率f1和f2,动态产生2FSK调制波形;
4.观察调制信号和已调信号波形,分析调制性能。
第二章系统组成及工作原理
2.1系统各单元模块
设计此系统必须具备以下单元功能模块:
①原序列信号产生模块;
②信号加躁模块;
③调制模块;
1、带通滤波器模块;
④解调模块:
2、乘法器模块;
3、低通滤波器模块;
4、抽样判决模块;
2.2FSK的基本原理和实现
一、基本原理
在二进制数字调制中,若正弦载波的频率随二进制基带信号在f1和f2两个频率点间变化,则产生二进制移频键控信号(2FSK信号).二进制移频键控信号的时间波形如图2-1所示,图中波形g可分解为波形e和波形f,即二进制移频键控信号可以看成是两个不同载波的二进制振幅键控信号的叠加.若二进制基带信号的1符号对应于载波频率f1,0符号对应于载波频率f2,则二进制移频键控信号的时域表达式为
图2-1二进制移频键控信号的时间波形
由图2-6可看出,bn是an的反码,即若an=1,则bn=0,若an=0,则bn=1,于是bn=na,θn和nφ分别代表第n个信号码元的初始相位.在二进制移频键控信号中,nφ和θn不携带信息,通常可令nφ和θn为零.因此,二进制移频键控信号的时域表达式可简化为:
(2.1.8)
二、2FSK信号的产生方法(调制原理)
二进制移频键控信号的产生,可以采用模拟调频电路来实现,也可以采用数字键控的方法来实现.图2-2是数字键控法实现二进制移频键控信号的原理图,图中两个振荡器的输出载波受输入的二进制基带信号控制,在一个码元Ts期间输出f1或f2两个载波之一.
图2-2数字键控法实现二进制移频键控信号的原理图
三、2FSK解调原理
二进制移频键控信号的解调方法很多,有模拟鉴频法和数字检测法,有非相干解调方法也有相干解调方法.采用非相干解调和相干解调两种方法的原理图如图2-4、2-5所示.其解调原理是将二进制移频键控信号分解为上下两路二进制振幅键控信号,分别进行解调,通过对上下两路的抽样值进行比较最终判决出输出信号.
2-4相干解调
2-4非相干解调
第三章系统设计思路
3.1调制模块设计
图3.1调制模块设计流程图
注释:
w为二进制信息码;st11信号是承载码信息的二进制脉冲序列;e_fsk是已调制的二进制频移键控信号;fsk是加噪后的信号;ppt_e_fsk、ppt_fsk分别是e_fsk、fsk信号的傅立叶变换,即频域函数。
3.2解调模块设计
图3.2解调模块设计流程图
3.3GUI界面设计
如图3.3所示,界面一共有三个编辑框edit1~edit3,两个下拉菜单popupmenu1、popupmenu2。
一个pushbutton1。
两个axes1~axes2。
他们的功能描述如表3-1所示:
图3.3GUI界面设计
表3-1GUI界面功能描述
控件名
功能描述
edit1
输入二进制信息码w
edit2
输入载频f1
edit3
输入载频f2
Popupmenu1
选择axes1坐标轴要显示的图形
Popupmenu2
选择axes2坐标轴要显示的图形
Pushbutton1
清除axes1、axes2坐标轴上的图形
axes1
显示popupmenu1中被选择的函数的图形
axes2
显示popupmenu2中被选择的函数的图形
第四章系统调试结果分析
4.1调试步骤及波形分析
4.1.1调试步骤
第一步:
运行m文件或者fig文件后,系统会打开“基于MATLAB环境下的GUI的FSK调制解调仿真演示系统”。
第二步:
输入任意长度的二进制信息码w,载频f1及f2。
第三步:
选中任一下拉菜单中的任意选项,即可调用FSK调制解调函数bfsk,并且根据选中项的项号,查找到相应已生成的函数信号,最后在相应的坐标轴中显示出来。
第四步:
选择另一下拉菜单中的任意项,并在其相应坐标轴中显示所选函数信号。
第五步:
根据需要,使用清除图像功能。
4.1.2现象分析
整个调制解调过程,生成了很多函数信号。
仿真演示系统可以通过popupmenu选择任意函数信号进行对比观察。
下面按照整个调制解调过程,顺序地选择一些具有重要对比意义的现象分析系统性能及调试结果。
一、打开系统界面
图4.1系统界面图
运行m文件或fig文件后,显示如图4.1所示系统界面。
二、输入参数、选择菜单项
打开界面后,用户需要输入任意长度的信息码w、载频f1和f2三个参数。
接着,如图4.2所示,点击下拉菜单后,共有基带信号、已调信号、抽样判决输出信号等15项函数信号可供选择。
用户可以选择不同的函数信号分别显示在图形一和图形二坐标轴上,这样可以方便对比观察。
图4.2用户输入参数
三、原信号和已调信号
输入信息码1001010010,载频f1=200,f2=100。
观察原信号(图一)和已调信号(图二)。
如图4.3所示
图4.3基带信号和已调信号
显然,对比观察图中两个信号,原信号为1时的已调信号频率f1是原信号为0时的已调信号频率f2的两倍,可以确定演示结果正确。
四、已调信号和已调加噪信号
输入信息码1001010010,载频f1=200,f2=100。
观察已调信号(图一)和已调加噪信号(图二)。
如图4.4所示。
当已调信号经过信道传输后,不免会有噪声干扰。
这里我们以高频信号cos(2*pi*300*t)作为输入噪声。
将图4.4中的两个图形对比观察,发现图形二所示信号显然已被噪声干扰,发生了一定的变形,可以确定演示结果正确。
图4.4已调信号和已调加噪信号
五、已调加噪信号和已调加噪信号频谱
输入信息码10010,载频f0=400,f1=200。
观察已调加噪信号(图一)和已调加噪信号频谱(图二)。
如图4.5所示。
图4.5已调加噪信号&已调加噪信号频谱
6、经带通滤波器后的信号波形及频谱图
输入信息码1001010010,载频f1=200,f2=100。
观察经带通滤波器1后的信号波形(图一)和经带通滤波器2后的信号波形(图二)。
如图4.6所示,从图中可以,明显看出fsk信号经过带通滤波器后波形有明显的区别。
经带通滤波器1后的信号频谱图(图一)和经带通滤波器2后的信号频谱图(图二)。
如图4.7所示,从图中可以很直观的看出fsk信号经不同的带通滤波器后通过的频率是不一样的,而且明显的消除了高频噪声的干扰。
图4.6经带通滤波器后的信号波形
图4.7经带通滤波器后的信号频谱图
七、经乘法器与相应载波相乘后的信号波形
输入信息码1001010010,载频f1=200,f2=100。
观察fsk1与载波s1=cos(2*pi*f1*t)相乘得到的信号st10(图一)和fsk2与载波s2=cos(2*pi*f1*t)相乘得到的信号st20(图二)。
如图4.8所示。
图4.8经乘法器与相应载波相乘后的信号st10、st20
相乘后,若某点对应的原信号应为0,在此点处信号平均值
<
。
同理,若某点对应的原信号应为1,则在此点处信号
>
。
从而下面可以直接用抽样判决的方法解调出原信号。
对比观察图中两个信号,可以确定演示结果是正确的。
八、经两个低通滤波器后的信号st1、st2
输入信息码1001010010,载频f1=200,f2=100。
观察st10经低通滤波器1滤波后得到的信号波形(图一)和m1经带通滤波器1滤波后得到的信号波形(图二)。
如图4.9所示。
经过低通滤波器以后,我们将得到的信号st1、st2的中值进行比较,即比较st1(1,m*100+0.5*100)和st2(1,m*100+0.5*100)的大小,得到较为可靠的判决信号。
这样使得抽样判决器的抽样值较为准确,有利于提高抽样判决器的有效性。
观察图中两个信号,不难看出在有些时间段st1>st2,有些时间段st1这恰好符合抽样判决器的判决要求。
所以可以确定演示结果正确。
图4.9经两个低通滤波器后的信号st1、st2
九、基带信号st11(t)和抽样判决输出信号at(t)
输入信息码1001010010,载频f1=200,f2=100。
观察原信号st11(图一)和解调输出信号st(图二)。
如图4.10所示。
信号在系统中受调制、传输、解调等过程后恢复了基带信号,可以确定演示结果正确。
图4.10原信号st11(t)和抽样判决输出信号at(t)
4.2调试故障分析
系统调试时,多次在调制步骤出现故障,输出的波形出现频率不正确的现象。
经过多次试验后,发现载波的频率f1、f2需要在100到200HZ左右,带通滤波器和低通滤波器才能够正常工作。
所以,系统在使用仿真时,输入的载波频率最好是在该范围内。
第五章
总结
在学习通信原理理论基础后,我们了解到2FSK是信息传输中使用得较早的一种调制方式,也是数字通信中用得较广的一种方式。
它的主要优点是:
实现起来较容易,抗噪声与衰减的性能较好,适合中低速数据的传输的应用。
通常数据率在低于1200bps时使用FSK方式。
在衰落信道中传输数据时,它也被广泛采用。
相干解调对接收设备的复杂程度比非相干解调较高。
在理论学习的基础上通过利用MATLAB仿真,真正的看到了通信中传输信息的一系列的问题。
比如说要使信号不失真地传输到接收端,就要考虑很多的因数。
在发送端要注意噪声的加入,尽量地减少噪声浸入信道中,以免在接受端使信号失真度过大而不能恢复成原来的信号。
而在接收端,采用哪种解调方式能够更好地恢复出原来的信号,对于不同的解调方式有相干解调和非相干解调。
相干解调一般是在接收端使接收的信号通过一个相乘器,同时乘上一个与原调制信号同频同相的载波,再通过低通滤波器滤除不需要的信号。
然后再经过采样、量化和编码,最终可以得到原调制信号。
通过这次的课程设计,进一步了解了二进制频移键控即2FSK的基本原理及其相干解调方法。
当然在学习的过程中,也遇到了许多困难。
比如参数设置的不理想时,总是会出现波形失真等问题。
但是通过查阅资料和请教老师,我们很好地完成了此次设计。
同时这次的设计也让我对MATLAB环境下的GUI有了一定的了解,使我明白了用计算机仿真电子通信系统,具有广泛的适应性和极高的灵活性。
本次设计主要涉及到了通信原理和MATLAB的相关知识与运用,主要有基带信号的调制原理及方法、相干解调的原理及实现方法、带通和低通滤波器的特性、抽样判决的实现方法等等,加深了对上述相关知识的了解,使自己更深刻理解了调制与解调的原理和实现方法,已经基本掌握了MATLAB的m文件及其环境下的GUI的基本应用。
通过这次课程设计,我们学到了很多书本上没有的知识。
锻炼了我们独立思考问题、分析问题、解决问题的能力。
而且本次设计是和同组人共同完成的,加强了与他人沟通的能力以及团队合作精神,为今后走向社会提供了很好的准备。
参考文献
[1]樊昌信.通信原理.北京:
国防工业出版社,2008.
[2]郝文化.MATLAB图形图像处理应用教程.北京:
中国水利水电出版社,2002.
[3]徐金明.MATLAB实用教程.北京:
清华大学出版社,2003.
[4]李海涛.MATLAB程序设计教程[M].北京:
高等教育出版社.2002
[5]董长虹.信号处理与应用[M].北京:
国防工业出版社.2005
[6]薛年喜.MATLAB在数字信号处理中的应用[M].北京:
清华大学出版.2003
[7]郑君里.信号与系统[M].北京:
高等教育出版社.2000
附录一m文件
由于有很多都是系统生成语句,不是函数关键部分,故这里删除了许多不必要的语句,着重强调的还是popupmenu1、popupmenu2的回调函数及调制解调函数bfsk。
functionpopupmenu1_Callback(hObject,eventdata,handles)
axes(handles.axes1);ab=1;
val=get(handles.popupmenu1,'value');
switchval
case1
ab=1;
case2
ab=2;
case3
ab=3;
case4
ab=4;
case5
ab=5;
case6
ab=6;
case7
ab=7;
case8
ab=8;
case9
ab=9;
case10
ab=10;
case11
ab=11;
case12
ab=12;
case13
ab=13;
case14
ab=14;
case15
ab=15;
end
bfsk1(ab);
functionpopupmenu2_Callback(hObject,eventdata,handles)
axes(handles.axes2);ab=1;
val=get(handles.popupmenu2,'value');
switchval
case1
ab=1;
case2
ab=2;
case3
ab=3;
case4
ab=4;
case5
ab=5;
case6
ab=6;
case7
ab=7;
case8
ab=8;
case9
ab=9;
case10
ab=10;
case11
ab=11;
case12
ab=12;
case13
ab=13;
case14
ab=14;
case15
ab=15;
end
bfsk1(ab);
functionbfsk1(ab)
w=eval(get(findobj('tag','edit1'),'string'));
f1=eval(get(findobj('tag','edit2'),'string'));
f2=eval(get(findobj('tag','edit3'),'string'));
i=length(w);;%基带信号码元数
j=100*length(w);%载波信号长度
t=linspace(0,1,j);%在0到j之间产生行矢量
%%%%%%%%%%%%%%%%%%%产生基带信号st11%%%%%%%%%%%%%
st11=t;
forn=1:
i
ifw(n)<1;
form=j/i*(n-1)+1:
j/i*n
st11(m)=0;
end
else
form=j/i*(n-1)+1:
j/i*n
st11(m)=1;
end
end
end
%%%%%%%%%%%%%%%%%%%基带信号求反码%%%%%%%%%%%%%%
st21=t;
forn=1:
j;
ifst11(n)>=1;
st21(n)=0;
else
st21(n)=1;
end
end;
PPT_st11=abs(fftshift(fft(st11,j)));
%%%%%%%%%%%%%%%%%%%%%%%%%载波信号%%%%%%%%%%%%%%%%%%%%%%%%%%
s1=cos(2*pi*f1*t)%定义载波信号s1
s2=cos(2*pi*f2*t)%定义载波信号s2
%%%%%%%%%%%%%%%%%%%%%%%%%调制模块%%%%%%%%%%%%%%%%%%%%%%%%%%
F1=st11.*s1;%给基带信号加入载波s1
F2=st21.*s2;%给基带信号的反码加入载波s2
e_fsk=F1+F2;%模拟键控法得到2FSK信号
PPT_e_fsk=abs(fftshift(fft(e_fsk,j)));%2FSK信号频谱图
fsk=e_fsk+cos(2*pi*300*t);%Sinusoidsplusnoise
PPT_fsk=abs(fftshift(fft(fsk,j)));%加入躁声后的2FSK信号频谱图
%%%%%%%%%%%%%%%%%%%%%%%%%相干解调模块%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%-----带通滤波器1
[fsk1]=daitong(f1,fsk,j);
PPT_fsk1=abs(fftshift(fft(fsk1,j)));
%-----加入载波s1
st10=fsk1.*s1;
%-----低通滤波器1
[