matlab实现10.7MHZFM信号正交解调
时间: 2023-10-01 10:10:52 浏览: 81
由于正交解调需要使用复信号,因此需要将实信号转换为复信号。可以使用hilbert函数实现。
接下来,采用一个低通滤波器对复信号进行滤波,得到基带信号。
最后,对基带信号进行解调,得到原始信号。
代码如下:
%% 生成10.7MHz的FM信号
fs = 44.1e6; % 采样率
fc = 10.7e6; % 载频频率
fm = 50e3; % 调制信号频率
dev = 75e3; % 频偏
t = 0:1/fs:1; % 时间范围
s = sin(2*pi*fc*t + 2*pi*dev/fm*sin(2*pi*fm*t)); % FM信号
%% 正交解调
s_hil = hilbert(s); % 实信号转复信号
lpf = fir1(1000, 2*fm/fs); % 低通滤波器
s_baseband = filter(lpf, 1, s_hil); % 得到基带信号
f = fc + dev/fm*2*pi*real(s_baseband); % 基带解调得到原始信号
%% 绘制结果
figure;
subplot(3,1,1);
plot(t, s);
title('原始信号');
xlabel('时间(s)');
ylabel('幅度');
subplot(3,1,2);
plot(t, real(s_baseband));
title('基带信号');
xlabel('时间(s)');
ylabel('幅度');
subplot(3,1,3);
plot(t, f);
title('解调后的信号');
xlabel('时间(s)');
ylabel('频率(Hz)');
阅读全文