本文簡要介紹 python 語言中 scipy.signal.savgol_filter
的用法。
用法:
scipy.signal.savgol_filter(x, window_length, polyorder, deriv=0, delta=1.0, axis=-1, mode='interp', cval=0.0)#
將 Savitzky-Golay 過濾器應用於數組。
這是一個一維濾波器。如果 x 的維度大於 1,則 axis 確定應用過濾器的軸。
- x: array_like
要過濾的數據。如果x不是單精度或雙精度浮點數組,它將被轉換為類型
numpy.float64
過濾前。- window_length: int
濾波器窗口的長度(即係數的數量)。如果mode為‘interp’,window_length必須小於或等於x的大小。
- polyorder: int
用於擬合樣本的多項式的階數。多階必須小於window_length。
- deriv: 整數,可選
要計算的導數的階數。這必須是一個非負整數。默認為0,表示不區分過濾數據。
- delta: 浮點數,可選
將應用過濾器的樣本的間距。這僅在 deriv > 0 時使用。默認值為 1.0。
- axis: 整數,可選
沿其應用過濾器的數組 x 的軸。默認值為 -1。
- mode: str,可選
必須是‘mirror’, ‘constant’, ‘nearest’, ‘wrap’或‘interp’。這決定了應用濾波器的填充信號的擴展類型。當模式為‘constant’時,填充值由cval給定。有關 ‘mirror’, ‘constant’, ‘wrap’ 和 ‘nearest’ 的更多詳細信息,請參閱注釋。當選擇‘interp’模式(默認)時,不使用擴展名。相反,度多階多項式適合邊的最後 window_length 值,並且該多項式用於評估最後 window_length //2 個輸出值。
- cval: 標量,可選
如果模式為‘constant’,則要填充超過輸入邊的值。默認值為 0.0。
- y: ndarray,形狀與x
過濾後的數據。
參數 ::
返回 ::
注意:
模式選項的詳細信息:
- ‘mirror’:
Repeats the values at the edges in reverse order. The value closest to the edge is not included.
- ‘nearest’:
The extension contains the nearest input value.
- ‘constant’:
The extension contains the value given by the cval argument.
- ‘wrap’:
The extension contains the values from the other end of the array.
例如,如果輸入為 [1, 2, 3, 4, 5, 6, 7, 8],window_length 為 7,則以下顯示了各種模式選項的擴展數據(假設 cval 為 0):
mode | Ext | Input | Ext -----------+---------+------------------------+--------- 'mirror' | 4 3 2 | 1 2 3 4 5 6 7 8 | 7 6 5 'nearest' | 1 1 1 | 1 2 3 4 5 6 7 8 | 8 8 8 'constant' | 0 0 0 | 1 2 3 4 5 6 7 8 | 0 0 0 'wrap' | 6 7 8 | 1 2 3 4 5 6 7 8 | 1 2 3
例子:
>>> import numpy as np >>> from scipy.signal import savgol_filter >>> np.set_printoptions(precision=2) # For compact display. >>> x = np.array([2, 2, 5, 2, 1, 0, 1, 4, 9])
使用窗口長度為 5 和 2 次多項式的過濾器。對所有其他參數使用默認值。
>>> savgol_filter(x, 5, 2) array([1.66, 3.17, 3.54, 2.86, 0.66, 0.17, 1. , 4. , 9. ])
請注意,x 中的最後五個值是拋物線的樣本,因此當 mode='interp'(默認值)與 polyorder=2 一起使用時,最後三個值保持不變。比較一下,例如,模式='最近':
>>> savgol_filter(x, 5, 2, mode='nearest') array([1.74, 3.03, 3.54, 2.86, 0.66, 0.17, 1. , 4.6 , 7.97])
相關用法
- Python SciPy signal.savgol_coeffs用法及代碼示例
- Python SciPy signal.sawtooth用法及代碼示例
- Python SciPy signal.step2用法及代碼示例
- Python SciPy signal.spectrogram用法及代碼示例
- Python SciPy signal.square用法及代碼示例
- Python SciPy signal.step用法及代碼示例
- Python SciPy signal.sweep_poly用法及代碼示例
- Python SciPy signal.sosfiltfilt用法及代碼示例
- Python SciPy signal.symiirorder1用法及代碼示例
- Python SciPy signal.sosfreqz用法及代碼示例
- Python SciPy signal.sosfilt用法及代碼示例
- Python SciPy signal.sosfilt_zi用法及代碼示例
- Python SciPy signal.sos2tf用法及代碼示例
- Python SciPy signal.symiirorder2用法及代碼示例
- Python SciPy signal.stft用法及代碼示例
- Python SciPy signal.ss2tf用法及代碼示例
- Python SciPy signal.spline_filter用法及代碼示例
- 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用法及代碼示例
注:本文由純淨天空篩選整理自scipy.org大神的英文原創作品 scipy.signal.savgol_filter。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。