# Where is the mother wavelet defined in the Fast Wavelet Transform?

Referring to the Fast Wavelet Transform, this transform is implemented as a QMF filter bank. This algorithm consists of high/low pass filtering and subsampling. However, a wavelet transform is typically defined by the mother wavelet - the master basis function that is shifted and scaled.

How exactly does this fast wavelet transform define the mother wavelet? I don't see any mentioning of it.

• @LaurentDuval I appreciate it. I want to believe the mother wavelet is defined by the filter pairs but don't have any understanding as to why.
– Izzo
Nov 9, 2020 at 1:48

TL;DR: the wavelet appears at the end of the synthesis filter bank, iterated infinitely.

Theoretically founded, practical and fast DSP tools are often derived from continuous theory: think about how the DFT is derived from the continuous Fourier transform, by discretizing both in time (like the Discrete-time Fourier transform) and frequency (like Fourier series), which are dual variables.

For a function $$\psi(t)$$ to be a wavelet, very few conditions (admissibility) are required. However, discretizing the complementary shift and scale parameters $$(a,b)$$ of $$\psi\left(\frac{t-b}{a}\right)$$ is more complicated if one want to remain invertible. And even more complicated to obtain a discrete orthogonal basis.

In other words: apart from a handful of well-known cases (Haar, Shannon, Meyer wavelets), if one have a closed-form formula of a nice admissible continuous wavelet, it is VERY unlikely that it can be discretized as a discrete orthogonal wavelet.

The filter bank structure does the job the other way around. If we assume an orthogonal multiresolution framework, we see that an iterated bank of carefully-designed filters can produce a wavelet analysis. Which wavelet? Theoretically, from a two-scale equation, which generally has no closed-form solution.

You can obtain a good approximation of the wavelet shape with the following procedure. Pick a level $$L$$. In the deepest detail subband (near the approximation), put a one, and zero elsewhere. Then, do the inverse wavelet transform. The highest the level, the better the approximation.Here is an example with a very q&d code.

dwtmode per
nSample = 1024;
data = zeros(nSample,1);
waveletName  = 'db3';
for iLevel = 2:7
[C,L]=wavedec(data,iLevel,waveletName);
C(L(1)+(L(2)+L(3))/2) = 1;
% C((L(1))/2) = 1;
waveletAtLevel = waverec(C,L,waveletName);
subplot(2,3,iLevel-1)
plot(waveletAtLevel(find(waveletAtLevel)));axis tight;grid on ;
xlabel(['At level ',num2str(iLevel)])
end