FM系统的调制解调的matlab代码
时间: 2023-07-15 19:13:37 浏览: 39
FM调制解调的MATLAB代码如下:
% FM调制
fs = 44100; % 采样率
fc = 10000; % 载波频率
kf = 1000; % 调频系数
Ac = 1; % 载波幅度
fm = 500; % 原始信号频率
t = [0:1/fs:1]; % 时间序列
m = cos(2*pi*fm*t); % 原始信号
s = Ac*cos(2*pi*fc*t + 2*pi*kf*cumsum(m)); % FM调制信号
% FM解调
f_cutoff = 2*fm + kf*max(abs(m))/2/pi; % 设置截止频率
[b,a] = butter(10, f_cutoff/(fs/2)); % 10阶低通滤波器
s_filt = filter(b,a,s); % 信号滤波
s_diff = diff(s_filt); % 差分运算
s_demod = Ac*2*pi*kf*fs*s_diff/2/pi/fc; % 解调信号
% 绘制图形
subplot(3,1,1);
plot(t,m);
title('原始信号');
ylabel('幅度');
xlabel('时间(秒)');
subplot(3,1,2);
plot(t,s);
title('FM调制信号');
ylabel('幅度');
xlabel('时间(秒)');
subplot(3,1,3);
plot(t(2:end),s_demod);
title('FM解调信号');
ylabel('幅度');
xlabel('时间(秒)');
在这段代码中,我们首先定义了一些参数,如采样率 fs、载波频率 fc、调频系数 kf、载波幅度 Ac、原始信号频率 fm 等。然后我们生成了一个原始信号 m,并用 FM 调制公式生成了 FM 调制信号 s。接下来,我们使用一个低通滤波器对 s 进行滤波,然后进行差分运算和解调运算,得到解调信号 s_demod。最后,我们绘制了三个子图,分别是原始信号、FM调制信号和FM解调信号。