Main Content

Group Delay and Phase Delay

The group delay of a filter is a measure of the average time delay of the filter as a function of frequency. The group delay is defined as the negative first derivative of the filter's phase response. If the complex frequency response of a filter is H(ejω), then the group delay is

τg(ω)=-dθ(ω)dω,

where θ(ω) is the phase, or argument, of H(ejω). Use the grpdelay function to compute group delay of a filter. For example, verify that, for a linear-phase FIR filter, the group delay is one-half the filter order.

d = designfilt('lowpassfir','FilterOrder',20,'CutoffFrequency',200,'SampleRate',2000);
islinphase(d)
ans = logical
   1

grpdelay(d)

Figure Filter Visualization Tool - Group delay contains an axes object and other objects of type uitoolbar, uimenu. The axes object with title Group delay contains an object of type line.

The phase delay of a filter is defined as the negative of the phase divided by the frequency:

τp(ω)=-θ(ω)ω.

Use the phasedelay function to compute the phase delay of a filter. For the linear-phase FIR filter of the previous example, the phase delay is equal to the group delay.

phasedelay(d)

Figure Filter Visualization Tool - Phase Delay contains an axes object and other objects of type uitoolbar, uimenu. The axes object with title Phase Delay contains an object of type line.

Use FVTool to plot both the group delay and the phase delay of a system on the same graph. For example, plot the delays of a fifth-order Butterworth lowpass filter.

d = designfilt('lowpassiir','FilterOrder',5,'HalfPowerFrequency',200,'SampleRate',2000);

fvtool(d,'Analysis','grpdelay','OverlayedAnalysis','phasedelay','Legend','on')

Figure Filter Visualization Tool - Group delay and Phase Delay contains an axes object and other objects of type uitoolbar, uimenu. The axes object with title Group delay and Phase Delay contains an object of type line. This object represents Filter #1: Group delay.

See Also

| |