matlab对10.7MHzFM中频信号进行AD带通采样
时间: 2023-09-09 18:06:09 浏览: 137
matlab.zip_rs matlab_带通采样
以下是MATLAB代码实现:
1. 生成一个10.7MHz的FM信号:
```matlab
% 生成10.7MHz的FM信号
fs = 50e6; % 采样频率为50MHz
t = 0:1/fs:1e-6; % 时长为1微秒
fm = 50e3; % 调频频率为50kHz
fc = 10.7e6; % 中心频率为10.7MHz
kf = 2*pi*fm; % 调频系数
f = cos(2*pi*fc*t + kf*cumsum(randn(size(t))));
```
2. 进行AD带通采样:
```matlab
% 进行AD带通采样
f_s = 20e6; % 采样频率为20MHz
N = length(f);
t_s = (0:N-1)/f_s;
ADC_in = f.*cos(2*pi*fc*t_s);
```
其中,`f_s`为采样频率,`N`为采样点数,`t_s`为采样时间,`ADC_in`为采样输入信号。
3. 绘制采样后的信号频谱图:
```matlab
% 绘制采样后的信号频谱图
f_fft = fft(ADC_in)/N;
f_fft = fftshift(f_fft);
f_axis = linspace(-f_s/2,f_s/2,N);
plot(f_axis/1e6,20*log10(abs(f_fft)))
xlabel('Frequency (MHz)')
ylabel('Magnitude (dB)')
title('Spectrum of Sampled FM Signal')
```
其中,`fft`为快速傅里叶变换,`fftshift`为将频谱转换到中心频率为0的位置,`plot`为绘制频谱图。
完整代码如下:
```matlab
% 生成10.7MHz的FM信号
fs = 50e6; % 采样频率为50MHz
t = 0:1/fs:1e-6; % 时长为1微秒
fm = 50e3; % 调频频率为50kHz
fc = 10.7e6; % 中心频率为10.7MHz
kf = 2*pi*fm; % 调频系数
f = cos(2*pi*fc*t + kf*cumsum(randn(size(t))));
% 进行AD带通采样
f_s = 20e6; % 采样频率为20MHz
N = length(f);
t_s = (0:N-1)/f_s;
ADC_in = f.*cos(2*pi*fc*t_s);
% 绘制采样后的信号频谱图
f_fft = fft(ADC_in)/N;
f_fft = fftshift(f_fft);
f_axis = linspace(-f_s/2,f_s/2,N);
plot(f_axis/1e6,20*log10(abs(f_fft)))
xlabel('Frequency (MHz)')
ylabel('Magnitude (dB)')
title('Spectrum of Sampled FM Signal')
```
阅读全文