生成一个上采样与插值滤波器matlab代码
时间: 2024-05-12 14:18:59 浏览: 214
MATLAB滤波器代码
以下是一个简单的上采样与插值滤波器的 Matlab 代码:
```
% 设置参数
N = 1000; % 信号长度
M = 2; % 上采样倍数
L = 5; % 插值滤波器长度
% 生成原始信号
x = sin(2*pi*0.1*(1:N));
% 上采样
y = zeros(1, N*M);
y(1:M:end) = x;
% 插值滤波器设计
h = fir1(L-1, 1/M);
% 插值滤波
z = filter(h, 1, y);
% 绘制结果
subplot(3,1,1);
plot(x);
title('原始信号');
subplot(3,1,2);
plot(y);
title('上采样信号');
subplot(3,1,3);
plot(z);
title('插值滤波结果');
```
在这个代码中,我们首先生成了一个长度为 N 的正弦波信号。然后,我们将信号上采样 M 倍,也就是将每个样本之间插入 M-1 个零。接着,我们设计了一个长度为 L 的 FIR 滤波器,用于插值滤波。最后,我们使用这个滤波器对上采样后的信号进行滤波,得到插值结果。最后,我们将原始信号、上采样信号和插值结果绘制到了三个子图中,以便比较它们的差异。
阅读全文