Масштабирование функции и вейвлета

Этот пример использует 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;
zplane(LoR); title('Reconstruction Filter');

Если вы увеличиваете масштаб области вокруг-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');

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