应用matlab实现信号抽样及抽样定理
时间: 2023-08-10 16:04:39 浏览: 357
利用Matlab实现对信号的抽取和升采样
信号抽样是指将连续时间信号在一定时间间隔内进行采样,得到离散时间序列。信号抽样定理是指在一定条件下,可以通过采样值从而恢复原始信号。在MATLAB中,可以使用以下代码实现信号抽样及信号抽样定理的验证。
1. 生成一个连续时间信号,例如一个正弦波信号。
```matlab
fs = 1000; % 采样频率
t = 0:1/fs:1-1/fs; % 时间序列
f1 = 10; % 正弦波频率
x = sin(2*pi*f1*t); % 原始信号
```
2. 对原始信号进行采样,并将采样值保存在一个向量中。
```matlab
fs_new = 2*f1; % 新的采样频率
T = 1/fs_new; % 新的采样间隔
n = ceil(fs/fs_new); % 采样点数
t_new = (0:n-1)*T; % 新的时间序列
x_sampled = x(1:n); % 采样值
```
3. 绘制原始信号和采样信号的波形图。
```matlab
figure;
subplot(2,1,1);
plot(t, x);
title('原始信号');
subplot(2,1,2);
stem(t_new, x_sampled);
title('采样信号');
```
4. 对采样信号进行插值,得到重建的信号,并绘制原始信号、采样信号和重建信号的波形图。
```matlab
x_reconstructed = interp1(t_new, x_sampled, t); % 重建信号
figure;
subplot(3,1,1);
plot(t, x);
title('原始信号');
subplot(3,1,2);
stem(t_new, x_sampled);
title('采样信号');
subplot(3,1,3);
plot(t, x_reconstructed);
title('重建信号');
```
如果采样频率满足信号抽样定理的条件,重建信号与原始信号应该非常接近。
阅读全文