利用matlab实现2FSK调制解调的仿真论文.docx
《利用matlab实现2FSK调制解调的仿真论文.docx》由会员分享,可在线阅读,更多相关《利用matlab实现2FSK调制解调的仿真论文.docx(19页珍藏版)》请在冰点文库上搜索。
利用matlab实现2FSK调制解调的仿真论文
潍坊学院
专业课综合课程设计说明书
——利用matlab实现2FSK调制解调的仿真
系部:
信息控制与工程学院
专业:
电子信息工程
班级:
学生:
学号:
指导教师:
2012年12月01日
1MATLAB软件简介
MATLAB是目前国际上流行的进行科学研究、工程计算的软件。
它起源于矩阵运算,并已经发展成为一种高度集成的计算机语言。
MATLAB具有强大的数学运算能力、方便实用的绘图功能及语言的高度集成性。
除具备卓越的数值计算能力之外,它还提供了专业水平的符号计算、文字处理、可视化建模仿真、实时控制等功能。
在通信领域MATLAB更是优势明显,因为通信领域中很多问题是研究系统性能的,传统的方法只有构建一个实验系统,采用各种方法进行测量,才能得到所需的数据,这样不仅需要花费大量的资金用于实验系统的构建,而且系统构建周期长,系统参数的调整也十分困难。
而MATLAB的出现使得通信系统的仿真能够用计算机模拟实现,免去构建实验系统的不便,而且操作十分简便,只需要输入不同的参数就能得到不同情况下系统的性能,而且在结构的观测和数据的存储方面也比传统的方式有很多优势。
因而MATLAB在通信仿真领域得到越来越多的应用。
2理论分析
2.12FSK信号的产生
2FSK是利用数字基带信号控制在波的频率来传送信息。
例如,1码用频率f1来传输,0码用频率f2来传输,而其振幅和初始相位不变。
故其表示式为
式中,假设码元的初始相位分别为
和
;
和
为两个不同的码元的角频率;幅度为A为一常数,表示码元的包络为矩形脉冲。
2FSK信号的产生方法有两种:
模拟法,即用数字基带信号作为调制信号进行调频。
键控法,用数字基带信号
及其反
相分别控制两个开关门电路,以此对两个载波发生器进行选通。
这两种方法产生的2FSK信号的波形基本相同,只有一点差异,即由调频器产生的2FSK信号在相邻码元之间的相位是连续的,而键控法产生的2FSK信号,则分别有两个独立的频率源产生两个不同频率的信号,故相邻码元的相位不一定是连续的。
2.22FSK信号的解调方式
非相干解调
经过调制后的2FSK数字信号通过两个频率不同的带通滤波器f1、f2滤出不需要的信号,然后再将这两种经过滤波的信号分别通过包络检波器检波,最后将两种信号同时输入到抽样判决器同时外加抽样脉冲,最后解调出来的信号就是调制前的输入信号。
其原理图如下图所示:
相干解调
根据已调信号由两个载波f1、f2调制而成,则先用两个分别对f1、f2带通的滤波器对已调信号进行滤波,然后再分别将滤波后的信号与相应的载波f1、f2相乘进行相干解调,再分别低通滤波、用抽样信号进行抽样判决器即可。
原理图如下:
3Matlab实现程序
3.1生成2FSK的程序
源程序代码:
clearall
closeall
i=10;%基带信元数
j=5000;
a=round(rand(1,i));%产生随机序列
t=linspace(0,5,j);
f1=10;%载波1频率
f2=5;%载波2频率
fm=i/5;%基带信号频率
B1=2*f1;%载波1带宽
B2=2*f2;%载波2带宽
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%产生基带信号
st1=t;
forn=1:
10
ifa(n)<1;
form=j/i*(n-1)+1:
j/i*n
st1(m)=0;
end
else
form=j/i*(n-1)+1:
j/i*n
st1(m)=1;
end
end
end
st2=t;
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%基带信号求反
forn=1:
j;
ifst1(n)>=1;
st2(n)=0;
else
st2(n)=1;
end
end;
figure
(1);
subplot(411);
plot(t,st1);
title('基带信号');
axis([0,5,-1,2]);
subplot(412);
plot(t,st2);
title('基带信号反码');
axis([0,5,-1,2]);
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%载波信号
s1=cos(2*pi*f1*t);
s2=cos(2*pi*f2*t);
subplot(413)
plot(s1);
title('载波信号1');
subplot(414),
plot(s2);
title('载波信号2');
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%调制
F1=st1.*s1;%加入载波1
F2=st2.*s2;%加入载波2
figure
(2);
subplot(311);
plot(t,F1);
title('s1*st1');
subplot(312);
plot(t,F2);
title('s2*st2');
e_fsk=F1+F2;
subplot(313);
plot(t,e_fsk);
title('2FSK信号')
3.22FSK调制解调系统进行设计和仿真源程序
Fc=10;%载频
Fs=35;%系统采样频率
Fd=1;%码速率
N=Fs/Fd;
df=10;
numSymb=25;%进行仿真的信息代码个数
M=2;%进制数
SNRpBit=60;%信噪比
SNR=SNRpBit/log2(M);%60
seed=[1234554321];
numPlot=15;
x=randsrc(numSymb,1,[0:
M-1]);%产生25个二进制随机码
figure
(1)
stem([0:
numPlot-1],x(1:
numPlot),'bx');%显15个码元,杆图,从x的前十五个随机数中选取
title('二进制随机序列')
xlabel('Time');
ylabel('Amplitude');
%调制
y=dmod(x,Fc,Fd,Fs,'fsk',M,df);%数字带通调制
numModPlot=numPlot*Fs;%15*40
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));%生成-2到+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);
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');
%非相干解调
figure(6)
z2=ddemod(y,Fc,Fd,Fs,'fsk/eye/noncoh',M,df);
title('非相干解调后的信号的眼图')
%带输出波形的非相干M元频移键控解调
figure(7)
stem([0:
numPlot-1],x(1:
numPlot),'bx');
holdon;
stem([0:
numPlot-1],z2(1:
numPlot),'ro');
holdoff;
axis([0numPlot-0.51.5]);
title('非相干解调后的信号')
legend('原输入二进制随机序列','非相干解调后的信号')
xlabel('Time');
ylabel('Amplitude');
%误码率统计
[errorSymratioSym]=symerr(x,z1);
figure(8)
simbasebandex([0:
1:
5]);
title('相干解调后误码率统计')
[errorSymratioSym]=symerr(x,z2);
figure(9)
simbasebandex([0:
1:
5]);
title('非相干解调后误码率统计')
%滤除高斯白噪声
Delay=3;R=0.5;PropD=0;%滞后3s
[yf,tf]=rcosine(Fd,Fs,'fir',R,Delay);%升余弦函数
[yo2,to2]=rcosflt(y,Fd,Fs,'filter',yf);
%加入高斯白噪声后的已调信号和经过升余弦滤波器后的已调信号
t=[0:
numModPlot-1]./Fs;
figure(10)
plot(t,y(1:
length(t)),'r-');
holdon;
plot(to2,yo2,'b-');%滤出带外噪声
holdoff;
axis([030-1.51.5]);
xlabel('Time');
ylabel('Amplitude');
legend('加入高斯白噪声后的已调信号','经过升余弦滤波器后的已调信号')
title('升余弦滤波前后波形比较')
eyediagram(yo2,N);%眼图
title('加入高斯白噪声后的已调信号的眼图')
4仿真结果
5心得体会
两周的课程设计在忙忙碌碌中一晃而过。
经历了一次次的困惑,却积累了一定的知识。
在整个课程设计中的过程中遇到的问题主要有以下三点:
第一,基础知识的不牢固,主要表现在一些常用的电路的形式和功能不清楚,对书本上的容理解不够透彻;第二,对一些常用的应用软件缺少应用,体现在华电路图和系统仿真的时候,对这些软件操作的不熟练,浪费了很多时间。
第三,相关知识掌握不够全面,缺少系统设计额仿真的经验。
这次课程设计进一步端正了我的学习态度,学会了实事求是,严谨的作风,提高了动手能力。
对自己要严格要求,不能够一知半解要力求明明白白。
急于求成是不好的,不仅会浪费时间还会适得其反。
在我看来,懂得少并不可怕,可怕的是不向别人虚心学习。
没有人生下就知道什么,也没有人生下来就很聪明。
即使是天才,也要通过后天的努力,才获得成功的。
我觉得动手之前,头脑里必须清楚怎么做,通过我的不懈努力,在这方面我总会得到提高,这一点我坚信。
因为别人能做到的,我也一定能做到。
在此次的课程设计中我最大的体会就是进一步认识到了理论联系实践的重要性。
一份耕耘一分收获。
通过一个星期的实习,让我明白科学的思维方法和学习方法是多么重要,只有这样才能够让自己工作更完美。
总而言之,在此次课程设计让我学到了好多平时在课堂上学不到得东西,增加了我的知识运用能力,为我走向社会奠定了一个号的基础。
通过对matlab这个软件的学习,使我对通信原理又有了进一步的认识。
在以往的学习中我多是注重理论知识没注重实践,这次实践使我对课本知识有了新的理解。
6参考文献
[1]保锁付晓梅侯永宏编著、现代通信原理试验、天津大学电信学院通信试验室
[2]曹志刚,钱亚生.现代通信原理.北京:
清华大学,1992:
254-256.
[3]晁冰,东生,雍爱霞.最小频移键控系统实现技术的仿真研究[J].现代电子技术,2002,(12):
88-89.
[4]东生,雍爱霞,左洪浩.SystemView系统设计及仿真入门与应用[M].北京:
电子工业,2002:
120-156.
[5]青松,程岱松,武建华.数字通信系统的SystemView仿真与分析[M].北京:
电子工业,2001:
53-135.
[6]东升.信号与电子系统原理及EDA仿真[M].北京:
中国科技大学,2000.6