用MATLAB实现抽样定理
时间: 2024-02-23 15:01:11 浏览: 92
【老生谈算法】应用MATLAB实现抽样定理探讨及仿真.doc
5星 · 资源好评率100%
抽样定理是指在采样过程中,采样频率必须大于被采样信号最高频率的两倍。以下是使用MATLAB实现抽样定理的示例代码:
假设有一个信号x,采样频率为Fs,信号最高频率为fmax,则需要满足Fs > 2*fmax。
```matlab
% 定义信号
t = 0:0.0001:1;
x = sin(2*pi*30*t) + sin(2*pi*50*t) + sin(2*pi*80*t); % 信号包含三个频率分别为30Hz,50Hz和80Hz的正弦波
% 采样
Fs = 200; % 采样频率为200Hz
Ts = 1/Fs;
n = 0:Ts:1-Ts;
xn = sin(2*pi*30*n) + sin(2*pi*50*n) + sin(2*pi*80*n); % 采样后的信号
% 绘制信号频谱
f = -Fs/2:Fs/length(x):Fs/2-Fs/length(x);
X = fftshift(fft(x));
subplot(2,1,1)
plot(f,abs(X))
title('原始信号频谱图')
xlabel('频率(Hz)')
ylabel('幅值')
% 绘制采样后信号频谱
fn = -Fs/2:Fs/length(xn):Fs/2-Fs/length(xn);
Xn = fftshift(fft(xn));
subplot(2,1,2)
plot(fn,abs(Xn))
title('采样后信号频谱图')
xlabel('频率(Hz)')
ylabel('幅值')
```
运行以上代码,可以得到原始信号和采样后信号的频谱图,通过比较可以看出采样后信号频谱存在混叠现象,这是由于采样频率不满足抽样定理所导致的。
阅读全文