课 程 设 计 报 告
课程名称: 通信系统课程设计 设计名称: 2FSK调制解调仿真实现 姓 名: 学 号: 班 级: 指导教师: 起止日期:
课 程 设 计 任 务 书
学生班级:
学生姓名: 学号:
设计名称: 2FSK调制解调仿真实现 起止日期: 指导教师:
要求: MATLAB编程实现2FSK的调制解调。要求仿真输出:基带信号、2FSK信号和叠加噪声后的2FSK信号波形、解调器各点的信号波形
课 程 设 计 学 生 日 志
时间 6.17—6.18 6.19—6.20 6.21—6.22 6.23 6.25 设计内容 查看设计题目,对现代通信原理和数字信号处理的相关内容进行复习 在已有知识的基础上、查阅资料,设计出总体实现方案 编写、调试程序,并结合理论验证程序的正确性 基于理论知识和实践结果写课程设计报告 答辩 课 程 设 计 考 勤 表
周
星期一 星期二 星期三 星期四 星期五 课 程 设 计 评 语 表
指导教师评语: 成绩: 指导教师: 年 月 日 2FSK的调制解调仿真实现
一、 设计目的和意义
1、 2、 3、
熟练地掌握matlab在数字通信工程方面的应用。 了解信号处理系统的设计方法和步骤。
理解2FSK调制解调的具体实现方法,加深对理论的理解,并实现2FSK的调制解调,画出各个阶段的波形。 4、 5、
学习信号调制与解调的相关知识。
通过编程、调试掌握matlab软件的一些应用,掌握2FSK调制解调的方法,激发学习和研究的兴趣;
二、 设计原理
1.2FSK介绍:
数字频率调制又称频移键控(FSK),二进制频移键控记作2FSK。数字频移键控是用载波的频率来传送数字消息,即用所传送的数字消息控制载波的频率。2FSK信号便是符号“1”对应于载频f1,而符号“0”对应于载频f2(与f1不同的另一载频)的已调波形,而且f1与f2之间的改变是瞬间完成的。
其表达式为:
e2FSK(t){Acos(1tn)Acos(2tn)
典型波形如下图所示。由图可见,2FSK信号可以看作两个不同载频的ASK信号的叠加。因此2FSK信号的时域表达式又可以写成:
s2FSK(t)[ang(tnTs)]cos(1tn)[ang(tnTs)]cos(2tn)nn_
z
ak s1(t)1011001t s2(t) tcos(w1t+θn)tcos(w2t+φn) ts1(t) cos(w1t+θn)t s2(t) cos(w2t+φn)t2FSK信号t
图1 原理框图
2.2FSK调制原理
2FSK调制就是使用两个不同的频率的载波信号来传输一个二进制信息序列。可以用二进制“1”来对应于载频f1,而“0”用来对应于另一相载频w2的已调波形,而这个可以用受矩形脉冲序列控制的开关电路对两个不同的独立的频率源w1、f2进行选择通。本次课程设计采用的是前面一种方法。如下原理图:
图2 调制原理框图
3.2FSK解调原理
2FSK的解调方式有两种:相干解调方式和非相干解调方式,本次课程设计采用的是相干解调方式。根据已调信号由两个载波f1、f2调制而成,相干解调先用两个分别对f1、f2带通的滤波器对已调信号进行滤波,然后再分别将滤波后的信号与相应的载波f1、f2相乘进行相干解调,再分别低通滤波、用抽样信号进行抽样判决器即可其原理如下:
图3 相干解调原理框图
三、 详细设计步骤
1.信号产生:二进制随机序列和两列频率不等的载波
1)利用matlab 库函数产生10个二进制随机数,也就是我们的基波调制信号a。并画出其波形。
2)产生两列余弦波tuf1和tuf2,频率分别为f1=20hz,f2=100hz;并画出其波形。
2.信号调制:产生2FSK信号和加入高斯噪声后的2FSK信号
1)用二进制序列a去调制f1和f2,产生2fsk信号,具体做法是用以a生成的方波信号g1a直接与tuf1相乘,用a取反后的方波g2a与tuf2相乘,再将两列信号相加。并画出其波形。
2)调用matlab 库函数产生高斯噪声no,并与2fsk信号相加得到加入噪声后的sn信号。并画出其波形。
3.解调
1)对于两列让sn通过两个带通滤波器H1和H2,他们分别以f1和f2为中心频率,并画出经过带通滤波器后的波形。
2)对这两列波形分别相干解调乘以与他们同频同相的余弦波tuf1和tff2,画出此时的波形。
3)让这两列波形再通过低通滤波器sw1和sw2得到这两列基带调制波形g1a和g2a.画出其波形。
4)最后将两列波g1a和g2a通过抽样判决器,画出其波形st,并与之前调制后的波形sn做对比。
四、 设计结果及分析
1.信号产生 波形figure(1)
图4 figure(1)
figure(1)分析:第一幅图现实了此时产生的二进制序列是1011011011,第二和第三幅图片是频率为20hz的载波tuf1和频率为100hz的载波tuf2的波形。
2.信号调制
波形figure(2)
图5 figure(2)
figure(2)分析
由于产生的随即序列是1011011011,对比上面figure2可以看出,波形较疏的是tuf1,波形较密的是tuf2,上图呈现的序列是:1011011011,与调制波相符。 3. 信号解调
1)波形figure(3)
图6 figure(3)
figure(3)分析:经过带通滤波器之后滤出了频率为f1和f2的载波,从figure(2)和figure(3)的对比可以看出这一步做对了。
2)波形figure(4)
图7 figure(4)
figure(4)分析:这是两列信号经过相干解调乘以同频同相的载波之后得到的波形,可以看出figure(4)比figure(3)的波形更密了。
3)波形figure(5)
图8 figure(5)
figure(5)分析:经过低通滤波器之后,调制信号被滤出来了,第一幅为tuf1,滤波后的序列为:1011011011,与之前的调制信号相同。第二幅图为:0100100100,与调制信号相反,这是因为在程序中队调制信号取反之后才和tuf2相乘的。
4)波形figure(6)
图9 figure(6)
figure(6)分析:经过抽样判决之后,恢复出来的基带信号是:1011011011,与调制信号一样,从原始波形也可以看出,解调后的波形与调制信号相同。2FSK
调制解调实现。
4. 课程设计程序: fs=2000; %抽样频率 dt=1/fs;
f1=20; %定义两列载波的频率 f2=100;
a=round(rand(1,10)); %产生二进制随机序列 g1=a; g2=~a;
g11=(ones(1,2000))'*g1; %产生方波信号 g1a=g11(:)';
g21=(ones(1,2000))'*g2; g2a=g21(:)'; t=0:dt:10-dt; t1=length(t); tuf1=cos(2*pi*f1.*t) tuf2=cos(2*pi*f2.*t)
subplot(311) n=0:9;
x=square(1,50); stem([0:9],a*x); grid;
xlabel('二进制随机序列') ylabel('幅度')
subplot(312); plot(t,tuf1);
title('频率为f1的余弦波') ylabel('幅度')
subplot(313); plot(t,tuf2);
title('频率为f2的余弦波') ylabel('幅度')
figure(2) fsk1=g1a.*tuf1; fsk2=g2a.*tuf2; fsk=fsk1+fsk2;
no=0.01*randn(1,t1);%噪声 sn=fsk+no; subplot(211); plot(t,fsk); title('2fsk波形') ylabel('幅度')
subplot(212); plot(t,sn);
title('加入高斯噪声后的2fsk波形') ylabel('幅度的大小') xlabel('t')
figure(3) %FSK解调
b1=fir1(101,[10/800 20/800]);
b2=fir1(101,[90/800 110/800]); %设置带宽参数
H1=filter(b1,1,sn); %b1为分子,1为分母,sn为滤波器输入序列 H2=filter(b2,1,sn); %噪声信号同时通过两个滤波器 subplot(211);
plot(t,H1);
title('经过带通滤波器H1后的波形') %画出经过H1滤波器后的波形 ylabel('幅度'); subplot(212);
plot(t,H2); %画出经过滤波器二后的波形 title('经过带通滤波器H2后的波形')
ylabel('幅度') xlabel('t')
sw1=H1.*H1; %相干解调乘以同频同相的载波 sw2=H2.*H2;%经过相乘器
figure(4) subplot(211); plot(t,sw1);
title('经过相乘器h1后的波形') %画出乘以同频同相载波后的波形 ylabel('幅度') subplot(212); plot(t,sw2);
title('经过相乘器h2后的波形') ylabel('.幅度') xlabel('t')
bn=fir1(101,[2/800 10/800]); %经过低通滤波器
figure(5)
st1=filter(bn,1,sw1); st2=filter(bn,1,sw2); subplot(211);
plot(t,st1);
title('经过低通滤波器sw1后的波形') %经过低通滤波器,滤出频率 ylabel('幅度') %为f1,f2的基带调制信号波形 subplot(212); plot(t,st2);
title('经过低通滤波器sw2后的波形') ylabel('幅度') xlabel('t') %判决
for i=1:length(t) if(st1(i)>=st2(i)) st(i)=0;
else st(i)=st2(i); end end
figure(6) st=st1+st2; subplot(211); plot(t,st);
title('经过抽样判决器后的波形') %画出经过抽样判决的波形 ylabel('幅度') subplot(212); plot(t,sn);
title('原始的波形') ylabel('幅度') xlabel('t')
五、 体会
通过这次课程设计,自己收获了很多新的知识;首先让自己结识了matlab这个软件。它不仅能做数学上的计算、画图,还内置了很多强大的
算法和一些集成的工具,如:FFT,fir,hamming等等。而我们在使用matlab时只需要调用简单的函数命令就可以实现很多功能,用matlab可以大大简化很多运算,同时我们可以将书上的理论知识用matlab去仿真和实现。如果让自己去实现这些功能,就很难想象了。
同时,这次课程设计让我对很多理论知识有了更深的了解,如:怎么用基带信号去调制载波,怎么将书上的理论图变成程序,设计出系统等等。在做这次课程设计的时候,为花了很多时间去查阅matlab的相关知识,他的指令集,他的函数库等等,以后做其他东西的时候也可以用matlab来做。
六、 参考文献
[1] 程佩青. 数字信号处理教程. 清华大学出版社. 2008.5 [2] 曹志刚. 现代通信原理. 清华大学出版社.
2006.10 2005.4
[3] 刘树棠. 信号与系统. 西安交通大学出版社.
[4] 刘卫国. MATLAB程序设计教程. 中国水利水电出版社. 2008.6 [5] 楼顺天. 基于MATLAB的系统分析与设计.西安电子科技大学出版.
2001.9
[6] 梁虹、梁洁、陈跃斌.信号与系统分析及MATLAB实现.电子工业出版.
2002.2
因篇幅问题不能全部显示,请点此查看更多更全内容