# nextpow2

Exponent of next higher power of 2

## Syntax

``P = nextpow2(A)``

## Description

example

````P = nextpow2(A)` returns the exponents for the smallest powers of two that satisfy ${2}^{p}\ge |A|$for each element in `A`. By convention, `nextpow2(0)` returns zero.You can use `nextpow2` to pad the signal you pass to `fft`. Doing so can speed up the computation of the FFT when the signal length is not an exact power of 2.```

## Examples

collapse all

Define a vector of `double` integer values and calculate the exponents for the next power of 2 higher than those values.

```a = [1 -2 3 -4 5 9 519]; p = nextpow2(a)```
```p = 1×7 0 1 2 2 3 4 10 ```

Calculate the positive next powers of 2.

`np2 = 2.^p`
```np2 = 1×7 1 2 4 4 8 16 1024 ```

Preserve the sign of the original input values.

`np2.*sign(a)`
```ans = 1×7 1 -2 4 -4 8 16 1024 ```

Define a vector of unsigned integers and calculate the exponents for the next power of 2 higher than those values.

```a = uint32([1020 4000 32700]); p = nextpow2(a)```
```p = 1x3 uint32 row vector 10 12 15 ```

Calculate the next powers of 2 higher than the values in `a`.

`2.^p`
```ans = 1x3 uint32 row vector 1024 4096 32768 ```

Use the `nextpow2` function to increase the performance of `fft` when the length of a signal is not a power of 2.

Create a 1-D vector containing 8191 sample values.

```rng default; x = rand([1,8191]);```

Calculate the next power of 2 higher than 8191.

```p = nextpow2(8191); n = 2^p```
```n = 8192 ```

Pass the signal and the next power of 2 to the `fft` function.

`y = fft(x,n);`

## Input Arguments

collapse all

Input values, specified as a scalar, vector, or array of real numbers of any numeric type.

Example: `15`

Example: ```[-15.123 32.456 63.111]```

Example: ```int16([-15 32 63])```

Data Types: `single` | `double` | `int8` | `int16` | `int32` | `int64` | `uint8` | `uint16` | `uint32` | `uint64`