scipy.signal.

freqs_zpk#

scipy.signal.freqs_zpk(z, p, k, worN=200)[源]#

计算模拟滤波器的频率响应。

给定滤波器的零点 z、极点 p 和增益 k,计算其频率响应。

           (jw-z[0]) * (jw-z[1]) * ... * (jw-z[-1])
H(w) = k * ----------------------------------------
           (jw-p[0]) * (jw-p[1]) * ... * (jw-p[-1])
参数:
zarray_like

线性滤波器的零点。

parray_like

线性滤波器的极点。

k标量

线性滤波器的增益。

worN{None, int, array_like}, 可选

如果为 None,则在响应曲线的“感兴趣”部分(由零极点位置决定)周围计算 200 个频率。如果为单个整数,则在该数量的频率处计算。否则,在 worN 中给定的角频率(例如,弧度/秒)处计算响应。

返回:
wndarray

计算 h 时的角频率。

hndarray

频率响应。

另请参阅

freqs

计算 TF 形式模拟滤波器的频率响应

freqz

计算 TF 形式数字滤波器的频率响应

freqz_zpk

计算 ZPK 形式数字滤波器的频率响应

注意事项

在 0.19.0 版本中添加。

示例

>>> import numpy as np
>>> from scipy.signal import freqs_zpk, iirfilter
>>> z, p, k = iirfilter(4, [1, 10], 1, 60, analog=True, ftype='cheby1',
...                     output='zpk')
>>> w, h = freqs_zpk(z, p, k, worN=np.logspace(-1, 2, 1000))
>>> import matplotlib.pyplot as plt
>>> plt.semilogx(w, 20 * np.log10(abs(h)))
>>> plt.xlabel('Frequency [rad/s]')
>>> plt.ylabel('Amplitude response [dB]')
>>> plt.grid(True)
>>> plt.show()
../../_images/scipy-signal-freqs_zpk-1.png