Main Content

nextpow2

Exponent of next higher power of 2

Description

example

P = nextpow2(A)returns the exponents for the smallest powers of two that satisfy

2 p | A |

for each element inA. By convention,nextpow2(0)returns zero.

You can usenextpow2to pad the signal you pass tofft. 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 ofdoubleinteger 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×70 1 2 2 3 4 10

Calculate the positive next powers of 2.

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

Preserve the sign of the original input values.

np2.*sign(a)
ans =1×71 -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 vector10 12 15

Calculate the next powers of 2 higher than the values ina.

2.^p
ans =1x3 uint32 row vector1024 4096 32768

Use thenextpow2function to increase the performance offftwhen the length of a signal is not a power of 2.

Create a 1-D vector containing 8191 sample values.

rngdefault; 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 thefftfunction.

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

Extended Capabilities

C/C++ Code Generation
Generate C and C++ code using MATLAB® Coder™.

GPU Code Generation
Generate CUDA® code for NVIDIA® GPUs using GPU Coder™.

版本嗨story

Introduced before R2006a

See Also

||