Fast Walsh-Hadamard transform
y = fwht(x)
y = fwht(x,n)
y = fwht(x,n,ordering)
y = fwht(x) returns the coefficients of
the discrete Walsh-Hadamard transform of the input
x is a matrix, the FWHT is calculated on each
x. The FWHT operates only on signals
with length equal to a power of 2. If the length of
less than a power of 2, its length is padded with zeros to the next
greater power of two before processing.
y = fwht(x,n) returns the
discrete Walsh-Hadamard transform, where
be a power of 2.
be the same length. If
x is longer than
x is shorter than
padded with zeros.
y = fwht(x,n,ordering) specifies the ordering
to use for the returned Walsh-Hadamard transform coefficients. To
specify the ordering, you must enter a value for the length
to use the default behavior, specify an empty vector (
n. Valid values for the ordering are the following:
|Coefficients in order of increasing sequency value, where each row has an additional zero crossing. This is the default ordering.|
|Coefficients in normal Hadamard order.|
|Coefficients in Gray code order, where a single bit change occurs from one coefficient to the next.|
For more information on the Walsh functions and ordering, see Walsh-Hadamard Transform.
This example shows a simple input signal and its Walsh-Hadamard transform.
x = [19 -1 11 -9 -7 13 -15 5]; y = fwht(x)
y = 1×8 2 3 0 4 0 0 10 0
y contains nonzero values at locations 0, 1, 3, and 6. Form the Walsh functions with the sequency values 0, 1, 3, and 6 to recreate x.
w0 = [1 1 1 1 1 1 1 1]; w1 = [1 1 1 1 -1 -1 -1 -1]; w3 = [1 1 -1 -1 1 1 -1 -1]; w6 = [1 -1 1 -1 -1 1 -1 1]; w = y(0+1)*w0 + y(1+1)*w1 + y(3+1)*w3 + y(6+1)*w6
w = 1×8 19 -1 11 -9 -7 13 -15 5
The fast Walsh-Hadamard transform algorithm is similar to the Cooley-Tukey algorithm used for the FFT. Both use a butterfly structure to determine the transform coefficients. See the references for details.
 Beauchamp, Kenneth G. Applications of Walsh and Related Functions: With an Introduction to Sequency Theory. London: Academic Press, 1984.
 Beer, Tom. “Walsh Transforms.” American Journal of Physics. Vol. 49, 1981, pp. 466–472.