cupyx.scipy.signal.iirfilter#

cupyx.scipy.signal.iirfilter(N, Wn, rp=None, rs=None, btype='band', analog=False, ftype='butter', output='ba', fs=None)[source]#

给定阶数和临界点的 IIR 数字和模拟滤波器设计。

设计 N 阶数字或模拟滤波器并返回滤波器系数。

参数:
  • N (int) – 滤波器的阶数。

  • Wn (array_like) –

    标量或长度为 2 的序列,给出临界频率。

    对于数字滤波器,Wn 的单位与 fs 相同。默认情况下,fs 为 2 半周期/采样,因此这些频率从 0 到 1 归一化,其中 1 是奈奎斯特频率。(因此 Wn 的单位是半周期/采样。)

    对于模拟滤波器,Wn 是角频率(例如,rad/s)。

    当 Wn 是长度为 2 的序列时,Wn[0] 必须小于 Wn[1]

  • rp (float, optional) – 对于 Chebyshev 和 elliptic 滤波器,提供通带中的最大纹波。(dB)

  • rs (float, optional) – 对于 Chebyshev 和 elliptic 滤波器,提供阻带中的最小衰减。(dB)

  • btype ({'bandpass', 'lowpass', 'highpass', 'bandstop'}, optional) – 滤波器的类型。默认为 ‘bandpass’。

  • analog (bool, optional) – 当为 True 时,返回模拟滤波器,否则返回数字滤波器。

  • ftype (str, optional) –

    要设计的 IIR 滤波器类型

    • Butterworth : ‘butter’

    • Chebyshev I : ‘cheby1’

    • Chebyshev II : ‘cheby2’

    • Cauer/elliptic: ‘ellip’

    • Bessel/Thomson: ‘bessel’

  • output ({'ba', 'zpk', 'sos'}, optional) –

    输出的滤波器形式

    • 二阶节(推荐):‘sos’

    • 分子/分母(默认):‘ba’

    • 零极点增益:‘zpk’

    通常推荐使用二阶节(‘sos’)形式,因为推导分子/分母(‘ba’)形式的系数存在数值不稳定性。为了向后兼容,默认形式是分子/分母(‘ba’)形式,其中 ‘ba’ 中的 ‘b’ 和 ‘a’ 指的是常用的系数名称。

    注意:使用二阶节(‘sos’)形式有时会产生额外的计算开销:对于数据密集型用例,因此建议也研究分子/分母(‘ba’)形式。

  • fs (float, optional) – 数字系统的采样频率。

返回值:

  • b, a (ndarray, ndarray) – IIR 滤波器的分子(b)和分母(a)多项式。仅当 output='ba' 时返回。

  • z, p, k (ndarray, ndarray, float) – IIR 滤波器传递函数的零点(z)、极点(p)和系统增益(k)。仅当 output='zpk' 时返回。

  • sos (ndarray) – IIR 滤波器的二阶节表示。仅当 output='sos' 时返回。

另请参阅

butter

使用阶数和临界点设计滤波器

cheby1, cheby2, ellip, bessel

buttord

从通带和阻带规范查找阶数和临界点

cheb1ord, cheb2ord, ellipord

iirdesign

使用通带和阻带规范进行通用滤波器设计

scipy.signal.iirfilter