Main Content

nextpow2

그다음으로 큰 2의 거듭제곱이 갖는 지수

설명

예제

P = nextpow2(A)A의 각 요소에 대해 다음을 충족하는 2의 최소 거듭제곱 지수를 반환합니다.

2p|A|

일반적으로, nextpow2(0)은 0을 반환합니다.

nextpow2를 사용하여 fft로 전달하는 신호를 채울 수 있습니다. 그렇게 하면 신호 길이가 정확한 2의 거듭제곱이 아닐 때 FFT의 계산 속도를 높일 수 있습니다.

예제

모두 축소

double형 정수 값으로 구성된 벡터를 정의하고 이러한 값보다 높은 2의 다음 거듭제곱에 대한 지수를 계산합니다.

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

     0     1     2     2     3     4    10

2의 양의 다음 거듭제곱을 계산합니다.

np2 = 2.^p
np2 = 1×7

           1           2           4           4           8          16        1024

원래 입력값의 부호를 유지합니다.

np2.*sign(a)
ans = 1×7

           1          -2           4          -4           8          16        1024

부호 없는 정수로 구성된 벡터를 정의하고, 이러한 값보다 큰 2의 다음 거듭제곱에 대한 지수를 계산합니다.

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

   10   12   15

a의 값보다 높은 2의 다음 거듭제곱을 계산합니다.

2.^p
ans = 1x3 uint32 row vector

    1024    4096   32768

신호 길이가 2의 거듭제곱이 아닐 때 nextpow2 함수를 사용하여 fft의 성능을 높이십시오.

8191개의 샘플 값이 포함되는 1차원 벡터를 만듭니다.

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

8191보다 높은 2의 다음 거듭제곱을 계산합니다.

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

신호와 2의 다음 거듭제곱을 fft 함수로 전달합니다.

y = fft(x,n);

입력 인수

모두 축소

입력값으로, 임의의 숫자형 실수로 구성된 스칼라, 벡터, 배열, 테이블 또는 타임테이블로 지정됩니다.

예: 15

예: [-15.123 32.456 63.111]

예: int16([-15 32 63])

데이터형: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | table | timetable

확장 기능

C/C++ 코드 생성
MATLAB® Coder™를 사용하여 C 코드나 C++ 코드를 생성할 수 있습니다.

GPU 코드 생성
GPU Coder™를 사용하여 NVIDIA® GPU용 CUDA® 코드를 생성할 수 있습니다.

버전 내역

R2006a 이전에 개발됨

모두 확장

참고 항목

| |