group_delay(system, w=512, whole=False, fs=6.283185307179586)
The group delay measures by how many samples amplitude envelopes of various spectral components of a signal are delayed by a filter. It is formally defined as the derivative of continuous (unwrapped) phase:
d jw D(w) = - -- arg H(e) dw
The similar function in MATLAB is called :None:None:`grpdelay`
.
If the transfer function $H(z)$ has zeros or poles on the unit circle, the group delay at corresponding frequencies is undefined. When such a case arises the warning is raised and the group delay is set to 0 at those frequencies.
For the details of numerical computation of the group delay refer to .
Numerator and denominator coefficients of a filter transfer function.
If a single integer, then compute at that many frequencies (default is N=512).
If an array_like, compute the delay at the frequencies given. These are in the same units as :None:None:`fs`
.
Normally, frequencies are computed from 0 to the Nyquist frequency, fs/2 (upper-half of unit-circle). If :None:None:`whole`
is True, compute frequencies from 0 to fs. Ignored if w is array_like.
The sampling frequency of the digital system. Defaults to 2*pi radians/sample (so w is from 0 to pi).
The frequencies at which group delay was computed, in the same units as :None:None:`fs`
. By default, w
is normalized to the range [0, pi) (radians/sample).
The group delay.
Compute the group delay of a digital filter.
freqz
Frequency response of a digital filter
>>> 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 pltSee :
... plt.title('Digital filter group delay')
... plt.plot(w, gd)
... plt.ylabel('Group delay [samples]')
... plt.xlabel('Frequency [rad/sample]')
... plt.show()
The following pages refer to to this document either explicitly or contain code examples using this.
scipy.signal._fir_filter_design.minimum_phase
scipy.signal._filter_design.group_delay
Hover to see nodes names; edges to Self not shown, Caped at 50 nodes.
Using a canvas is more power efficient and can get hundred of nodes ; but does not allow hyperlinks; , arrows or text (beyond on hover)
SVG is more flexible but power hungry; and does not scale well to 50 + nodes.
All aboves nodes referred to, (or are referred from) current nodes; Edges from Self to other have been omitted (or all nodes would be connected to the central node "self" which is not useful). Nodes are colored by the library they belong to, and scaled with the number of references pointing them