10.7MHzFM中频信号的AD带通采样的MATLAB
时间: 2023-10-07 08:13:55 浏览: 65
代码如下:
```matlab
% 设置采样频率和带宽
fs = 22.05e6; % 采样频率
bw = 200e3; % 信号带宽
% 生成频率为10.7MHz的FM信号
t = 0:1/fs:0.01;
fdev = 75e3;
fm = sin(2*pi*10.7e6*t + 2*pi*fdev*cumsum(randn(size(t))));
% 生成抽样时钟
fclk = bw*4; % 抽样时钟频率
tclk = 0:1/fclk:0.01;
clk = square(2*pi*fclk*tclk);
% 对FM信号进行AD带通采样
n = length(clk);
sampled_fm = zeros(1,n);
for i=1:n
if clk(i) > 0
sampled_fm(i) = fm(round((i-1)*fs/fclk)+1);
end
end
% 绘制FM信号和采样后的信号的时域和频域图像
figure();
subplot(2,2,1);
plot(t,fm);
title('FM信号');
xlabel('时间(t)');
ylabel('幅值');
xlim([0 0.01]);
subplot(2,2,2);
f = linspace(-fs/2,fs/2,length(fm));
fm_fft = abs(fftshift(fft(fm)));
plot(f/1e6,fm_fft);
title('FM信号频谱');
xlabel('频率(MHz)');
ylabel('幅值');
xlim([-1 1]*20);
subplot(2,2,3);
plot(tclk,clk);
title('抽样时钟');
xlabel('时间(t)');
ylabel('幅值');
xlim([0 0.01]);
subplot(2,2,4);
f = linspace(-fs/2,fs/2,length(sampled_fm));
sampled_fm_fft = abs(fftshift(fft(sampled_fm)));
plot(f/1e6,sampled_fm_fft);
title('采样后的信号频谱');
xlabel('频率(MHz)');
ylabel('幅值');
xlim([-1 1]*100e3);
```
该代码生成一个频率为10.7MHz的FM信号,并采用22.05MHz的采样频率进行AD带通采样,采样带宽为200kHz。采样时钟频率为采样带宽的4倍,即800kHz。采样过程中,每当抽样时钟上升沿出现时,就对FM信号进行采样,并将采样结果存储到数组中。采样后,绘制FM信号和采样后的信号的时域图和频域图,以观察采样效果。
运行该代码后,可以得到如下图所示的结果:
![10.7MHzFM中频信号的AD带通采样结果](https://i.loli.net/2021/05/24/Qo3qJLzHfAvO7kK.png)
从图中可以看出,采样后的信号频谱中只有10.7MHz的基带信号和其两侧的镜像频率成分,符合AD带通采样的理论。同时,采样后的信号在时域上也能够恢复出原始的FM信号的形态。
阅读全文