900字范文,内容丰富有趣,生活中的好帮手!
900字范文 > 【数字信号调制】基于matlab二进制数字频率调制(2FSK)【含Matlab源码 998期】

【数字信号调制】基于matlab二进制数字频率调制(2FSK)【含Matlab源码 998期】

时间:2023-02-25 19:27:31

相关推荐

【数字信号调制】基于matlab二进制数字频率调制(2FSK)【含Matlab源码 998期】

一、获取代码方式

获取代码方式1:

完整代码已上传我的资源:【数字信号调制】基于matlab二进制数字频率调制(2FSK)【含Matlab源码 998期】

获取代码方式2:

通过订阅紫极神光博客付费专栏,凭支付凭证,私信博主,可获得此代码。

备注:

订阅紫极神光博客付费专栏,可免费获得1份代码(有效期为订阅日起,三天内有效);

二、FSK简介

** FSK信号的解调原理**

FSK信号的解调也有非相干和相干两种,FSK信号可以看作是用两个频率源交替传输得到的,所以FSK的接收机由两个并联的ASK接收机组成。

(1)相干解调

相干解调是利用乘法器,输入一路与载频相干的参考信号与载频相乘,通过低通滤波,滤除高频信号,即得原始信号,FSK经过带通滤波之后,可以看作是两路ASK信号,相干检测器组成的原理如下所示:

三、部分源代码

clear allclose alli=10;%基带信号码元数j=5000;a=round(rand(1,i));%产生随机序列t=linspace(0,5,j);f1=10;%载波1频率f2=5;%载波2频率fm=i/5;%基带信号频率%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%产生基带信号st1=t;for n=1:10if a(n)<1;for m=j/i*(n-1)+1:j/i*nst1(m)=0;endelsefor m=j/i*(n-1)+1:j/i*nst1(m)=1;endendendst2=t;%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%基带信号求反for n=1:j;if st1(n)>=1;st2(n)=0;elsest2(n)=1;endend;figure(1);subplot(511);plot(t,st1);title('基带信号');axis([0,5,-1,2]);%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%载波信号s1=cos(2*pi*f1*t)s2=cos(2*pi*f2*t)subplot(512),plot(s1);title('载波信号1');subplot(513),plot(s2);title('载波信号2');%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%调制F1=st1.*s1;%加入载波1F2=st2.*s2;%加入载波2fsk=F1+F2;subplot(514);plot(t,fsk);title('2FSK信号')%键控法产生的信号在相邻码元之间相位不一定连续%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%相干解调st1=fsk.*s1;%与载波1相乘[f,sf1] = T2F(t,st1);%通过低通滤波器[t,st1] = lpf(f,sf1,2*fm);st2=fsk.*s2;%与载波2相乘[f,sf2] = T2F(t,st2);%通过低通滤波器[t,st2] = lpf(f,sf2,2*fm);%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%抽样判决%脚本文件F2T.m定义了函数F2T,计算信号的反傅立叶变换。function [t,st]=F2T(f,sf)%This function calculate the time signal using ifft function for the input%signal's spectrumdf = f(2)-f(1);Fmx = ( f(end)-f(1) +df);dt = 1/Fmx;N = length(sf);T = dt*N;%t=-T/2:dt:T/2-dt;t = 0:dt:T-dt;sff = fftshift(sf);st = Fmx*ifft(sff);function [t,st]=lpf(f,sf,B)%This function filter an input data using a lowpass filter%Inputs: f: frequency samples% sf: input data spectrum samples% B: lowpass's bandwidth with a rectangle lowpass%Outputs: t: time samples% st: output data's time samplesdf = f(2)-f(1);T = 1/df;hf = zeros(1,length(f));%全零矩阵bf = [-floor( B/df ): floor( B/df )] + floor( length(f)/2 );hf(bf)=1;yf=hf.*sf;[t,st]=F2T(f,yf);st = real(st);

四、运行结果

五、matlab版本及参考文献

1 matlab版本

a

2 参考文献

[1] 沈再阳.精通MATLAB信号处理[M].清华大学出版社,.

[2]高宝建,彭进业,王琳,潘建寿.信号与系统——使用MATLAB分析与实现[M].清华大学出版社,.

[3]王文光,魏少明,任欣.信号处理与系统分析的MATLAB实现[M].电子工业出版社,.

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。