Ортогональный набор вейвлет
[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
является
А lowpass конечной импульсной характеристики фильтр
Длины 2 N
Из суммы 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
Зададим четыре конечные импульсные характеристики фильтра длины 2N и нормы 1, организованные следующим образом:
Фильтры | Низкочастотные | High-Pass |
---|---|---|
Разложение | 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, I. (1992), Десять лекций по вейвлетам, серия конференций CBMS-NSF по прикладной математике, SIAM Ed. pp. 117-119, 137, 152.