Ортогональный фильтр вейвлета устанавливается
[Lo_D,Hi_D,Lo_R,Hi_R] = orthfilt(W)
[Lo_D,Hi_D,Lo_R,Hi_R] = orthfilt( вычисляет четыре фильтра, сопоставленные с масштабирующимся фильтром W)W, соответствующий вейвлету:
Lo_D | Фильтр нижних частот разложения |
Hi_D | Фильтр высоких частот разложения |
Lo_R | Фильтр нижних частот реконструкции |
Hi_R | Фильтр высоких частот реконструкции |
Для ортогонального вейвлета, в среде мультиразрешения, мы запускаем с масштабирующейся функции ϕ и функции вейвлета ψ. Одно из основных отношений является отношением двойной шкалы:
Все фильтры, используемые в dwt и idwt, глубоко связаны с последовательностью . Очевидно, если ϕ сжато поддержан, последовательность (wn) конечна и может быть просмотрена как КИХ-фильтр. Масштабирующийся фильтр W
КИХ-фильтр низкой передачи
Из длины 2N
Из суммы 1
Из нормы ![]()
Например, для фильтра масштабирования db3,
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
От фильтра W мы задаем четыре КИХ-фильтра, длины 2 Н и нормы 1, организованный можно следующим образом:
Фильтры | Низкая передача | Высокая передача |
|---|---|---|
Разложение | Lo_D | Hi_D |
Реконструкция | Lo_R | Hi_R |
Четыре фильтра вычисляются с помощью следующей схемы:

где qmf таков, что Hi_R и Lo_R являются квадратурными фильтрами зеркала (т.е. Hi_R(k) = (-1)k Lo_R(2N + 1 - k) для k = 1, 2, Ä, 2N), и где wrev инвертирует коэффициенты фильтра. Таким образом, Hi_D и Lo_D являются также квадратурными фильтрами зеркала. Вычисление этих фильтров выполняется с помощью orthfilt.
% 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.

Daubechies, я. (1992), Десять лекций по вейвлетам, ряду конференции CBMS-NSF в прикладной математике, SIAM Эд. стр 117–119, 137, 152.