Main Content

이 번역 페이지는 최신 내용을 담고 있지 않습니다. 최신 내용을 영문으로 보려면 여기를 클릭하십시오.

ifft

고속 푸리에 역변환(Inverse Fast Fourier Transform)

설명

예제

X = ifft(Y)는 고속 푸리에 변환 알고리즘을 사용하여 Y이산 푸리에 역변환을 계산합니다. XY와 크기가 같습니다.

  • Y가 벡터인 경우 ifft(Y)는 그 벡터의 역 변환을 반환합니다.

  • Y가 행렬인 경우, ifft(Y)는 행렬의 각 열에 대한 역 변환을 반환합니다.

  • Y가 다차원 배열인 경우 ifft(Y)는 크기가 1이 아닌 첫 번째 차원의 값을 벡터로 취급하고 각 벡터의 역 변환을 반환합니다.

예제

X = ifft(Y,n)은 길이 n까지 Y에 후행 0을 채워 Yn점 푸리에 역변환(N-point Inverse Fourier Transform)을 반환합니다.

예제

X = ifft(Y,n,dim)은 차원 dim을 따라 푸리에 역변환을 반환합니다. 예를 들어, Y가 행렬인 경우 ifft(Y,n,2)는 각 행의 n점 푸리에 역변환을 반환합니다.

예제

X = ifft(___,symflag)는 위에 열거된 구문에 나와 있는 입력 인수 조합 중 하나 외에 Y의 대칭성을 지정합니다. 예를 들어, ifft(Y,'symmetric')Y를 켤레 대칭으로 처리합니다.

예제

모두 축소

푸리에 변환과 이 변환의 역은 시공간에서 샘플링된 데이터와 주파수로 샘플링된 데이터 간에 변환을 수행합니다.

벡터를 만든 다음, 이 벡터의 푸리에 변환을 계산합니다.

X = [1 2 3 4 5];
Y = fft(X)
Y = 1×5 complex

  15.0000 + 0.0000i  -2.5000 + 3.4410i  -2.5000 + 0.8123i  -2.5000 - 0.8123i  -2.5000 - 3.4410i

Y의 역 변환을 계산합니다. 이 역 변환은 원래 벡터 X와 같습니다.

ifft(Y)
ans = 1×5

     1     2     3     4     5

ifft 함수를 사용하면 변환의 크기를 제어할 수 있습니다.

임의의 3×5 행렬을 만들고 각 행의 8점 푸리에 역변환을 계산합니다. 결과값에서 각 행의 길이는 8입니다.

Y = rand(3,5);
n = 8;
X = ifft(Y,n,2);
size(X)
ans = 1×2

     3     8

벡터가 거의 켤레 대칭인 경우, 'symmetric' 옵션을 지정하면 푸리에 역변환을 더 빨리 계산할 수 있습니다. 이 옵션은 출력값이 실수가 되도록 보장하기도 합니다. 계산에서 반올림 오차가 야기되는 경우 거의 켤레 대칭인 데이터가 발생할 수 있습니다.

거의 켤레 대칭인 벡터 Y를 만들고 이 벡터의 푸리에 역변환을 계산합니다. 그런 다음 거의 0에 가까운 허수부를 제거하는 'symmetric' 옵션을 지정하여 역 변환을 계산합니다.

Y = [1 2:4+eps(4) 4:-1:2]
Y = 1×7

    1.0000    2.0000    3.0000    4.0000    4.0000    3.0000    2.0000

X = ifft(Y)
X = 1×7 complex

   2.7143 + 0.0000i  -0.7213 + 0.0000i  -0.0440 - 0.0000i  -0.0919 + 0.0000i  -0.0919 - 0.0000i  -0.0440 + 0.0000i  -0.7213 - 0.0000i

Xsym = ifft(Y,'symmetric')
Xsym = 1×7

    2.7143   -0.7213   -0.0440   -0.0919   -0.0919   -0.0440   -0.7213

입력 인수

모두 축소

입력 배열로, 벡터, 행렬 또는 다차원 배열로 지정됩니다. Ysingle형인 경우 ifft는 기본적으로 단정밀도로 계산되며 X 또한 single형이 됩니다. 그렇지 않으면, Xdouble형으로 반환됩니다.

데이터형: double | single | int8 | int16 | int32 | uint8 | uint16 | uint32 | logical
복소수 지원 여부:

역 변환 길이로, [] 또는 음이 아닌 정수 스칼라로 지정됩니다. Y의 길이보다 큰 변환 길이를 지정하여 Y를 0으로 채우면 ifft의 성능을 향상시킬 수 있습니다. 이 길이는 일반적으로 2의 거듭제곱으로 지정되거나 작은 소수의 곱으로 지정됩니다. n이 신호의 길이보다 작은 경우 ifftn번째 요소 이후의 나머지 신호 값을 무시하고 잘린 결과를 반환합니다. n이 0인 경우 ifft는 빈 행렬을 반환합니다.

데이터형: double | single | int8 | int16 | int32 | uint8 | uint16 | uint32 | logical

연산을 수행할 차원으로, 양의 정수 스칼라로 지정됩니다. 기본적으로 dim은 크기가 1이 아닌 첫 번째 배열 차원입니다. 예를 들어, 행렬 Y가 있다고 가정합니다.

  • ifft(Y,[],1)은 각 열의 푸리에 역변환을 반환합니다.

    ifft(Y,[],1) column-wise operation

  • ifft(Y,[],2)는 각 행의 푸리에 역변환을 반환합니다.

    ifft(Y,[],2) row-wise operation

데이터형: double | single | int8 | int16 | int32 | uint8 | uint16 | uint32 | logical

대칭 유형으로, 'nonsymmetric'이나 'symmetric'으로 지정됩니다. 반올림 오차로 인해 Y가 완전한 켤레 대칭이 아니어도 ifft(Y,'symmetric')은 Y 요소의 두 번째 절반(음수 주파수 스펙트럼에 있음)을 무시하여 Y가 켤레 대칭인 것처럼 처리합니다. 켤레 대칭에 대한 자세한 내용은 알고리즘 항목을 참조하십시오.

세부 정보

모두 축소

벡터의 이산 푸리에 변환

Y = fft(X)는 푸리에 변환을 구현하고 X = ifft(Y)는 푸리에 역변환을 구현합니다. 이 변환은 길이 nXY에 대해 다음과 같이 정의됩니다.

Y(k)=j=1nX(j)Wn(j1)(k1)X(j)=1nk=1nY(k)Wn(j1)(k1),

여기서

Wn=e(2πi)/n

은 n개의 단위근 중 하나입니다.

알고리즘

  • ifft 함수는 Y의 벡터가 켤레 대칭인지 여부를 테스트합니다. Y의 벡터가 켤레 대칭이면 역 변환 계산 속도가 더 빠르고 출력값은 실수가 됩니다.

    함수 g(a)g(a)=g*(a)인 경우 켤레 대칭입니다. 하지만 시간 영역 신호의 고속 푸리에 변환에서 스펙트럼의 절반은 양의 주파수이고, 나머지 절반은 음의 주파수입니다. 이때 첫 번째 요소는 영주파수에 사용되도록 예약됩니다. 이런 이유로 v(2:end)conj(v(end:-1:2))와 같을 경우 벡터 v는 켤레 대칭입니다.

확장 기능

버전 내역

R2006a 이전에 개발됨

참고 항목

| | | |