matlab实现时域取样定理
时间: 2023-07-13 11:41:15 浏览: 252
时域取样定理是指:如果一个连续时间信号x(t)的带宽有限且小于或等于B Hz,那么它可以由一个采样频率为Fs=2B Hz的离散时间信号x(n)唯一确定。在Matlab中,可以使用以下步骤实现时域取样定理:
1. 创建一个带宽有限的连续时间信号x(t),并绘制它的时域波形和幅频特性。
2. 选取一个合适的采样频率Fs=2B Hz,生成对应的采样序列x(n),并绘制它的时域波形。
3. 对采样序列x(n)进行重构,生成一个与原信号x(t)相同的连续时间信号x_r(t),并绘制它的时域波形和幅频特性。
4. 对比原信号x(t)和重构信号x_r(t),观察它们的相似性和差异性。
下面是一个简单的Matlab代码实现时域取样定理的例子:
```matlab
% 生成一个带宽有限的连续时间信号x(t)
t = -1:0.001:1;
x = cos(2*pi*50*t).*(1-abs(t)/1);
% 绘制x(t)的时域波形和幅频特性
subplot(2,2,1);
plot(t,x);
title('x(t)时域波形');
subplot(2,2,2);
f = -500:0.1:500;
X = abs(fftshift(fft(x)));
plot(f,X);
title('x(t)幅频特性');
% 采样频率Fs=2B Hz,生成采样序列x(n)
Fs = 2*50;
n = 0:1/Fs:1;
xn = cos(2*pi*50*n).*(1-abs(n)/1);
% 绘制x(n)的时域波形
subplot(2,2,3);
stem(n,xn);
title('x(n)时域波形');
% 对采样序列x(n)进行重构,生成连续时间信号x_r(t)
tr = -1:0.001:1;
xr = zeros(size(tr));
for i = 1:length(n)
xr = xr + xn(i)*sinc((tr-n(i))*Fs);
end
% 绘制x_r(t)的时域波形和幅频特性
subplot(2,2,4);
plot(tr,xr);
title('x_r(t)时域波形');
subplot(2,2,4);
Xr = abs(fftshift(fft(xr)));
plot(f,Xr);
title('x_r(t)幅频特性');
```
运行以上代码,可以看到生成的连续时间信号x(t)、采样序列x(n)和重构信号x_r(t),并且观察它们的时域波形和幅频特性。可以看到,重构信号x_r(t)与原信号x(t)非常相似,验证了时域取样定理的正确性。
阅读全文