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


Python cusignal.filtering.resample.resample用法及代碼示例

用法:

cusignal.filtering.resample.resample(x, num, t=None, axis=0, window=None, domain='time')

沿給定軸使用傅裏葉方法將 x 重新采樣到 num 樣本。

重新采樣的信號以與 x 相同的值開始,但以 len(x) / num * (spacing of x) 的間距進行采樣。因為使用了傅裏葉方法,所以假設信號是周期性的。

參數

xarray_like

要重新采樣的數據。

numint

重采樣信號中的樣本數。

t數組,可選

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

axis整數,可選

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

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

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

domain字符串,可選

指示輸入域的字符串 x

time

將輸入x 視為time-domain。 (默認)

freq

將輸入x 視為frequency-domain。

返回

resampled_x 或 (resampled_x, resampled_t)

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

注意

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

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

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

對於任何其他類型的 window ,調用函數 cusignal.get_window 來生成窗口。

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

如果t 不是None,則表示舊樣本位置,新樣本位置將與新樣本一起返回。

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

例子

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

>>> import cusignal
>>> import cupy as cp
>>> x = cp.linspace(0, 10, 20, endpoint=False)
>>> y = cp.cos(-x**2/6.0)
>>> f = cusignal.resample(y, 100)
>>> xnew = cp.linspace(0, 10, 100, endpoint=False)
>>> import matplotlib.pyplot as plt
>>> plt.plot(cp.asnumpy(x), cp.asnumpy(y), 'go-', cp.asnumpy(xnew),                 cp.asnumpy(f), '.-', 10, cp.asnumpy(y[0]), 'ro')
>>> plt.legend(['data', 'resampled'], loc='best')
>>> plt.show()

相關用法


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