# Documentation

### This is machine translation

Translated by
Mouse over text to see original. Click the button below to return to the English verison of the page.

# fwht

Fast Walsh-Hadamard transform

## Syntax

`y = fwht(x)y = fwht(x,n)y = fwht(x,n,ordering)`

## Description

`y = fwht(x)` returns the coefficients of the discrete Walsh-Hadamard transform of the input `x`. If `x` is a matrix, the FWHT is calculated on each column of `x`. The FWHT operates only on signals with length equal to a power of 2. If the length of `x` is 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 `n`-point discrete Walsh-Hadamard transform, where `n` must be a power of 2. `x` and `n` must be the same length. If `x` is longer than `n`, `x` is truncated; if `x` is shorter than `n`, `x` is 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 `n` or, to use the default behavior, specify an empty vector (`[]`) for `n`. Valid values for the ordering are the following:

OrderingDescription
`'sequency'`Coefficients in order of increasing sequency value, where each row has an additional zero crossing. This is the default ordering.
`'hadamard'`Coefficients in normal Hadamard order.
`'dyadic'`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.

## Examples

collapse all

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 = 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 = 19 -1 11 -9 -7 13 -15 5 ```

## More About

collapse all

### Algorithms

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.

## References

[1] Beauchamp, Kenneth G. Applications of Walsh and Related Functions: With an Introduction to Sequency Theory. London: Academic Press, 1984.

[2] Beer, Tom. "Walsh Transforms." American Journal of Physics. Vol. 49, 1981, pp. 466–472.

## See Also

#### Introduced in R2008b

Was this topic helpful?

#### Accelerate 5G Wireless Development with Hardware Testbeds

Download the white paper