scipy.signal.resample

scipy.signal.resample(x, num, t=None, axis=0, window=None, domain='time')[源代码]

重采样 xnum 使用傅立叶方法沿给定轴进行采样。

重采样信号的起始值与 x 但采样间隔为 len(x) / num * (spacing of x) 。因为使用了傅立叶方法,所以假设信号是周期性的。

参数
xarray_like

要重新采样的数据。

num集成

重采样信号中的样本数。

tARRAY_LIKE,可选

如果 t ,则假设它是与信号DATA相关联的等间距采样位置 x

axis整型,可选

的轴线 x 那是重新取样的。默认值为0。

windowARRAY_LIKE、Callable、String、Float或tuple,可选

指定在傅立叶域中应用于信号的窗口。有关详细信息,请参阅下面的内容。

domain字符串,可选

指示输入的域的字符串 xtime 考虑一下输入 x 作为时域(默认), freq 考虑一下输入 x 作为频域。

退货
重采样_x或(重采样_x,重采样_t)

重采样的数组,或者,如果 t 给出了一个包含重采样阵列和相应重采样位置的元组。

参见

decimate

施加FIR或IIR过滤后,对信号进行下采样。

resample_poly

使用多相滤波和FIR过滤重采样。

注意事项

这一论点 window 控制傅里叶域窗口,该窗口在补零之前逐渐缩小傅里叶频谱,以减轻您不想解释为频带限制的采样信号的重采样值中的振铃。

如果 window 是函数,则用指示频段的输入矢量(即fftfreq(x.shape))调用它 [axis] ))。

如果 window 是长度与的数组相同的数组 x.shape[axis] 假设它是直接在傅立叶域中应用的窗口(首先是直流和低频)。

对于任何其他类型的 window ,该函数 scipy.signal.get_window 被调用以生成窗口。

返回向量的第一个样本与输入向量的第一个样本相同。样本之间的间距从 dxdx * len(x) / num

如果 t 不是NONE,则它仅用于计算重采样位置 resampled_t

如前所述, resample 使用fft转换,如果输入或输出样本数较大且质数较大,则转换速度可能会非常慢;请参见 scipy.fft.fft

示例

请注意,重采样数据的末尾上升,以满足下一个周期的第一个样本:

>>> from scipy import signal
>>> x = np.linspace(0, 10, 20, endpoint=False)
>>> y = np.cos(-x**2/6.0)
>>> f = signal.resample(y, 100)
>>> xnew = np.linspace(0, 10, 100, endpoint=False)
>>> import matplotlib.pyplot as plt
>>> plt.plot(x, y, 'go-', xnew, f, '.-', 10, y[0], 'ro')
>>> plt.legend(['data', 'resampled'], loc='best')
>>> plt.show()
../../_images/scipy-signal-resample-1.png