scipy.signal.resample¶
- scipy.signal.resample(x, num, t=None, axis=0, window=None, domain='time')[源代码]¶
重采样 x 至 num 使用傅立叶方法沿给定轴进行采样。
重采样信号的起始值与 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字符串,可选
指示输入的域的字符串 x :
time
考虑一下输入 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
被调用以生成窗口。返回向量的第一个样本与输入向量的第一个样本相同。样本之间的间距从
dx
至dx * 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()