Quadrature mirror filter

In digital signal processing, a quadrature mirror filter is a filter whose magnitude response is the mirror image around $$\pi/2$$ of that of another filter. Together these filters, first introduced by Croisier et al., are known as the quadrature mirror filter pair.

A filter $$H_1(z)$$ is the quadrature mirror filter of $$H_0(z)$$ if $$H_1(z) = H_0(-z)$$.

The filter responses are symmetric about $$\Omega = \pi / 2$$:


 * $$\big|H_1\big(e^{j\Omega}\big)\big| = \big|H_0\big(e^{j(\pi - \Omega)}\big)\big|.$$

In audio/voice codecs, a quadrature mirror filter pair is often used to implement a filter bank that splits an input signal into two bands. The resulting high-pass and low-pass signals are often reduced by a factor of 2, giving a critically sampled two-channel representation of the original signal. The analysis filters are often related by the following formula in addition to quadrate mirror property:
 * $$\big|H_0\big(e^{j\Omega}\big)\big|^2 + \big|H_1\big(e^{j\Omega}\big)\big|^2 = 1,$$

where $$\Omega$$ is the frequency, and the sampling rate is normalized to $$2\pi$$. This is known as power complementary property. In other words, the power sum of the high-pass and low-pass filters is equal to 1.

Orthogonal wavelets – the Haar wavelets and related Daubechies wavelets, Coiflets, and some developed by Mallat, are generated by scaling functions which, with the wavelet, satisfy a quadrature mirror filter relationship.

Relationship to other filter banks
The earliest wavelets were based on expanding a function in terms of rectangular steps, the Haar wavelets. This is usually a poor approximation, whereas Daubechies wavelets are among the simplest but most important families of wavelets. A linear filter that is zero for “smooth” signals, given a record of $$N$$ points $$x_n$$ is defined as
 * $$y_n = \sum_{i=0}^{M-1} b_i x_{n-i}.$$

It is desirable to have it vanish for a constant, so taking the order $$m = 4$$, for example,
 * $$b_0 \cdot 1 + b_1 \cdot 1 + b_2 \cdot 1 + b_3 \cdot 1 = 0.$$

And to have it vanish for a linear ramp, so that
 * $$b_0 \cdot 0 + b_1 \cdot 1 + b_2 \cdot 2 + b_3 \cdot 3 = 0.$$

A linear filter will vanish for any $$x = \alpha n + \beta$$, and this is all that can be done with a fourth-order wavelet. Six terms will be needed to vanish a quadratic curve, and so on, given the other constraints to be included. Next an accompanying filter may be defined as
 * $$z_n = \sum_{i=0}^{M-1} c_i x_{n-i}.$$

This filter responds in an exactly opposite manner, being large for smooth signals and small for non-smooth signals. A linear filter is just a convolution of the signal with the filter’s coefficients, so the series of the coefficients is the signal that the filter responds to maximally. Thus, the output of the second filter vanishes when the coefficients of the first one are input into it. The aim is to have
 * $$\sum_{i=0}^{M-1} c_i b_i = 0.$$

Where the associated time series flips the order of the coefficients because the linear filter is a convolution, and so both have the same index in this sum. A pair of filters with this property are defined as quadrature mirror filters. Even if the two resulting bands have been subsampled by a factor of 2, the relationship between the filters means that approximately perfect reconstruction is possible. That is, the two bands can then be upsampled, filtered again with the same filters and added together, to reproduce the original signal exactly (but with a small delay). (In practical implementations, numeric precision issues in floating-point arithmetic may affect the perfection of the reconstruction.)