matlab设计10.7MHzFM信号的带通采样
时间: 2023-10-07 21:11:23 浏览: 96
以下是一个可以生成10.7MHz FM信号的MATLAB代码示例:
```matlab
% 生成10.7MHz FM信号
fs = 44.1e6; % 采样率
t = (0:1/fs:1-1/fs); % 时间向量
fc = 10.7e6; % 载波频率
fm = 1e3; % 调制频率
kf = 50e3; % 频偏灵敏度
m = sin(2*pi*fm*t); % 调制信号
s = cos(2*pi*fc*t + 2*pi*kf*cumsum(m)); % FM信号
% 显示10.7MHz FM信号的时域和频域图像
figure;
subplot(2,1,1);
plot(t*1e6, s); xlabel('时间(微秒)'); ylabel('幅度');
title('10.7MHz FM信号时域图像');
subplot(2,1,2);
f = (-length(s)/2:length(s)/2-1)*(fs/length(s));
S = abs(fftshift(fft(s)));
plot(f/1e6, S); xlabel('频率(MHz)'); ylabel('幅度');
title('10.7MHz FM信号频域图像');
% 带通采样
f0 = fc - kf/fm; % 采样起始频率
f1 = fc + kf/fm; % 采样终止频率
B = f1 - f0; % 采样带宽
fsamp = 2*B; % 采样率
tsamp = 1/fsamp; % 采样时间间隔
nsamp = ceil(length(s)/(fs/fsamp)); % 采样点数
t_samp = (0:nsamp-1)*tsamp; % 采样时间向量
s_samp = s(round(t_samp*fs)+1); % 采样信号
% 显示带通采样信号的时域和频域图像
figure;
subplot(2,1,1);
plot(t_samp*1e6, s_samp); xlabel('时间(微秒)'); ylabel('幅度');
title('10.7MHz FM信号带通采样时域图像');
subplot(2,1,2);
f_samp = (-length(s_samp)/2:length(s_samp)/2-1)*(fsamp/length(s_samp));
S_samp = abs(fftshift(fft(s_samp)));
plot(f_samp/1e6, S_samp); xlabel('频率(MHz)'); ylabel('幅度');
title('10.7MHz FM信号带通采样频域图像');
```
上述代码中,我们首先根据给定的载波频率、调制频率和频偏灵敏度生成了一个10.7MHz FM信号。然后,我们对该信号进行了带通采样,采样起始频率为$f_0=fc-k_f/f_m$,采样终止频率为$f_1=fc+k_f/f_m$,采样带宽为$B=f_1-f_0$,采样率为$fsamp=2B$。
最后,我们显示了原始信号和采样信号的时域和频域图像。可以看出,采样后的信号只保留了原始信号中位于带通范围内的频率成分。
阅读全文