haar_transform


haar_transform, a MATLAB code which computes the Haar transform of data.

In the simplest case, one is given a vector X whose length N is a power of 2. We now consider consecutive pairs of entries of X, and for I from 0 to (N/2)-1 we define:

        S[I] = ( X[2*I] + X[2*I+1] ) / sqrt ( 2 )
        D[I] = ( X[2*I] - X[2*I+1] ) / sqrt ( 2 )
      
We now replace X by the vector S concatenated with D. Assuming that (N/2) is greater than 1, we repeat the operation on the (N/2) entries of S, and so on, until we have reached a stage where our resultant S and D each contain one entry.

For data in the form of a 2D array, the transform is applied to the columns and then the rows.

Thanks to comments by Stephen Becker, the code has been modified so that the haar_1d() and haar_1d_inverse(), and haar_2d() and haar_2d_inverse() functions will be proper inverses of each other even in the case when the vector or matrix dimensions are NOT powers of 2.

Licensing:

The information on this web page is distributed under the MIT license.

Languages:

haar_transform is available in a C version and a C++ version and a Fortran90 version and a MATLAB version and an Octave version and a Python version.

Related Data and Programs:

haar_transform_test

cosine_transform, a MATLAB code which demonstrates some simple properties of the discrete cosine transform (DCT).

joukowsky_transform, a MATLAB code which applies the Joukowsky transform to data, mapping between a circle in the complex plane and various airfoil shapes.

sftpack, a MATLAB code which implements the "slow" Fourier transform, intended as a teaching tool and comparison with the fast Fourier transform.

sine_transform, a MATLAB code which demonstrates some simple properties of the discrete sine transform.

walsh_transform, a MATLAB code which implements versions of the Walsh and Haar transforms.

wavelet, a MATLAB code which does some simple wavelet calculations;

Reference:

  1. Ken Beauchamp,
    Walsh functions and their applications,
    Academic Press, 1975,
    ISBN: 0-12-084050-2,
    LC: QA404.5.B33.

Source Code:


Last modified on 27 January 2019.