模拟FM调制解调matlab仿真

       FM的调制解调相对AM复杂一些,网上也更多的是介绍AM解调,FM解调相对少很多,而且也很少FM的解调代码,但是在网上找到一个可以用,做了一点修改发现效果还不错,记录下来

调制信号生成:

clear;
clf;
close all
Fs=800e3;
fz=80e3;
fj=1e3;
i=4096;
A=1;
Kf=0.2;             
t=(1:i)/Fs;         
tf=(1:i-1)/Fs;      
f=((1:i)-1)*Fs/i;   
tz=1;               

Mod_Sig_c=A*cos(2*pi*fj*t);
%画图基带信号
subplot(311);plot(t,Mod_Sig_c);title('基带信号');xlabel('时间(S)');ylabel('幅度(V)');grid on;legend('基带');

Carrier_c=cos(2*pi*fz/Fs*(1:i));%载波cos
%画载波
subplot(312);plot(t(1:300),Carrier_c(1:300));title('载波信号');xlabel('时间(S)');ylabel('幅度(V)');grid on;legend('载波');

int_m(1)=0;      %对m_fun积分
for p=1:length(1:i)-1
    int_m(p+1)=int_m(p)+Mod_Sig_c(p)*tz;
end

SFm_c=A*cos(2*pi*fz/Fs*(1:i)+int_m*Kf);
SFm   =   SFm_c;
% SFm=awgn(SFm_c,0.00000022);
%画调制信号
subplot(313);plot(t,SFm);title('调制信号');xlabel('时间(S)');ylabel('幅度(V)');grid on;legend('调制信号');
ff_SFm=fft(SFm);
ff_SFm_abs=abs(ff_SFm);
ff_SFm_range=ff_SFm_abs/(i/2);   
ff_SFm_range(1)=ff_SFm_abs(1)/i;
figure;plot(f(1:i/2),ff_SFm_range(1:i/2));title('FM的频谱');xlabel('频率(Hz)');ylabel('幅度(V)');grid on;legend('FM的频谱');

基带信号和调制信号的波形如下所示:

频谱如下所示:

解调采用的方法:

先对调制信号进行正交变换,然后对IQ经过低通滤波器。

低通滤波器设置如下所示:

最后对滤波后的IQ如下处理:

                            

解调结果如下所示:

完整的调制解调代码下面链接:

https://download.csdn.net/download/weixin_39813867/12871409

  • 6
    点赞
  • 103
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

电子厂的吕小春

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值