当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Python SciPy signal.freqs用法及代码示例


本文简要介绍 python 语言中 scipy.signal.freqs 的用法。

用法:

scipy.signal.freqs(b, a, worN=200, plot=None)#

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

给定模拟滤波器的 M-order 分子 b 和 N-order 分母 a,计算其频率响应:

b[0]*(jw)**M + b[1]*(jw)**(M-1) + ... + b[M]
H(w) = ----------------------------------------------
        a[0]*(jw)**N + a[1]*(jw)**(N-1) + ... + a[N]

参数

b array_like

线性滤波器的分子。

a array_like

线性滤波器的分母。

worN {无,int,数组},可选

如果没有,则计算响应曲线感兴趣部分周围的 200 个频率(由 pole-zero 位置确定)。如果是单个整数,则以那么多频率进行计算。否则,计算工作中给出的角频率(例如,rad/s)的响应。

plot 可调用的,可选的

带有两个参数的可调用对象。如果给定,返回参数wh被传递给情节。用于绘制内部的频率响应freqs.

返回

w ndarray

计算 h 的角频率。

h ndarray

频率响应。

注意

使用 Matplotlib 的 “plot” 函数作为可调用阴谋产生意想不到的结果,这会绘制复数传递函数的实部,而不是幅度。尝试lambda w, h: plot(w, abs(h)).

例子

>>> from scipy.signal import freqs, iirfilter
>>> import numpy as np
>>> b, a = iirfilter(4, [1, 10], 1, 60, analog=True, ftype='cheby1')
>>> w, h = freqs(b, a, worN=np.logspace(-1, 2, 1000))
>>> import matplotlib.pyplot as plt
>>> plt.semilogx(w, 20 * np.log10(abs(h)))
>>> plt.xlabel('Frequency')
>>> plt.ylabel('Amplitude response [dB]')
>>> plt.grid(True)
>>> plt.show()
scipy-signal-freqs-1.png

相关用法


注:本文由纯净天空筛选整理自scipy.org大神的英文原创作品 scipy.signal.freqs。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。