非均匀一维信号降采样
我有两个一维的numpy数组:x
和y
,其中x
存储了样本y
在x轴上的位置。假设x
的范围是从minX
到maxX
,我想在这个范围内以固定的间隔对这两个数组进行取样,比如说用np.linspace(minX, maxX, 1000)
来生成1000个点。
我该如何在numpy中做到这一点呢?我是否可以用一维插值的方法来解决这个问题?
1 个回答
4
np.interp 是一个用来进行一维线性插值的工具:
newx = np.linspace(minX, maxX, 1000)
newy = np.interp(newx, x, y)
另外,使用 scipy.interpolate.interp1d,你可以用样条插值来进行插值。比如,kind='cubic'
就是用三次样条插值:
import scipy.interpolate as interpolate
newx = np.linspace(minX, maxX, 1000)
newy = interpolate.interp1d(x, y, kind='cubic')(newx)