本文簡要介紹 python 語言中 scipy.signal.decimate
的用法。
用法:
scipy.signal.decimate(x, q, n=None, ftype='iir', axis=-1, zero_phase=True)#
應用抗混疊濾波器後對信號進行下采樣。
默認情況下,使用 8 階 Chebyshev I 型濾波器。如果 ftype 為‘fir’,則使用帶有漢明窗的 30 點 FIR 濾波器。
- x: array_like
要下采樣的信號,作為 N 維數組。
- q: int
下采樣因子。使用 IIR 下采樣時,建議多次調用
decimate
,以實現高於 13 的下采樣因子。- n: 整數,可選
過濾器的順序(1 小於 ‘fir’ 的長度)。 ‘iir’ 的默認值為 8,‘fir’ 的下采樣因子為 20 倍。
- ftype: str {‘iir’, ‘fir’} 或
dlti
實例,可選 如果‘iir’或‘fir’,指定低通濾波器的類型。如果是
dlti
對象的實例,則在下采樣之前使用該對象進行過濾。- axis: 整數,可選
要抽取的軸。
- zero_phase: 布爾型,可選
在使用 IIR 濾波器時,通過使用
filtfilt
而不是lfilter
進行濾波來防止相移,並在使用 FIR 濾波器時將輸出移回濾波器的群延遲。建議使用默認值True
,因為通常不需要相移。
- y: ndarray
下采樣信號。
參數 ::
返回 ::
注意:
zero_phase
關鍵字是在 0.18.0 中添加的。在 0.18.0 中添加了將dlti
實例用作ftype
的可能性。例子:
>>> import numpy as np >>> from scipy import signal >>> import matplotlib.pyplot as plt
定義波參數。
>>> wave_duration = 3 >>> sample_rate = 100 >>> freq = 2 >>> q = 5
計算樣本數。
>>> samples = wave_duration*sample_rate >>> samples_decimated = int(samples/q)
創建餘弦波。
>>> x = np.linspace(0, wave_duration, samples, endpoint=False) >>> y = np.cos(x*np.pi*freq*2)
抽取餘弦波。
>>> ydem = signal.decimate(y, q) >>> xnew = np.linspace(0, wave_duration, samples_decimated, endpoint=False)
繪製原始波和抽取波。
>>> plt.plot(x, y, '.-', xnew, ydem, 'o-') >>> plt.xlabel('Time, Seconds') >>> plt.legend(['data', 'decimated'], loc='best') >>> plt.show()
相關用法
- Python SciPy signal.deconvolve用法及代碼示例
- Python SciPy signal.detrend用法及代碼示例
- Python SciPy signal.dfreqresp用法及代碼示例
- Python SciPy signal.dbode用法及代碼示例
- Python SciPy signal.dlti用法及代碼示例
- Python SciPy signal.dimpulse用法及代碼示例
- Python SciPy signal.dstep用法及代碼示例
- Python SciPy signal.dlsim用法及代碼示例
- Python SciPy signal.czt_points用法及代碼示例
- Python SciPy signal.chirp用法及代碼示例
- Python SciPy signal.residue用法及代碼示例
- Python SciPy signal.iirdesign用法及代碼示例
- Python SciPy signal.max_len_seq用法及代碼示例
- Python SciPy signal.kaiser_atten用法及代碼示例
- Python SciPy signal.oaconvolve用法及代碼示例
- Python SciPy signal.hilbert用法及代碼示例
- Python SciPy signal.ricker用法及代碼示例
- Python SciPy signal.group_delay用法及代碼示例
- Python SciPy signal.cheb2ord用法及代碼示例
- Python SciPy signal.get_window用法及代碼示例
- Python SciPy signal.lfilter用法及代碼示例
- Python SciPy signal.morlet用法及代碼示例
- Python SciPy signal.coherence用法及代碼示例
- Python SciPy signal.TransferFunction用法及代碼示例
- Python SciPy signal.residuez用法及代碼示例
注:本文由純淨天空篩選整理自scipy.org大神的英文原創作品 scipy.signal.decimate。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。