Matlab对10.7MHz的FM广播信号进行采样和正交分解,并在最后进行FM解调
时间: 2024-05-27 09:13:47 浏览: 13
以下是可能的MATLAB代码,其中使用了10.7MHz的FM广播信号作为输入:
% 设置采样频率和采样点数
Fs = 44.1e6; % 采样频率为44.1MHz
N = 2^16; % 采样点数为2^16
% 生成时间向量
t = (0:N-1)/Fs;
% 生成10.7MHz的FM广播信号
fdev = 75e3; % 频偏为75kHz
fm = 10.7e6 + fdev*cos(2*pi*1e3*t) + fdev*cos(2*pi*5e3*t);
% 进行采样
x = fm(1:floor(length(fm)/N)*N); % 保证采样点数为N
x = reshape(x,N,[]); % 将采样点分成N个长度为N的向量
x = x - mean(x); % 去掉直流分量
% 进行正交分解
fc = 10.7e6; % 中心频率为10.7MHz
t_c = exp(-1j*2*pi*fc*t); % 用于进行正交分解的复数载波
y = x.*t_c.'; % 进行正交分解
y = fft(y); % 进行FFT
% 找到频谱中的主要分量
[~,idx] = max(abs(y)); % 找到最大值的位置
f = (idx-1)/N*Fs; % 最大值对应的频率
% 进行FM解调
kf = fdev/f; % 频率偏移系数
dt = 1/Fs; % 采样时间间隔
phi = 2*pi*f*t + kf*cumsum(x)*dt; % 相位
z = cos(phi); % 解调后的信号
% 绘制结果
subplot(2,1,1);
plot(t, fm);
xlabel('Time (s)');
ylabel('Amplitude');
title('Original FM Signal');
subplot(2,1,2);
plot(t, z);
xlabel('Time (s)');
ylabel('Amplitude');
title('Demodulated FM Signal');
相关推荐
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![](https://img-home.csdnimg.cn/images/20210720083646.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)