| Wavelet Toolbox | ![]() |
Orthogonal wavelet filter set.
Syntax
[Lo_D,Hi_D,Lo_R,Hi_R] = orthfilt(W)
Description
[Lo_D,Hi_D,Lo_R,Hi_R] = orthfilt(W) computes the four filters associated with the scaling filter W corresponding to a wavelet:
|
Decomposition low-pass filter |
|
Decomposition high-pass filter |
|
Reconstruction low-pass filter |
|
Reconstruction high-pass filter |
For an orthogonal wavelet, in the multiresolution framework, we start with the scaling function
and the wavelet function
. One of the fundamental relations is the twin-scale relation:
All the filters used in dwt and idwt are intimately related to the sequence
. Clearly if
is compactly supported, the sequence (wn) is finite and
can be viewed as a FIR filter. The scaling filter W is:

For example, for the db3 scaling filter:
load db3
db3
db3 =
0.2352 0.5706 0.3252 -0.0955 -0.0604 0.0249
sum(db3)
ans =
1.000
norm(db3)
ans =
0.7071
From filter W, we define four FIR filters, of length 2N and norm 1, organized as follows:
| Filters |
Low-Pass |
High-Pass |
| Decomposition |
Lo_D |
Hi_D |
| Reconstruction |
Lo_R |
Hi_R |
The four filters are computed using the following scheme:
where qmf is such that Hi_R and Lo_R are quadrature mirror filters
(i.e., Hi_R(k) = (-1)k Lo_R(2N + 1 - k), for k = 1, 2, ... , 2N), and where wrev flips the filter coefficients. So Hi_D and Lo_D are also quadrature mirror filters. The computation of these filters is performed using orthfilt.
Examples
% Load scaling filter.
load db8; w = db8;
subplot(421); stem(w);
title('Original scaling filter');
% Compute the four filters.
[Lo_D,Hi_D,Lo_R,Hi_R] = orthfilt(w);
subplot(423); stem(Lo_D);
title('Decomposition low-pass filter');
subplot(424); stem(Hi_D);
title('Decomposition high-pass filter');
subplot(425); stem(Lo_R);
title('Reconstruction low-pass filter');
subplot(426); stem(Hi_R);
title('Reconstruction high-pass filter');
% Check for orthonormality.
df = [Lo_D;Hi_D];
rf = [Lo_R;Hi_R];
id = df*df'
id =
1.0000 0
0 1.0000
id = rf*rf'
id =
1.0000 0
0 1.0000
% Check for orthogonality by dyadic translation, for example:
df = [Lo_D 0 0;Hi_D 0 0];
dft = [0 0 Lo_D; 0 0 Hi_D];
zer = df*dft'
zer =
1.0e-12 *
-0.1883 0.0000
-0.0000 -0.1883
% High- and low-frequency illustration.
fftld = fft(Lo_D); ffthd = fft(Hi_D);
freq = [1:length(Lo_D)]/length(Lo_D);
subplot(427); plot(freq,abs(fftld));
title('Transfer modulus: low-pass');
subplot(428); plot(freq,abs(ffthd));
title('Transfer modulus: high-pass')
% Editing some graphical properties,
% the following figure is generated.
See Also
biorfilt, qmf, wfilters
References
Daubechies I. (1992), Ten lectures on wavelets, CBMS-NSF conference series in applied mathematics. SIAM Ed. pp. 117-119, 137, 152.
| ntree | plot | ![]() |