scipy 1.8.0 Pypi GitHub Homepage
Other Docs
NotesParametersReturnsBackRef
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

Notes

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 .

versionadded

Parameters

system : tuple of array_like (b, a)

Numerator and denominator coefficients of a filter transfer function.

w : {None, int, array_like}, optional

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`.

whole : bool, optional

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.

fs : float, optional

The sampling frequency of the digital system. Defaults to 2*pi radians/sample (so w is from 0 to pi).

versionadded

Returns

w : ndarray

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).

gd : ndarray

The group delay.

Compute the group delay of a digital filter.

See Also

freqz

Frequency response of a digital filter

Examples

>>> 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()
See :

Back References

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

Local connectivity graph

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


GitHub : /scipy/signal/_filter_design.py#591
type: <class 'function'>
Commit: