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.

fs = 2000;
b = fir1(20,200/(fs/2));

islinphase(b)
ans = logical
   1

grpdelay(b,1,[],fs)

Figure contains an axes object. The axes object with title Group Delay, xlabel Frequency (Hz), ylabel Group delay (samples) 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(b,1,[],fs)

Figure contains an axes object. The axes object with title Phase Delay, xlabel Frequency (Hz), ylabel Phase delay (rad/Hz) contains an object of type line.

Plot the group delay and the phase delay of a fifth-order Butterworth lowpass filter.

[b,a] = butter(5,200/(fs/2));

grpdelay(b,a,[],fs)

Figure contains an axes object. The axes object with title Group Delay, xlabel Frequency (Hz), ylabel Group delay (samples) contains an object of type line.

phasedelay(b,a,[],fs)

Figure contains an axes object. The axes object with title Phase Delay, xlabel Frequency (Hz), ylabel Phase delay (rad/Hz) contains an object of type line.

See Also

| |