Documentation

This is machine translation

Translated by Microsoft
Mouseover text to see original. Click the button below to return to the English verison of the page.

Note: This page has been translated by MathWorks. Please click here
To view all translated materals including this page, select Japan from the country navigator on the bottom of this page.

Scaling Function and Wavelet

This example uses wavefun to demonstrate how the number of vanishing moments in a biorthogonal filter pair affects the smoothness of the corresponding dual scaling function and wavelet. While this example uses wavefun for a biorthogonal wavelet, 'bior3.7', you can also use wavefun to obtain orthogonal scaling and wavelet functions.

First, obtain the scaling and wavelet filters and look at the number of vanishing moments in the wavelets. This is equivalent to looking at the number of zeros at -1+i0 in the dual filter.

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

If you have the Signal Processing Toolbox™, you can use zplane to look at the number of zeros at -1+i0 for both the decomposition and reconstruction filters.

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

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

If you zoom in on the region around -1+i0, you find there are 7 zeros in the decomposition filter and 3 zeros in the reconstruction filter. This has important consequences for the smoothness of the corresponding scaling functions and wavelets. For biorthogonal wavelets, the more zeros at -1+i0 in the lowpass filter, the smoother the opposite scaling function and wavelet is. In other words, more zeros in the decomposition filter implies a smoother reconstruction scaling function and wavelet. Conversely, more zeros in the reconstruction filter implies a smoother decomposition scaling function and wavelet.

Use wavefun to confirm this. For orthogonal and biorthogonal wavelets, wavefun works by reversing the Mallat algorithm. Specifically, the algorithm starts with a single wavelet or scaling coefficient at the coarsest resolution level and reconstructs the wavelet or scaling function to the specified finest resolution level. Generally, 8 to 10 levels is sufficient to get an accurate representation of the scaling function and wavelet.

[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');

Because there are more than twice the number of zeros at -1+i0 for the lowpass decomposition filter, the dual (reconstruction) scaling function and wavelet are much smoother than the analysis (decomposition) scaling function and wavelet.

Was this topic helpful?