gives the discrete Hadamard transform of list.

# Details and Options

• DiscreteHadamardTransform is also known as the Walsh transform and WalshHadamard transform.
• The discrete Hadamard transform of a list of length is by default defined to be , where , is the bit in the binary representation of the integer , and .
• DiscreteHadamardTransform returns a list whose length is a power of 2. If the length of the input list is not a power of 2, it is zero padded to a length that is the smallest power of 2 greater than .
• DiscreteHadamardTransform takes a Method option, which specifies the sequency ordering (number of zero crossings in the Hadamard basis sequences) of the transform. Possible settings include:
•  "BitComplement" "GrayCode" Gray code reordering of "BitComplement" "Sequency" sequency increases with row and column index (default)
• The bit complement ordering is also known as the Sylvester ordering.
• The sequency ordering is also known as the Walsh ordering.
• The Gray code ordering is also known as the dyadic ordering or Paley ordering.
• The forward and inverse Hadamard transforms are identical. »

# Examples

open allclose all

## Basic Examples(2)

Discrete Hadamard transform of a list:

Discrete Hadamard transform of a 2D sequence that depicts a white rectangle on a black background:

## Options(1)

### Method(1)

By default, a sequency-ordered Hadamard transform is used:

Use the bit complement ordering for the Hadamard transform:

Use the Gray code ordering for the Hadamard transform:

## Applications(1)

The two-dimensional Hadamard transform of an image:

Truncate modes in each axis, effectively compressing by a factor of :

## Properties & Relations(3)

The discrete Hadamard transform is its own inverse (an involution):

Define a function for generating a bit-reversal permutation:

Define a function for generating a Gray code permutation:

Generate random data, and take its discrete Hadamard transform for different sequency orderings:

The Hadamard transform with Gray code ordering is equivalent to applying the Gray code permutation to the Hadamard transform with bit-complement sequency ordering:

The Hadamard transform with sequency ordering is equivalent to applying the bit-reversal permutation to the Hadamard transform with Gray code ordering:

The Hadamard transform with sequency ordering is equivalent to successively applying the bit-reversal permutation and Gray code permutation to the Hadamard transform with bit-complement sequency ordering:

## Neat Examples(1)

Compare the discrete Hadamard transform with DCT: