Fast Walsh–Hadamard transform

From Wikipedia, the free encyclopedia

The fast Walsh–Hadamard transform applied to a vector of length 8.
The fast Walsh–Hadamard transform applied to a vector of length 8.

In computational mathematics, the Hadamard ordered fast Walsh–Hadamard transform (FWHTh) is an efficient algorithm to compute the Walsh–Hadamard transform (WHT). A naive implementation of the WHT would have a computational complexity of O(N2). The FWHTh requires only NlogN additions or subtractions.

The FWHTh is a divide and conquer algorithm that recursively breaks down a WHT of size 2N into two smaller WHTs of size 2N − 1. This implementation follows the recursive definition of the N \times N Hadamard matrix HN:

H_N = \frac{1}{\sqrt 2} \begin{pmatrix} H_{N-1} & H_{N-1} \\ H_{N-1} & -H_{N-1} \end{pmatrix}.

The 1/\sqrt2 normalization factors for each stage may be grouped together or even omitted.

The Sequency ordered, also known as Walsh ordered, fast Walsh–Hadamard transform, FWHTw, is obtained by computing the FWHTh as above, and then rearranging the outputs.

[edit] References

  • Fino, B.J., and Algazi, V.R., 1976, "Unified Matrix Treatment of the Fast Walsh–Hadamard Transform," IEEE Transactions on Computers 25: 1142–1146.