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
频率响应。
备注
在版本 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()