Python 使用scipy.signal.resample重新采样的时间

Python 使用scipy.signal.resample重新采样的时间,python,numpy,scipy,resampling,Python,Numpy,Scipy,Resampling,我有一个信号不是等距采样的;为了进一步处理,需要对其进行修改。我认为scipy.signal.resample可以做到这一点,但我不理解它的行为 信号单位为y,对应时间单位为x。 预计重采样时间为yy,所有相应时间均为xx。有人知道我做错了什么或如何实现我所需要的吗 此代码不起作用:xx不是时间: import numpy as np from scipy import signal import matplotlib.pyplot as plt x = np.array([0,1,2,3,4

我有一个信号不是等距采样的;为了进一步处理,需要对其进行修改。我认为scipy.signal.resample可以做到这一点,但我不理解它的行为

信号单位为y,对应时间单位为x。 预计重采样时间为yy,所有相应时间均为xx。有人知道我做错了什么或如何实现我所需要的吗

此代码不起作用:xx不是时间:

import numpy as np
from scipy import signal
import matplotlib.pyplot as plt

x = np.array([0,1,2,3,4,5,6,6.5,7,7.5,8,8.5,9])
y = np.cos(-x**2/4.0)
num=50
z=signal.resample(y, num, x, axis=0, window=None)
yy=z[0]
xx=z[1]
plt.plot(x,y)
plt.plot(xx,yy)
plt.show()

即使给出
x
坐标(对应于
t
参数),也会假定采样是均匀的

考虑在中使用一个单变量插值器

例如,此脚本:

import numpy as np
from scipy import interpolate
import matplotlib.pyplot as plt

x = np.array([0,1,2,3,4,5,6,6.5,7,7.5,8,8.5,9])
y = np.cos(-x**2/4.0)

f = interpolate.interp1d(x, y)

num = 50
xx = np.linspace(x[0], x[-1], num)
yy = f(xx)

plt.plot(x,y, 'bo-')
plt.plot(xx,yy, 'g.-')
plt.show()
生成此绘图:


请查看的docstring以获取控制插值的选项,并查看其他插值类。

感谢您的回复。我尝试了一些在numpy中实现的插值技术。时间方面可以工作,但由.resample构造的信号要好得多(由于源的性质)。我将搜索scipy存储库,看看是否能找到一个重建特性与.resample类似的存储库。@frits您的最终结论是什么?我也有同样的问题