# bitrevorder

Permute data into bit-reversed order

## Syntax

``y = bitrevorder(x)``
``[y,i] = bitrevorder(x)``

## Description

example

````y = bitrevorder(x)` returns the input data in bit-reversed order.```
````[y,i] = bitrevorder(x)` also returns the bit-reversed indices, `i`, such that ```y = x(i)```.```

## Examples

collapse all

Create a column vector and obtain its bit-reversed version. Verify by displaying the binary representation explicitly.

```x = (0:15)'; v = bitrevorder(x); x_bin = dec2bin(x); v_bin = dec2bin(v); T = table(x,x_bin,v,v_bin)```
```T=16×4 table x x_bin v v_bin __ _____ __ _____ 0 0000 0 0000 1 0001 8 1000 2 0010 4 0100 3 0011 12 1100 4 0100 2 0010 5 0101 10 1010 6 0110 6 0110 7 0111 14 1110 8 1000 1 0001 9 1001 9 1001 10 1010 5 0101 11 1011 13 1101 12 1100 3 0011 13 1101 11 1011 14 1110 7 0111 15 1111 15 1111 ```

## Input Arguments

collapse all

Input data, specified as a vector or matrix. The length or number of rows of `x` must be an integer power of 2. If `x` is a matrix, the bit-reversal occurs on the first dimension of `x` with size greater than 1.

Data Types: `single` | `double`
Complex Number Support: Yes

## Output Arguments

collapse all

Bit-reversed data, returned as a vector or matrix. `y` is the same size as `x`.

Bit-reversed indices, returned as a vector or matrix such that ```y = x(i)```. MATLAB® matrices use 1-based indexing, so the first index of `y` is 1, not 0.

collapse all

### Bit-Reversed Ordering

`bitrevorder` is useful for prearranging filter coefficients so that bit-reversed ordering does not have to be performed as part of an `fft` or `ifft` computation.

Bit-reversed ordering can improve run-time efficiency for external applications or for Simulink® blockset models. Both MATLAB `fft` and `ifft` functions process linear input and output.

Note

Using `bitrevorder` is equivalent to using `digitrevorder` with radix base 2.

This table shows the numbers 0 through 7, the corresponding bits, and the bit-reversed numbers.

Linear Index

Bits

Bit-Reversed

Bit-Reversed Index

0

000

000

0

1

001

100

4

2

010

010

2

3

011

110

6

4

100

001

1

5

101

101

5

6

110

011

3

7

111

111

7