當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


Python SciPy signal.resample用法及代碼示例


本文簡要介紹 python 語言中 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).因為使用了傅裏葉方法,所以假設信號是周期性的。

參數

x array_like

要重新采樣的數據。

num int

重采樣信號中的樣本數。

t 數組,可選

如果給定 t,則假定它是與 x 中的信號數據相關聯的等距采樣位置。

axis 整數,可選

重新采樣的 x 軸。默認值為 0。

window 數組,可調用,字符串,浮點數或元組,可選

指定應用於傅裏葉域中的信號的窗口。詳情見下文。

domain 字符串,可選

指示輸入域的字符串xtime考慮輸入x作為time-domain(默認),freq考慮輸入x作為frequency-domain。

返回

resampled_x 或 (resampled_x, resampled_t)

重采樣數組,或者,如果給定 t,則包含重采樣數組和相應重采樣位置的元組。

注意

參數窗口控製 Fourier-domain 窗口,該窗口在補零之前使傅裏葉頻譜逐漸變細,以減輕您不打算解釋為 band-limited 的采樣信號的重采樣值中的振鈴。

如果 window 是一個函數,則使用指示頻率區間的輸入向量(即 fftfreq(x.shape[axis]) )調用它。

如果 window 是與 x.shape[axis] 長度相同的數組,則假定它是直接應用於傅裏葉域的窗口(首先使用 dc 和 low-frequency)。

對於任何其他類型的窗戶, 函數scipy.signal.get_window被調用來生成窗口。

返回向量的第一個樣本與輸入向量的第一個樣本相同。樣本之間的間距從 dx 更改為 dx * len(x) / num

如果 t 不是 None,那麽它僅用於計算重采樣位置 resampled_t

如前所述,resample 使用 FFT 變換,如果輸入或輸出樣本數量很大且為素數,則速度可能會非常慢;參見 scipy.fft.fft

例子

請注意,重采樣數據的末尾上升以滿足下一個周期的第一個樣本:

>>> import numpy as np
>>> 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()
scipy-signal-resample-1.png

相關用法


注:本文由純淨天空篩選整理自scipy.org大神的英文原創作品 scipy.signal.resample。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。