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