通信原理与MATLAB(五):FM的调制解调

这篇具有很好参考价值的文章主要介绍了通信原理与MATLAB(五):FM的调制解调。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1.FM的调制原理

FM是频率调制,是用基带信号控制载波的频率,其实现原理如下图所示,基带信号经过积分器,然后和载波信号一起输入给调相器,基带信号控制载波的频率,实现FM的调制。
通信原理与MATLAB(五):FM的调制解调

2.FM的解调原理

FM的解调原理如下图所示,FM信号经过信道传输之后,通过鉴频器变成调幅调频波,然后经过移相器,包络检波器得到包络,去除偏置恢复出原始信号。
通信原理与MATLAB(五):FM的调制解调

3.FM调制解调的代码

FM.m,FM主文件

% FM调制解调过程
%% 基本参数
clear all;                  % 清除变量
close all;                  % 关闭所有窗口图像
fm = 100;                   % 基带信号频率
T = 2;                      % 信号时长
fs = 20000;                 % 采样频率 奈奎斯特采样定理为最大频率的两倍,这里取20倍为了绘制更多的细节,让时域信号更平滑
dt=1/fs;                    % 时间采样间隔,采样频率的倒数
N=T/dt;                     % 采样点个数,总时长除以采样间隔
t=[0:N-1]*dt;               % 采样点的时间序列,作为横坐标

%% ******************调制信号时域波形******************
Am=1;                       % 基带信号幅度 
mt=Am*cos(2*pi*fm*t);       % 基带信号
figure(1);                  % 绘制第一幅图
subplot(221);               % 窗口分割,将一幅图分割成2*2plot(t,mt,'Linewidth',2);   % 时间t为横坐标,基带信号mt为纵坐标绘图,线宽为2
xlabel('t/时间');           % 横坐标标注
ylabel('幅度');             % 纵坐标标注
title('基带信号');          % 图标题标注
axis([0,0.1,-1.1,1.1]);     % 横纵坐标范围设置
line([0,0.1],[0,0],'color','b','Linewidth',2);% 绘制一条从(0,0)(0.1,0)的蓝色实线,线宽为2

%% ******************调制信号频域波形******************
subplot(222);
[mf,msf]=T2F(t,mt);         % 傅里叶变换,得到纵坐标频谱和横坐标频率
plot(mf,abs(msf),'Linewidth',2);    % 画出基带信号频谱,线宽为2
title('基带信号的频谱');            % 图标题标注
xlabel('f/Hz');                     % 横坐标标注
ylabel('幅度/H(f)');                % 纵坐标标注
axis([-150 150 -inf inf]);          % 横纵坐标范围设置

%% ******************载波信号时域波形******************
subplot(223);
fc=1000;                            % 载波频率
A=1;                                % 载波幅度
zaibo=A*cos(2*pi*fc*t);             % 载波时域信号
plot(t,zaibo,'r','Linewidth',2);    % 时间t为横坐标,载波信号zaibo为纵坐标绘图,线宽为2,红色
xlabel('t/时间');                   % 横坐标标注
ylabel('幅度');                     % 纵坐标标注
title('载波信号');                  % 图标题标注
axis([0,0.01,-1.1,1.1]);            % 横纵坐标范围设置
line([0,0.01],[0,0],'color','b','Linewidth',2);% 绘制一条从(0,0)(0.01,0)的蓝色实线,线宽为2

%% ******************载波信号频域波形******************
subplot(224);
[mf1,msf1]=T2F(t,zaibo);            % 傅里叶变换,得到纵坐标频谱和横坐标频率
plot(mf1,abs(msf1),'r','Linewidth',2);  % 载波信号频谱,线宽为2,红色
title('载波信号的频谱');            % 图标题标注
xlabel('f/Hz');                     % 横坐标标注
ylabel('幅度/H(f)');                % 纵坐标标注
axis([-1200 1200 -inf inf]);        % 横纵坐标范围设置

%% ******************FM波信号时域波形******************
Kf=4000;%调频系数
SFM=A*cos(2*pi*fc*t+Kf*Am/2/pi/fm.*sin(2*pi*fm*t));
%% 加噪声
% SNR=20;                            %信噪比为  dB
% SFM=awgn(SFM,SNR,'measured');
figure(2);                          % 绘制第二幅图
subplot(211);                       % 窗口分割,将一幅图分割成2*1plot(t,SFM,'Linewidth',2);          % 画出FM信号波形,线宽为2
title('FM调制信号');                % 图标题标注
xlabel('t/时间');                   % 横坐标标注
ylabel('幅度');                     % 纵坐标标注
axis([0,0.02,-2,2]);                % 横纵坐标范围设置
line([0,0.02],[0,0],'color','b','Linewidth',2);% 绘制一条从(0,0)(0.02,0)的蓝色实线,线宽为2

