【发布时间】:2020-05-05 12:32:03
【问题描述】:
我正在尝试使用resample函数,我在MATLAB信号处理工具箱(https://www.mathworks.com/help/signal/ref/resample.html#d117e155565)的文档中发现了以下内容:
- y = resample(x,tx,___,method) 指定插值方法 以及该组中先前语法中的任何参数。 插值方法可以是“linear”、“pchip”或“spline”。
以下是我的代码:
clear;
a = [1, 2, 3, 2, 0.5]; %original signal
tx = [0, 1, 2, 3, 4];
fs = 20; % resample frequency
[a_rs, ty] = resample(a, tx, fs, 'linear');
plot(tx, a, 'o', ty, a_rs, '.');
legend('original', 'resampled');
我得到的是下图:
resampled signal vs original signal
显然它不是从原始信号“线性”插值的。相反,似乎应用了低通滤波器。谁能告诉我这里有什么问题?非常感谢?
【问题讨论】:
-
重采样总是使用过滤器完成,因此您希望使用线性方法进行插值,而不是重采样。试试 doc interp1 看看一个很好的例子