本文简要介绍 python 语言中 scipy.signal.sosfilt
的用法。
用法:
scipy.signal.sosfilt(sos, x, axis=-1, zi=None)#
使用级联二阶部分沿一维过滤数据。
使用由 sos 定义的数字 IIR 滤波器对数据序列 x 进行滤波。
- sos: array_like
二阶滤波器系数数组,必须具有形状
(n_sections, 6)
。每行对应一个二阶部分,前三列提供分子系数,后三列提供分母系数。- x: array_like
一个 N 维输入数组。
- axis: 整数,可选
沿其应用线性滤波器的输入数据数组的轴。过滤器沿该轴应用于每个子阵列。默认值为 -1。
- zi: 数组,可选
级联滤波器延迟的初始条件。它是形状的(至少 2D)向量
(n_sections, ..., 2, ...)
,其中..., 2, ...
表示形状x,但与x.shape[axis]
替换为 2。如果子为 None 或未给出,则假定初始休息(即全零)。请注意,这些初始条件是不是与给出的初始条件相同lfiltic
或者scipy.signal.lfilter_zi.
- y: ndarray
数字滤波器的输出。
- zf: ndarray,可选
如果 zi 为 None,则不返回,否则,zf 保存最终的滤波器延迟值。
参数 ::
返回 ::
注意:
滤波器函数由一系列具有direct-form II 转置结构的二阶滤波器实现。它旨在最大限度地减少高阶滤波器的数值精度误差。
例子:
使用
lfilter
和sosfilt
绘制 13th-order 滤波器的脉冲响应,显示尝试在单级中执行 13th-order 滤波器所导致的不稳定性(数值误差将某些极点推到单位圆之外) ):>>> import matplotlib.pyplot as plt >>> from scipy import signal >>> b, a = signal.ellip(13, 0.009, 80, 0.05, output='ba') >>> sos = signal.ellip(13, 0.009, 80, 0.05, output='sos') >>> x = signal.unit_impulse(700) >>> y_tf = signal.lfilter(b, a, x) >>> y_sos = signal.sosfilt(sos, x) >>> plt.plot(y_tf, 'r', label='TF') >>> plt.plot(y_sos, 'k', label='SOS') >>> plt.legend(loc='best') >>> plt.show()
相关用法
- Python SciPy signal.sosfiltfilt用法及代码示例
- Python SciPy signal.sosfilt_zi用法及代码示例
- Python SciPy signal.sosfreqz用法及代码示例
- Python SciPy signal.sos2tf用法及代码示例
- Python SciPy signal.step2用法及代码示例
- Python SciPy signal.spectrogram用法及代码示例
- Python SciPy signal.square用法及代码示例
- Python SciPy signal.step用法及代码示例
- Python SciPy signal.sweep_poly用法及代码示例
- Python SciPy signal.savgol_coeffs用法及代码示例
- Python SciPy signal.symiirorder1用法及代码示例
- Python SciPy signal.sawtooth用法及代码示例
- Python SciPy signal.symiirorder2用法及代码示例
- Python SciPy signal.stft用法及代码示例
- Python SciPy signal.ss2tf用法及代码示例
- Python SciPy signal.savgol_filter用法及代码示例
- 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.sosfilt。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。