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


Python SciPy signal.group_delay用法及代碼示例


本文簡要介紹 python 語言中 scipy.signal.group_delay 的用法。

用法:

scipy.signal.group_delay(system, w=512, whole=False, fs=6.283185307179586)#

計算數字濾波器的群延遲。

群延遲通過濾波器延遲了信號的各種頻譜分量的樣本幅度包絡的多少來衡量。它被正式定義為連續(展開)相位的導數:

d        jw
D(w) = - -- arg H(e)
         dw

參數

system 數組 (b, a) 的元組

濾波器傳遞函數的分子和分母係數。

w {無,int,數組},可選

如果是單個整數,則以那麽多頻率進行計算(默認為 N=512)。

如果是數組,計算給定頻率的延遲。這些與 fs 的單位相同。

whole 布爾型,可選

通常,頻率的計算範圍是從 0 到奈奎斯特頻率 fs/2(upper-half of unit-circle)。如果整體為真,則計算從 0 到 fs 的頻率。如果 w 是 數組,則忽略。

fs 浮點數,可選

數字係統的采樣頻率。默認為 2*pi 弧度/樣本(所以 w 是從 0 到 pi)。

返回

w ndarray

計算群延遲的頻率,單位與 fs 相同。默認情況下,w 被歸一化為範圍 [0, pi)(弧度/樣本)。

gd ndarray

群延遲。

注意

MATLAB 中的類似函數稱為 grpdelay。

如果傳遞函數 在單位圓上有零點或極點,則相應頻率處的群延遲未定義。當出現這種情況時,會發出警告,並且在這些頻率上將群延遲設置為 0。

關於群延遲的數值計算的詳細信息,請參閱[1]。

參考

[1]

Richard G. Lyons,“理解數字信號處理,第 3 版”,第 3 頁。 830。

例子

>>> from scipy import signal
>>> b, a = signal.iirdesign(0.1, 0.3, 5, 50, ftype='cheby1')
>>> w, gd = signal.group_delay((b, a))
>>> import matplotlib.pyplot as plt
>>> plt.title('Digital filter group delay')
>>> plt.plot(w, gd)
>>> plt.ylabel('Group delay [samples]')
>>> plt.xlabel('Frequency [rad/sample]')
>>> plt.show()
scipy-signal-group_delay-1.png

相關用法


注:本文由純淨天空篩選整理自scipy.org大神的英文原創作品 scipy.signal.group_delay。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。