Skip to content

Linear-Phase and Minimum-Phase Filters

We use the notation of the overview: a filter with impulse response \(h\), phase response \(\phi(\omega)\), and group delay \(\tau_g(\omega)\), as defined in Phase Delay and Group Delay. Two classes of filter are distinguished by the structure of their phase, and both arise when a filter must be paired with a choice of output timing.

Definition: linear phase

A filter has linear phase if it delays every frequency by the same time, so that it displaces a signal without distorting its shape. Equivalently, its phase response is a linear function of frequency, \(\phi(\omega) = -\alpha\omega\), and its group delay is the constant $$ \tau_g(\omega) = \alpha . $$

A filter of finite duration \(T\) has linear phase precisely when its impulse response is symmetric about the midpoint of its support, \(h(\tau) = h(T - \tau)\), or antisymmetric there; in either case the common delay is \(\alpha = T/2\). A symmetric filter thus displaces a transient by half its duration and leaves the waveform otherwise unchanged.

Definition: minimum phase

Among all filters sharing a given magnitude response, the minimum-phase filter is the one that delays the signal least: its group delay is the smallest possible at every frequency, and equivalently its impulse-response energy is packed as close to the start as that magnitude response allows. It is causal and has a causal inverse. The defining criterion is that every zero of its transfer function lies in the open left half of the complex plane.

The many filters that share a magnitude response differ only in phase, and the minimum-phase one is the extreme case in which the phase, and with it the delay, is as small as possible. Its impulse response is in general asymmetric and front-loaded, so it is not linear-phase, and its group delay varies with frequency.

Example: a filter and its reversal

A filter and its time-reversal share a magnitude response, since reversal conjugates the frequency response and leaves its modulus unchanged, but they differ in phase. The one whose energy is front-loaded is the minimum-phase member; its reversal, energy at the back, is maximum-phase.

Two filters with the same magnitude response, one front-loaded and one back-loaded

In discrete time

For a filter given by its taps, symmetry is \(h[n] = h[N-1-n]\) and the linear-phase group delay is \((N-1)/2\). The transfer function is a polynomial in \(z^{-1}\), and minimum phase corresponds to all of its zeros lying inside the unit circle; reversing the tap order reflects each zero to its reciprocal, moving it outside. Because the taps are asymmetric, their order is significant, in the sense of Impulse Response and Convolution.

The symmetric taps \((1, 2, 1)\) have constant group delay \((N-1)/2 = 1\), while the taps \((2, 1)\) and their reversal \((1, 2)\) share a magnitude response but place their zero inside and outside the unit circle respectively:

import numpy as np
from scipy.signal import freqz, group_delay

symmetric = np.array([1.0, 2.0, 1.0])                 # linear phase
assert np.allclose(group_delay((symmetric, 1), w=512)[1], (len(symmetric) - 1) / 2)

h_min = np.array([2.0, 1.0])                           # minimum phase
h_max = h_min[::-1]                                    # maximum phase
assert np.allclose(np.abs(freqz(h_min)[1]), np.abs(freqz(h_max)[1]))
assert abs(np.roots(h_min)[0]) < 1 < abs(np.roots(h_max)[0])
assert group_delay((h_min, 1))[1].mean() < group_delay((h_max, 1))[1].mean()

References