Matlab对10.7MHz的FM广播信号进行采样和并得到正交分量和同相分量,并在最后进行FM解调
时间: 2024-06-01 16:12:35 浏览: 191
以下是一个可能的Matlab代码示例:
% 设置采样频率和时间长度
fs = 100e6; % 采样频率为100MHz
t = 0:1/fs:1e-3; % 采样1ms的时间长度
% 生成10.7MHz的FM信号
fc = 10.7e6; % 载波频率为10.7MHz
fm = 1e3; % 最大调频偏移为1kHz
kf = fm/fc; % 调频系数
m = cos(2*pi*fm*t); % 调频信号
s = cos(2*pi*fc*t + 2*pi*kf*cumsum(m)); % FM信号
% 进行采样
fs_fm = 2*fc; % FM信号的采样频率
s_fm = s(1:fs/fs_fm:end); % 对FM信号进行采样
% 获取正交分量和同相分量
f_lo = fc/4; % 本地振荡器频率为载波频率的1/4
lo = cos(2*pi*f_lo*t); % 本地振荡器信号
i = s_fm .* lo; % 同相分量
q = imag(hilbert(s_fm)) .* lo; % 正交分量
% 进行FM解调
y = i + 1j*q; % 构建复信号
z = diff(angle(y)); % 对相位进行差分
z = [z(1); z]; % 补回第一个样本的相位
demod = z/(2*pi*kf); % FM解调信号
% 绘制结果
figure;
subplot(311); plot(t*1e3, s); xlabel('时间(ms)'); ylabel('幅度');
title('10.7MHz的FM广播信号');
subplot(312); plot(t(1:length(s_fm))*1e3, s_fm); xlabel('时间(ms)'); ylabel('幅度');
title('采样后的FM信号');
subplot(313); plot(t(1:length(demod))*1e3, demod); xlabel('时间(ms)'); ylabel('幅度');
title('FM解调后的信号');
阅读全文