matlab带通采样10.7MHzFM信号
时间: 2023-09-03 21:06:53 浏览: 107
基于matlab的FM调制
以下是一种可能的 MATLAB 代码,用于带通采样10.7MHz FM信号。该代码使用了一个低通滤波器和一个带通滤波器来实现该任务。
```
% 生成10.7MHz的FM信号
fs = 100e6; % 采样率
t = 0:1/fs:1e-3-1/fs; % 1ms的时间轴
fc = 10.7e6; % 载波频率
fm = 5e3; % 调频频率
beta = 2*pi*fm; % 调频指数
x = cos(2*pi*(fc*t + beta*cumsum(cos(2*pi*fm*t)))); % FM信号
% 低通滤波器
f_cutoff = 20e6; % 截止频率
[b, a] = butter(6, f_cutoff/fs*2, 'low'); % 6阶巴特沃斯低通滤波器
x_lp = filter(b, a, x); % 低通滤波后的信号
% 带通滤波器
f_center = 10.7e6; % 带通中心频率
f_bw = 200e3; % 带宽
[b, a] = butter(6, [f_center-f_bw/2, f_center+f_bw/2]/fs*2, 'bandpass'); % 6阶巴特沃斯带通滤波器
x_bp = filter(b, a, x_lp); % 带通滤波后的信号
% 采样
f_samp = 2*f_bw; % 采样频率
n_samp = fs/f_samp; % 采样周期
x_samp = x_bp(1:n_samp:end); % 采样后的信号
% 绘图
figure;
subplot(3,1,1);
plot(t, x);
title('原始信号');
xlabel('时间');
ylabel('幅度');
subplot(3,1,2);
plot(t, x_bp);
title('带通滤波后的信号');
xlabel('时间');
ylabel('幅度');
subplot(3,1,3);
plot(0:n_samp-1, x_samp);
title('采样后的信号');
xlabel('采样点');
ylabel('幅度');
```
该代码首先生成了一个10.7MHz的FM信号,然后使用一个低通滤波器对其进行滤波以去除高频噪声。接着,使用一个带通滤波器对信号进行带通滤波以保留中心频率为10.7MHz的信号。最后,使用一个采样频率为400kHz的采样器对信号进行采样,得到一个采样后的信号。绘图部分展示了原始信号、带通滤波后的信号和采样后的信号的波形。
阅读全文