1.1 Exploiting sample correlations 3
Inthe figure,the averagesarerepresentedonthesecondlineas apiecewise constant, just like the input, but the difference coefficients appear as two opposite blocks:every pair of two opposite blocks is one coefficient. This coefficient tells how farthe first data point was under the average of the pair and at the same time, howmuch the second data point was above this average. ‘Adding’ the left plot and theright one returns the input on top. This ‘adding’ is indeed the inverse operation:
¡©¢§¦¢¢¡¥¤§¦¢¢
The average signal is somehow a blurred version of the input. We can repeat thesame procedure on the averages again. Eventually, this operation decomposes theinput into one global average
plus
difference signal at several locations on theaxis and with different widths,
scales
, or
resolutions
. Since each step is invert-ible, the whole transform satisfies the
perfect reconstruction
property.This is calledthe
Haar
-transform, after Alfred Haar, who was the first to study it in 1910, longbefore the actual wavelet history began [45].As the Figure 1.1 illustrates, most of the difference coefficients are small. Thelargest coefficient appears at the location of the biggest ‘jump’ in the input signal.This is even more striking in the more realistic example of Figure 1.2. In this pic-ture, all coefficients are plotted on one line. Dashed lines indicate the boundariesbetween scales. Only a few coefficients are significant. They indicate the singular-ities (jumps) in the input. This
sparsity
is a common characteristic for all wavelettransforms. Wavelet transforms are said to have a
decorrelating property
.
0 200 400 600 800 1000 1200 1400 1600 1800 2000−2024681012
0 200 400 600 800 1000 1200 1400 1600 1800 2000−30−20−100102030
Figure 1.2.
Test signal (Left) and Haar transform (Right): all coeffi cients are plotted on oneline. Dashed lines indicate the boundaries between scales.
1.1.2 Basis functions and multiresolution
The input vector
can be seen as coefficients for a basis of characteristic functions(‘block’ functions), as shown on top of Figure 1.3: i.e. we can write the continuous