Wavelet Toolbox |
Syntax
Description
Y = qmf(X,P)
changes the signs of the even index entries of the reversed vector filter coefficients X
if P
is even. If P
is odd the same holds for odd index entries. Y = qmf(X)
is equivalent to Y = qmf(X,0)
.
Let x
be a finite energy signal. Two filters F0 and F1 are quadrature mirror filters (QMF) if, for any x,
where y0 is a decimated version of the signal x filtered with F0 so y0 is defined by x0 = F0(x) and y0(n) = x0(2n), and similarly, y1 is defined by x1 = F1(x) and
y1(n) = x1(2n). This property ensures a perfect reconstruction of the associated two-channel filter banks scheme (See Strang-Nguyen p. 103).
For example, if F0 is a Daubechies scaling filter and F1 = qmf
(F0), then the transfer functions F0(z) and F1(z) of the filters F0 and F1 satisfy the condition (see the example for db10):
Examples
% Load scaling filter associated with an orthogonal wavelet. load db10; subplot(321); stem(db10); title('db10 low-pass filter'); % Compute the quadrature mirror filter. qmfdb10 = qmf(db10); subplot(322); stem(qmfdb10); title('QMF db10 filter'); % Check for frequency condition (necessary for orthogonality): % abs(fft(filter))^2 + abs(fft(qmf(filter))^2 = 1 at each % frequency. m = fft(db10); mt = fft(qmfdb10); freq = [1:length(db10)]/length(db10); subplot(323); plot(freq,abs(m)); title('Transfer modulus of db10') subplot(324); plot(freq,abs(mt)); title('Transfer modulus of QMF db10') subplot(325); plot(freq,abs(m).^2 + abs(mt).^2); title('Check QMF condition for db10 and QMF db10') xlabel(' abs(fft(db10))^2 + abs(fft(qmf(db10))^2 = 1') % Editing some graphical properties, % the following figure is generated. % Check for orthonormality. df = [db10;qmfdb10]*sqrt(2); id = df*df' id = 1.0000 0.0000 0.0000 1.0000
References
Strang, G.; T. Nguyen (1996), Wavelets and Filter Banks, Wellesley-Cambridge Press.
plot | rbiowavf |
© 1994-2005 The MathWorks, Inc.