Этот пример использует 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 фильтра разложения, двойное (реконструкция), функция масштабирования и вейвлет намного более сглаженны, чем анализ (разложение) функция масштабирования и вейвлет.