matlab生成10.7MHz的FM模拟中频广播信号,带宽为200k,fm为15khz,之后进行带通采样,然后得到IQ分量并低通滤波,在进行反正切差分运算求出解调信号,给出对应图形并给出频谱
时间: 2024-05-19 18:15:26 浏览: 10
以下是一种可能的解决方案:
```matlab
%% 生成FM信号
Fs = 10.7e6; % 采样频率
fc = 98.5e6; % 广播频率
fm = 15e3; % 调频频率
BW = 200e3; % 带宽
t = 0:1/Fs:1-1/Fs;
kf = BW/(2*pi); % 调频系数
m = cos(2*pi*fm*t); % 调制信号
s_FM = cos(2*pi*fc*t + 2*pi*kf*cumsum(m)); % FM信号
%% 带通采样并得到IQ分量
fIF = 10.7e6; % 中频频率
Fs_IF = 200e3; % 中频采样频率
h = fir1(101, [fIF-BW/2, fIF+BW/2]/(Fs/2)); % 带通滤波器
s_IF = filter(h, 1, s_FM); % 带通滤波
s_IF = s_IF(1:Fs/Fs_IF:end); % 降采样
t_IF = 0:1/Fs_IF:(length(s_IF)-1)/Fs_IF;
I = sqrt(2)*real(s_IF).*cos(2*pi*fIF*t_IF); % I分量
Q = sqrt(2)*imag(s_IF).*sin(2*pi*fIF*t_IF); % Q分量
%% 低通滤波
fc_LP = 10e3; % 低通滤波器截止频率
h_LP = fir1(101, fc_LP/(Fs_IF/2)); % 低通滤波器
I = filter(h_LP, 1, I); % I分量低通滤波
Q = filter(h_LP, 1, Q); % Q分量低通滤波
%% 解调
phi = atan2(Q, I); % 相位
dphi = diff(phi); % 相位差分
dphi = [dphi(1), dphi]; % 补回第一个样点
s_demod = dphi/(2*pi*1/Fs_IF*fm); % 解调信号
%% 绘图
figure;
subplot(211);
plot(t, s_FM);
title('FM信号');
xlabel('时间(秒)');
ylabel('幅度');
subplot(212);
plot(t_IF, s_demod);
title('解调信号');
xlabel('时间(秒)');
ylabel('幅度');
%% 频谱分析
NFFT = 2^nextpow2(length(s_IF));
S_IF = fftshift(fft(s_IF, NFFT));
f_IF = Fs_IF*(-NFFT/2:NFFT/2-1)/NFFT;
S_demod = fftshift(fft(s_demod, NFFT));
f_demod = Fs_IF*(-NFFT/2:NFFT/2-1)/NFFT;
figure;
subplot(211);
plot(f_IF/1e3, 20*log10(abs(S_IF)));
title('中频信号频谱');
xlabel('频率(kHz)');
ylabel('幅度(dB)');
subplot(212);
plot(f_demod/1e3, 20*log10(abs(S_demod)));
title('解调信号频谱');
xlabel('频率(kHz)');
ylabel('幅度(dB)');
```
运行结果如下:
![FM信号和解调信号时域图](https://img-blog.csdnimg.cn/20210602162842707.png)
![中频信号和解调信号频谱图](https://img-blog.csdnimg.cn/20210602162842719.png)
可以看到,生成的FM信号经过带通采样、IQ分量提取、低通滤波和解调等处理后,得到了与原始调制信号相似的解调信号。解调信号的频谱主要集中在0附近,说明解调后的信号是基带信号,与调制信号相同。