cupyx.scipy.signal.iirdesign#
- cupyx.scipy.signal.iirdesign(wp, ws, gpass, gstop, analog=False, ftype='ellip', output='ba', fs=None)[source]#
完整的 IIR 数字和模拟滤波器设计。
给定通带和阻带频率和增益,构造给定基本类型的最小阶模拟或数字 IIR 滤波器。以分子、分母 (‘ba’)、极点-零点 (‘zpk’) 或二阶节 (‘sos’) 形式返回输出。
- 参数:
wp (浮点数 或 类数组, 形状 (2,)) –
通带和阻带边缘频率。可能的值是标量(用于低通和高通滤波器)或范围(用于带通和带阻滤波器)。对于数字滤波器,这些值的单位与 fs 相同。默认情况下,fs 是每采样 2 个半周期,因此这些值被归一化到 0 到 1 之间,其中 1 是奈奎斯特频率。例如
低通: wp = 0.2, ws = 0.3
高通: wp = 0.3, ws = 0.2
带通: wp = [0.2, 0.5], ws = [0.1, 0.6]
带阻: wp = [0.1, 0.6], ws = [0.2, 0.5]
对于模拟滤波器,wp 和 ws 是角频率(例如,rad/s)。请注意,对于带通和带阻滤波器,通带必须严格位于阻带内部,反之亦然。
ws (浮点数 或 类数组, 形状 (2,)) –
通带和阻带边缘频率。可能的值是标量(用于低通和高通滤波器)或范围(用于带通和带阻滤波器)。对于数字滤波器,这些值的单位与 fs 相同。默认情况下,fs 是每采样 2 个半周期,因此这些值被归一化到 0 到 1 之间,其中 1 是奈奎斯特频率。例如
低通: wp = 0.2, ws = 0.3
高通: wp = 0.3, ws = 0.2
带通: wp = [0.2, 0.5], ws = [0.1, 0.6]
带阻: wp = [0.1, 0.6], ws = [0.2, 0.5]
对于模拟滤波器,wp 和 ws 是角频率(例如,rad/s)。请注意,对于带通和带阻滤波器,通带必须严格位于阻带内部,反之亦然。
gpass (浮点数) – 通带中的最大损耗 (dB)。
gstop (浮点数) – 阻带中的最小衰减 (dB)。
analog (布尔值, 可选) – 为 True 时,返回模拟滤波器;否则返回数字滤波器。
ftype (字符串, 可选) –
要设计的 IIR 滤波器类型
Butterworth : ‘butter’
Chebyshev I : ‘cheby1’
Chebyshev II : ‘cheby2’
Cauer/elliptic: ‘ellip’
output ({'ba', 'zpk', 'sos'}, 可选) –
输出滤波器形式
二阶节(推荐): ‘sos’
分子/分母(默认): ‘ba’
极点-零点: ‘zpk’
通常推荐使用二阶节 (‘sos’) 形式,因为推断分子/分母形式 (‘ba’) 的系数会受到数值不稳定性的影响。出于向后兼容性考虑,默认形式是分子/分母形式 (‘ba’),其中 ‘ba’ 中的 ‘b’ 和 ‘a’ 指代常用系数名称。
注意: 使用二阶节 (‘sos’) 形式有时会带来额外的计算成本:因此对于数据密集型用例,建议也研究分子/分母形式 (‘ba’)。
fs (浮点数, 可选) –
数字系统的采样频率。
版本 1.2.0 新增。
- 返回:
b, a (ndarray, ndarray) – IIR 滤波器的分子 (b) 和分母 (a) 多项式。仅当
output='ba'
时返回。z, p, k (ndarray, ndarray, float) – IIR 滤波器传递函数的零点、极点和系统增益。仅当
output='zpk'
时返回。sos (ndarray) – IIR 滤波器的二阶节表示。仅当
output='sos'
时返回。