%% ******************FM波信号频域波形******************
[mf2,msf2]=T2F(t,SFM);              % 傅里叶变换,得到纵坐标频谱和横坐标频率
subplot(212);
plot(mf2,abs(msf2),'Linewidth',1);  % 画出AM信号频谱
title('FM波信号的频谱');            % 图标题标注
xlabel('f/Hz');                     % 横坐标标注
ylabel('幅度/H(f)');                % 纵坐标标注
axis([-2500 2500 -inf inf]);        % 横纵坐标范围设置

%% ******************非相干解调******************
%% ******************调频信号经过微分器,移相器,包络检波器******************
for i=1:N-1
    diff_SFM(i)=(SFM(i+1)-SFM(i))/dt; % 微分器,将调频波变换成调幅调频波
end
diff_SFM=abs(hilbert(diff_SFM));      % 希尔伯特变换移相,然后包络检波
figure(3);
subplot(211);
plot([1:N-1]*dt,diff_SFM,'Linewidth',2)% 绘制包络检波后的波形
title('经过包络检波所得信号波形');
xlabel('t/时间');                   % 横坐标标注
ylabel('幅度');                     % 纵坐标标注
axis([0,0.1,1000,11000]);           % 横纵坐标范围设置
line([0,0.1],[0,0],'color','b','Linewidth',2);% 绘制一条从(0,0)(0.1,0)的蓝色实线,线宽为2
%% ******************包络检波后去除偏置******************
diff_SFM=(diff_SFM/A-2*pi*fc)/Kf;   % 除去偏置
subplot(212);
plot([1:N-1]*dt,diff_SFM,'Linewidth',2)% 绘制最终解调的波形
hold on;                            % 保留之前的图不进行刷新
plot(t,mt,'r-','Linewidth',2);      % 画出原信号
title('经过非相干解调所得的信号波形');
xlabel('t/时间');                   % 横坐标标注
ylabel('幅度');                     % 纵坐标标注
axis([0 0.1 -1.1 1.1]);             % 横纵坐标范围设置
line([0,0.1],[0,0],'color','b','Linewidth',2);% 绘制一条从(0,0)(0.1,0)的蓝色实线,线宽为2

T2F.m文件,FFT功能

function [f,sf]= T2F(t,st)      % FFT
% dt = t(2)-t(1);
T=t(end);                       % 输入信号的时间最大值为T
df = 1/T;                       % dt=1/fs; 时间采样间隔,采样频率的倒数;
                                % N=T/dt;  采样点个数,总时长除以采样间隔
                                % 两式联合推导 df = 1/T 
N = length(st);                 % 输入信号时间的长度为采样点数
f=-N/2*df : df : N/2 * df-df;   % 频率分布
sf = fft(st);                   % 做FFT
sf = T/N * fftshift(sf);        % 最后输出,将0-fs频谱搬移到-fs/2-fs/2频谱

F2T.m文件,IFFT功能

function[t,st]=F2T(f,Sf)        % IFFT
df=f(2)-f(1);                   % 频率间隔
fmax=(f(end)-f(1)+df);          % 最大频率减最低频率加上频率间隔为带宽
dt=1/fmax;                      % 采样间隔
N=length(f);                    % 采样点数
t=[0:N-1] * dt;                 % 时间分布
Sf=fftshift(Sf);                %0-fs频谱搬移到-fs/2-fs/2频谱
st=fmax * ifft(Sf);             % 做IFFT
st=real(st);                    % 取实部

注意:这三个文件要放在同一文件夹中,第一个是主文件,另外三个是函数文件

4.FM调制解调结果图

为了效果展示,图中FM信号是没有加高斯白噪声的。
如果想加噪声,把下面这行代码解除注释即可。

% SFM=awgn(SFM,SNR,'measured');

通信原理与MATLAB(五):FM的调制解调
通信原理与MATLAB(五):FM的调制解调
通信原理与MATLAB(五):FM的调制解调

5.优缺点

优点:抗噪声能力强;
缺点:有效传输带宽大,占用频带资源。
牺牲通信系统的有效性来提高可靠性。文章来源地址https://www.toymoban.com/news/detail-482171.html

