基于MATLAB的2FSK系统仿真文档格式.docx
《基于MATLAB的2FSK系统仿真文档格式.docx》由会员分享,可在线阅读,更多相关《基于MATLAB的2FSK系统仿真文档格式.docx(18页珍藏版)》请在冰豆网上搜索。
1.22FSK简介
数字信号的传输方式分为基带传输与带通传输。
然而,实际中的大多数信道因具有带通特性而不能直接传送基带信号。
为了使数字信号在通带系统中传输,必须用数字基带信号对载波进行调制,以使信号与信道的特性相匹配。
这种用数字基带信号控制载波,把数字基带信号变换为数字带通信号的过程称为数字调制。
在接收端,通过解调器把带通信号还原为数字基带信号的过程称为数字解调。
数字调制的基本方式有三种:
振幅键控(ASK)、频移键控(FSK)、相移键控(PSK)。
本文介绍的就是二进制数字频移键控系统(2FSK)。
移频键控(FSK)是数据通信中最常用的一种调制方式。
FSK方法简单,易于实现,并且解调不需要恢复本地载波,可以异步传输,抗噪声和抗衰落性能较强。
缺点是占用频带较宽,频带利用不够经济。
FSK主要应用于低中速数据传输,以及衰落信道和频带较宽的信道中。
1.2.12FSK的产生
2FSK信号的产生方法主要有两种。
一种可以采用模拟调频电路来实现;
另一种可以采用键控法来实现,即在二进制基带矩形脉冲序列的控制下通过开关电路对两个不同的独立频率源进行选通,使其在每一个码元Ts期间输出f1或f2两个载波之一。
两种方法的差异在于:
由调频法产生的2FSK信号在相邻码元之间的相位是连续变化的。
而键控法产生的2FSK信号,是由电子开关在两个独立的频率源之间转换而成,故相邻码元之间的相位不一定连续。
1.2.22FSK相关原理
2FSK信号的常用解调方法是采用如图所示的非相干解调(包络检波)和相干解调。
其解调
图1非相干解调
图2相干解调
原理是将2FSK信号分解为上下两路2ASK信号分别进行解调,然后进行判决。
这里的抽样判决是直接比较两路信号的抽样值的大小,可以不专门设置门限。
判决规则应与调制规则相呼应,调制时若规定“1”符号对应载波频率f1,则接收时上支路的样值较大,应判为“1”;
反之则判为“0”。
除此之外,2FSK信号还有其他解调方法,比如鉴频法、差分检测法、过零检测法等。
过零检测法的原理基于2FSK信号的过零点数随不同频率而异,通过检测过零点数目的多少,从而区分两个不同频率的信号码元。
2FSK在数字通信中应用较为广泛。
国际电信联盟(ITU)建议在数据率低于1200b/s时采用2FSK体制。
2FSK可以采用非相干接收方式,接收时不必利用信号的相位信息,因此特别适合应用于衰落信道/随参信道(如短波无线电信道)的场合,这些信道会引起信号的相位和振幅随机抖动和起伏。
2仿真系统模型的设计
2.1仿真思路
先确定采样频率fs和两个载波频率的值f1,f2,产生2FSK信号,然后进行调制与解调。
1)写出输入已经信号的表达式S(t)。
由于S(t)中有反码的存在,则需要将信号先反转后在从原信号和反转信号中进行抽样。
写出已调信号的表达式S(t)。
2)在2FSK的解调过程中,信号首先通过带通滤波器,设置带通滤波器的参数,后用一维数字滤波函数filter对信号S(t)的数据进行滤波处理。
输出经过带通滤波器后的信号波形。
由于已调信号中有两个不同的载波(ω1,ω2),则经过两个不同频率的带通滤波器后输出两个不同的信号波形H1,H2。
3)经过带通滤波器后的2FSK信号再经过相乘器(cosω1,cosω2),两序列相乘的MATLAB表达式y=x1.*x2→SW=Hn.*Hn,输出得到相乘后的两个不同的2FSK波形h1,h2。
4)经过相乘器输出的波形再通过低通滤波器,设置低通滤波器的参数,用一维数字滤波韩式filter对信号的数据进行新的一轮的滤波处理。
输出经过低通滤波器后的两个波形(sw1,sw2)。
5)将信号sw1和sw2同时经过抽样判决器,分别输出st1,st2。
其抽样判决器输出的波形为最后的输出波形st。
对抽样判决器经定义一个时间变量长度i,当st1(i)>
=st2(i)时,则st=0,否则st=st2(i).其中st=st1+st2。
6)使用MATLAB编程(m文件)完成系统的仿真
2.2程序和仿真结果
程序如下:
fs=2000;
%抽样频率
dt=1/fs;
f1=20;
%载波1频率
f2=50;
%载波2频率
a=round(rand(1,10));
%随机信号
g1=a;
g2=~a;
%信号反转,和g1反向
g11=(ones(1,2000))'
*g1;
%抽样
g1a=g11(:
)'
;
g21=(ones(1,2000))'
*g2;
g2a=g21(:
t=0:
dt:
10-dt;
t1=length(t);
fsk1=g1a.*cos(2*pi*f1.*t);
fsk2=g2a.*cos(2*pi*f2.*t);
fsk=fsk1+fsk2;
%产生的信号
no=0.01*randn(1,t1);
%噪声
sn=fsk+no;
subplot(311);
plot(t,no);
%噪声波形
title('
噪声波形'
)
ylabel('
幅度'
subplot(312);
plot(t,fsk);
产生的波形'
subplot(313);
plot(t,sn);
将要通过滤波器的波形'
幅度的大小'
xlabel('
t'
figure
(2)%FSK解调
b1=fir1(101,[1/80020/800]);
b2=fir1(101,[40/80060/800]);
%设置带通参数
H1=filter(b1,1,sn);
H2=filter(b2,1,sn);
%经过带通滤波器后的信号
subplot(211);
plot(t,H1);
经过带通滤波器f1后的波形'
subplot(212)
plot(t,H2);
经过带通滤波器f2后的波形'
sw1=H1.*H1;
sw2=H2.*H2;
%经过相乘器
figure(3)
plot(t,sw1);
经过相乘器h1后的波形'
subplot(212);
plot(t,sw2);
经过相乘器h2后的波形'
bn=fir1(101,[2/80010/800]);
%经过低通滤波器
figure(4)
st1=filter(bn,1,sw1);
st2=filter(bn,1,sw2);
plot(t,st1);
经过低通滤波器sw1后的波形'
plot(t,st2);
经过低通滤波器sw2后的波形'
)%判决
fori=1:
length(t)
if(st1(i)>
=st2(i))
st1(i)=0;
elsest1(i)=st2(i);
end
end
figure(5)
st=st1+st2;
plot(t,st);
经过抽样判决器后的波形'
原始的波形'
);
仿真图像如下:
图3
图4
图5
图6
图7
2.3simulink仿真模型图
2FSK信号的simulink仿真模型图如下:
图8
其中sinwave和sinwave1是两个频率分别为f1和f2的载波,PulseGenerator模块是信号源,NOT实现反相,再经过相乘器和相加器生成2FSK信号,然后接带通滤波器与低通滤波器完成调制与解调,又接入ErrorRatecalculation实现误码率的计算。
参数设置
载波f1的参数设置:
图9
其中幅度为1,f1=25Hz
f2的参数设置:
图10
载波是幅度为1,f2=45Hz
信号源参数设置:
本来信号源s(t)序列是用随机的01信号产生,在此为了方便仿真就选择了基于采样的PulseGenerator信号模块其参数设置如下:
图11
其中脉冲幅度为1,周期为3,占1比为1/2的基于采样的信号。
两个带通滤波器分别将2FSK信号上下分频f1和f2,各参数设置如下:
图12
图13
两低通滤波器的参数设置如下:
图14
图15
经过以上参数的设置后就可以进行系统的仿真,其各点的时间波形如下:
图16
由仿真系统中的误码率计算可知,此系统的误码率为0。
2.4结果分析
2.4.1Matlab仿真结果分析
本实验对信号2FSK采用相干解调进行解调。
2FSK信号的调制解调原理是通过带通滤波器将2FSK信号分解为上下两路2FSK信号后分别解调,然后进行抽样判决输出信号。
设“1”符号对应载波频率f1,“0”符号对应载波频率f2。
采用两个带通滤波器来区分中心频率分别为f1和f2的信号。
中心频率为f1的带通滤波器之允许中心频率为f1的信号频谱成分通过,滤除中心频率为f2的信号频谱成分。
接收端上下支路两个带通滤波器的输出波形中H1,H2。
在H1,H2波形中在分别含有噪声n1,n2,其分别为高斯白噪声ni经过上下两个带通滤波器的输出噪声——窄带高斯噪声,其均值同为0,方差同为(σn)2,只是中心频率不同而已。
其抽样判决是直接比较两路信号抽样值的大小,可以不专门设置门限。
判决规制应与调制规制相呼应,调制时若规定“1”符号对应载波频率f1,则接收时上支路的抽样较大,应判为“1”,反之则判为“0”。
2.4.2simulink仿真结果分析
本次课程设计实现了2FSK的调制与解调过程。
通过误码率为0的分析,可能是系统自身的原因造成的或者系统没有多大的误差,但根据示波器的波形看出初始的时候有一些失真原因可能是初始信号不稳定造成的。
本实验用一个逻辑比较器替代抽样判决模块,简化了模块。
3心得与体会
课程设计是在课程学习与实验完成之后的又一次关于所学知识的深入探讨。
课程设计要求在掌握了基本的原理与仿真软件的基础上去实现想要达到的目的。
所谓“工欲善其事,必先利其器”,掌握到好的资料素材是对前期的工作很重要的,如图书馆、网上或是向同学借等等都是不错的。
刚接触的软件还是有一些困难,熟练是慢慢培养起来的,如一些元件的调用在simulink中的实现需要慢慢了解,又如滤波器的选择都不是刚接触就能掌握的。
充分的利用好网络资源应该是完成这次课程设计的关键。
对于在matlab中实现编程对于我来说确实是有一些困难的,受限于这样的原因,所以只好从网上找到与其对应的程序,但会通过自己改一改程序的或多或少的错误,参照着做收获的只有实现的波形,如果有能力、充足的时间,完成自己的编程还是有机会的。
在simulink中连接电路时设置的参数一开始是根据网上的参数设置的,后来对各种元件有所了解之后,设置的参数也能根据自己的判断做决定。
电路图是参考书上的原理图并在同学的帮助下完成的。
实验中的讨论总会帮助自己找到一种解决办法,解决当前的问题,所以要经常的请教会的同学。
参考文献
[1]樊昌信、曹丽娜编著,《通信原理》,国防工业出版社
[2]张德丰等编著,《MATLAB数值计算方法》,机械工业出版社
[3]孙屹、吴磊编著,《Simulink通信仿真开发手册》,国防工业出版社