當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。