주요 콘텐츠

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

ifftn

다차원 고속 푸리에 역변환(Multidimensional Inverse Fast Fourier Transform)

설명

X = ifftn(Y)는 고속 푸리에 변환 알고리즘을 사용하여 N차원 배열의 다차원 이산 푸리에 역변환을 반환합니다. N차원 역변환은 Y의 각 차원에서 1차원 역변환을 계산하는 것과 같습니다. 출력 인수 XY와 크기가 동일합니다.

예제

X = ifftn(Y,sz)는 벡터 sz의 요소에 따라 역변환을 계산하기 전에 Y를 자르거나 Y를 후행 공백으로 채웁니다. sz의 각 요소는 해당 변환 차원의 길이를 정의합니다. 예를 들어, Y가 5×5×5 배열이면 X = ifftn(Y,[8 8 8])은 각 차원을 0으로 채워 8×8×8 역변환 X를 만듭니다.

예제

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

예제

예제

모두 축소

ifftn 함수를 사용하여 주파수로 샘플링된 다차원 데이터를 시공간에서 샘플링된 데이터로 변환할 수 있습니다. ifftn 함수를 사용하면 변환의 크기도 제어할 수 있습니다.

3×3×3 배열을 만들고 이 배열의 푸리에 역변환을 계산합니다.

Y = rand(3,3,3);
ifftn(Y);

Y의 차원에 후행 0을 채워 변환의 크기가 8×8×8이 되게 합니다.

X = ifftn(Y,[8 8 8]);
size(X)
ans = 1×3

     8     8     8

배열이 거의 켤레 대칭인 경우, 'symmetric' 옵션을 지정하면 푸리에 역변환을 더 빨리 계산할 수 있습니다. 이 옵션은 출력값이 실수가 되도록 보장하기도 합니다.

거의 켤레 대칭인 배열의 3차원 푸리에 역변환을 계산합니다.

Y(:,:,1) = [1e-15*i 0; 1 0];
Y(:,:,2) = [0 1; 0 1];
X = ifftn(Y,'symmetric')
X = 
X(:,:,1) =

    0.3750   -0.1250
   -0.1250   -0.1250


X(:,:,2) =

   -0.1250    0.3750
   -0.1250   -0.1250

입력 인수

모두 축소

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

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

역변환 차원의 길이로, 양의 정수로 구성된 벡터로 지정됩니다.

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

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

세부 정보

모두 축소

알고리즘

  • ifftn 함수는 다차원 배열 Y가 켤레 대칭인지 테스트합니다. Y가 켤레 대칭이면 역변환 계산 속도가 더 빠르고 출력값은 실수가 됩니다.

    함수 g(a,b,c,...)g(a,b,c,...)=g*(a,b,c,...)인 경우 켤레 대칭입니다. 하지만 다차원 시간 영역 신호의 고속 푸리에 변환에서 스펙트럼의 절반은 양의 주파수이고 나머지 절반은 음의 주파수입니다. 이때 첫 번째 행, 열, 페이지 등은 영주파수용으로 예약됩니다. 이런 이유로 다음 모든 조건이 충족되는 경우 3차원 배열 Y는 켤레 대칭입니다.

    • Y(1,1,2:end)가 켤레 대칭, 즉 Y(1,1,2:end) = conj(Y(1,1,end:-1:2))

    • Y(1,2:end,1)이 켤레 대칭, 즉 Y(1,2:end,1) = conj(Y(1,end:-1:2,1))

    • Y(2:end,1,1)이 켤레 대칭, 즉 Y(2:end,1,1) = conj(Y(end:-1:2,1,1))

    • Y(1,2:end,2:end)가 켤레 중심대칭, 즉 Y(1,2:end,2:end) = conj(Y(1,end:-1:2,end:-1:2))

    • Y(2:end,1,2:end)가 켤레 중심대칭, 즉 Y(2:end,1,2:end) = conj(Y(end:-1:2,1,end:-1:2))

    • Y(2:end,2:end,1)이 켤레 중심대칭, 즉 Y(2:end,2:end,1) = conj(Y(end:-1:2,end:-1:2,1))

    • Y(2:end,2:end,2:end)가 켤레 중심대칭, 즉 Y(2:end,2:end,2:end) = conj(Y(end:-1:2,end:-1:2,end:-1:2))

확장 기능

모두 확장

버전 내역

R2006a 이전에 개발됨

참고 항목

| | | |