用matlab验证时域取样定理
时间: 2023-07-20 17:38:49 浏览: 187
matlab验证时域采样定理.doc
5星 · 资源好评率100%
在MATLAB中验证时域取样定理,可以通过以下步骤进行:
1. 生成一个模拟信号,例如正弦波信号:
```
fs = 1000; % 采样率
f = 50; % 信号频率
t = 0:1/fs:1; % 时间向量
x = sin(2*pi*f*t); % 生成正弦波信号
```
2. 对信号进行采样:
```
Ts = 1/100; % 采样间隔
n = 0:Ts:1; % 采样时间点
xn = sin(2*pi*f*n); % 采样信号
```
3. 绘制原始信号和采样信号的时域图像:
```
subplot(2,1,1);
plot(t,x);
title('原始信号');
subplot(2,1,2);
stem(n,xn);
title('采样信号');
```
4. 对采样信号进行重建:
```
t2 = 0:0.0001:1; % 重建时间向量
xr = zeros(size(t2)); % 初始化重建信号
for i = 1:length(n)
xr = xr + xn(i)*sinc((t2-n(i))/Ts); % sinc插值重建
end
```
5. 绘制原始信号和重建信号的时域图像:
```
figure;
subplot(2,1,1);
plot(t,x);
title('原始信号');
subplot(2,1,2);
plot(t2,xr);
title('重建信号');
```
6. 可以通过比较原始信号和重建信号的相对误差来验证时域取样定理:
```
err = norm(x-xr)/norm(x);
fprintf('相对误差为:%f\n',err);
```
如果相对误差很小,接近于0,那么就验证了时域取样定理。
阅读全文