Функция масштабирования и вейвлет

Этот пример использует wavefun чтобы продемонстрировать, как количество моментов исчезновения в биортогональной фильтрующей паре влияет на плавность соответствующей функции двойного масштабирования и вейвлет. В то время как этот пример использует wavefun для биортогонального вейвлета, 'bior3.7', можно также использовать wavefun для получения ортогональных масштабирующих и вейвлет функций.

Сначала получите фильтры масштабирования и вейвлета и посмотрите на количество моментов исчезновения в вейвлетах. Это эквивалентно рассмотрению количества нулей на уровне -1 + i0 в двойном фильтре.

[LoD,HiD,LoR,HiR] = wfilters('bior3.7');

Если у вас есть Signal Processing Toolbox™, можно использовать zplane чтобы просмотреть количество нулей в -1 + i0 как для фильтров разложения, так и для фильтров реконструкции.

zplane(LoD); title('Decomposition Filter');

Figure contains an axes. The axes with title Decomposition Filter contains 4 objects of type line, text.

figure;
zplane(LoR); title('Reconstruction Filter');

Figure contains an axes. The axes with title Reconstruction Filter contains 5 objects of type line, text.

Если вы увеличиваете область вокруг -1 + i0, вы обнаруживаете, что в фильтре разложения 7 нули и 3 нули в фильтре восстановления. Это имеет важные последствия для плавности соответствующих масштабирующих функций и вейвлетов. Для биортогональных вейвлетов, чем больше нулей при -1 + i0 в lowpass фильтре, тем гладче противоположная функция масштабирования и вейвлет. Другими словами, больше нулей в фильтре разложения подразумевает более плавную функцию масштабирования восстановления и вейвлет. И наоборот, больше нулей в фильтре реконструкции подразумевает более плавную функцию масштабирования разложения и вейвлет.

Использование wavefun чтобы подтвердить это. Для ортогональных и биортогональных вейвлеты, wavefun работает путем реверсирования алгоритма Mallat. В частности, алгоритм начинается с одного вейвлет или масштабирующего коэффициента на самом высоком уровне разрешения и восстанавливает вейвлет или масштабирующую функцию до заданного самого высокого уровня разрешения. Обычно от 8 до 10 уровней достаточно, чтобы получить точное представление функции масштабирования и вейвлета.

[phiD,psiD,phiR,psiR] = wavefun('bior3.7',10);
subplot(2,1,1)
plot([phiD' phiR']); grid on;
title('Bior3.7 Scaling Functions');
legend('Decomposition','Reconstruction');
subplot(2,1,2)
plot([psiD' psiR']); grid on;
title('Bior3.7 Wavelets');
legend('Decomposition','Reconstruction');

Figure contains 2 axes. Axes 1 with title Bior3.7 Scaling Functions contains 2 objects of type line. These objects represent Decomposition, Reconstruction. Axes 2 with title Bior3.7 Wavelets contains 2 objects of type line. These objects represent Decomposition, Reconstruction.

Поскольку для lowpass фильтра разложения существует более чем в два раза больше нулей при -1 + i0, функция двойного (восстановления) масштабирования и вейвлет намного более плавны, чем функция масштабирования анализа (разложения) и вейвлет.