이 페이지의 최신 내용은 아직 번역되지 않았습니다. 최신 내용은 영문으로 볼 수 있습니다.

ifft

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

구문

X = ifft(Y)
X = ifft(Y,n)
X = ifft(Y,n,dim)
X = ifft(___,symflag)

설명

예제

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 함수를 사용하면 변환의 크기를 제어할 수 있습니다.

임의의 3x5 행렬을 만들고 각 행의 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,[],2)는 각 행의 역 푸리에 변환을 반환합니다.

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

대칭 유형으로, 'nonsymmetric'이나 'symmetric'으로 지정됩니다. 반올림 오차로 인해 Y가 완전한 켤레 대칭이 아니어도 ifft(Y,'symmetric')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의 벡터가 켤레 대칭인지 여부를 테스트합니다. 벡터 vconj(v([1,end:-1:2]))와 같은 경우 켤레 대칭입니다. Y의 벡터가 켤레 대칭이면 역 변환 계산 속도가 더 빠르고 출력값은 실수가 됩니다.

확장 기능

참고 항목

| | | |

R2006a 이전에 개발됨