matlab对10.7MHz的FM信号进行采样和正交解调
时间: 2023-09-30 08:09:08 浏览: 77
调频信号FM相干解调与非相干解调原理matlab实现
5星 · 资源好评率100%
下面是一种可能的MATLAB代码实现:
```matlab
% 生成10.7MHz的FM信号
fs = 100e6; % 采样率
t = 0:1/fs:1e-3; % 时域范围为1ms
fc = 10.7e6; % 载波频率
fm = 1e3; % 调制信号频率
kf = 10e3; % 频偏系数
m = cos(2*pi*fm*t); % 调制信号
x_fm = cos(2*pi*fc*t + 2*pi*kf*cumsum(m)); % FM信号
% 采样
fs_d = 20e6; % 采样率
Ts = 1/fs_d; % 采样周期
n = 0:floor(length(x_fm)/fs_d)-1; % 采样时刻
x_d = x_fm(n*Ts*fs+1); % 采样
% 正交解调
fc_lp = 1e6; % 低通滤波器截止频率
[b, a] = butter(8, fc_lp/fs_d*2); % 8阶Butterworth低通滤波器系数
x_I = filter(b, a, x_d.*cos(2*pi*fc*n*Ts)); % I分量
x_Q = filter(b, a, x_d.*sin(2*pi*fc*n*Ts)); % Q分量
x_demod = x_I - 1i*x_Q; % 正交解调结果
% 绘制结果
figure;
subplot(3,1,1);
plot(t*1e3, x_fm);
xlabel('时间(ms)');
ylabel('幅度');
title('FM信号');
subplot(3,1,2);
plot(n*Ts*1e3, real(x_d));
xlabel('时间(ms)');
ylabel('幅度');
title('采样结果');
subplot(3,1,3);
plot(n*Ts*1e3, real(x_demod));
xlabel('时间(ms)');
ylabel('幅度');
title('正交解调结果');
```
在这个代码中,我们首先生成了10.7MHz的FM信号,采样率为100MHz,调制信号频率为1kHz,频偏系数为10kHz。然后我们对该信号进行了20MHz的采样,并使用低通滤波器将其正交解调,得到了解调后的信号。最后,我们绘制了生成的FM信号、采样结果和解调结果。
阅读全文