到了这里,关于通信原理与MATLAB(五):FM的调制解调的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 通信原理与MATLAB(十):QPSK的调制解调

    QPSK调制原理如下图所示,QPSK相当于两个正交的BPSK相加而成。其调制原理是将基带码元分成I、Q两路,I路是原始基带码元的奇数位置码元,Q路是原始基带码元的偶数位置码元,然后两条支路分别和对应的载波相乘实现BPSK的调制,然后将两条支路相加实现QPSK的调制。 QPSK的解

    2024年02月06日
    浏览(51)
  • 通信原理与MATLAB(七):2FSK的调制解调

    2FSK调制原理如下图所示,基带码元d(t)中码元为1时,波形为频率为f1的高频载波;基带码元d(t)中码元为0时,波形为频率为f2的高频载波实现2FSK信号的调制,即基带码元和f1的高频正弦波相乘生成2ASK,基带码元的反码和f2的高频正弦波相乘生成第二个2ASK,两个2ASK相加得到2FSK。

    2024年02月09日
    浏览(34)
  • 通信原理与MATLAB(六):2ASK的调制解调

    2ASK调制原理如下图所示,基带码元d(t)和高频载波相乘实现2ASK信号的调制。 波形图如下图所示 2ASK的解调原理如下图所示,2ASK信号经过信道传输之后,再和载波相乘,然后经过低通滤波后抽样判决恢复出原始基带码元信号。 结果图中2ASK信号是经过信道,加了高斯白噪声的。

    2024年02月10日
    浏览(39)
  • 通信原理与MATLAB(八):2PSK的调制解调

    2PSK调制原理如下图所示,和2ASK调制原理相似,只不过基带码元是双极性不归零码,基带码元d(t)和高频载波相乘实现2PSK信号的调制。 波形图如下图所示 2PSK的解调原理如下图所示,2PSK信号经过信道传输之后,再和载波相乘,然后经过低通滤波后抽样判决恢复出原始基带码元

    2024年02月07日
    浏览(37)
  • 【调制解调】FM 调频

    学习数字信号处理算法时整理的学习笔记。同系列文章目录可见 《DSP 学习之路》目录,代码已上传到 Github - ModulationAndDemodulation。本篇介绍 FM 调频信号的调制与解调,内附全套 MATLAB 代码。 目录 说明 1. FM 调制算法 1.1 FM 信号描述 1.2 FM 信号的带宽与功率分配 1.3 FM 信号的调制

    2024年02月16日
    浏览(35)
  • FM调制解调---FPGA

            实验通过编写一个DMA读模块获取FM调制的数据源,DMA模块的实现是基于AXI协议。因为在数据的传输中,Xilinx提供的官方DMA IP核在传输完一次突发数据后需要在PS 端重新启动一次都或者写操作,如此的话,在进行大量数据的传输工作时,尤其是对DDR 不同地址区域同时进

    2024年02月11日
    浏览(41)
  • 基于 VIVADO 的 FM 调制解调(上)设计篇

            本文先简要介绍了频率调制(frequency modulation,FM,简称调频)的原理,然后对其进行方案设计,最后基于 VIVADO 2018.3 使用 Verilog 进行实现。         角度调制(angle modulation)是已调波的总相角  随着基带信号  作某种变化的调制方式,它包括频率调制和相位调制。

    2023年04月09日
    浏览(36)
  • Gnuradio 和 USRP 实现FM的调制与解调

    1. 硬件设备:HM B200mini; 天线 2. 软件环境: ubuntu 20.04; gnuradio 3.8; uhd 4.0; a. UHD: USRP Source USRP Source 块将通过在选定的天线上以特定频率、采样率和增益采样RF信号来产生基带样本。 b. Ratinal Resampler 因为USRP速率不是音频接收器速率的整数倍, 所以这里需要进行重采样。 c. WBFM Rec

    2024年02月12日
    浏览(32)
  • 《移动通信原理与应用》——QPSK调制解调仿真

    目录 一、QPSK调制与解调流程图: 二、仿真运行结果:  三、MATLAB仿真代码:  QPSK调制流程图: QPSK解调流程图:    1、Figure1:为发送端比特流情况图:             从Figure1看出发送端发送的比特流信息…[ak,bk]…情况:奇数进入I路,偶数进入Q路。比特进入I路与Q路情况如

    2024年01月23日
    浏览(37)
  • QPSK调制解调原理及MATLAB仿真

    ⭐️作者简介: 小瑞同学 ,主要学习 FPGA、信号处理、通信 等。 🍎个人主页:小瑞同学的博客主页 🌻个人信条:越努力,越幸运! ⏰日期:2023.11.16 📖文章内容概述:简单介绍了 QPSK 的基本原理和具体流程,并使用 MATLAB 进行了仿真分析。 👻 QPSK(正交相移键控) ,是

    2024年04月15日
    浏览(38)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包