이산시간 푸리에 변환

이산시간 푸리에 변환(Discrete-time Fourier transform, DTFT)은 푸리에 변환의 일종이다. 따라서, 시간 도메인 영역의 함수를 주파수 도메인의 함수로 변환한다. DTFT에서 변환전의 원래 함수는 이산적인 값의 수열인데, 이러한 이산수열은 연속함수의 샘플링에 의하여 생성된다. DTFT의 주파수 도메인에서의 표현은 항상 주기적인 함수이다. 따라서 하나의 주기에 필요한 정보가 모두 포함되어 있으므로 DTFT를 "유한" 주파수 영역으로의 변환으로 부르기도 한다. 실수 또는 복소수의 이산집합  x [ n ] , n ∈ Z {\displaystyle x[n],\;n\in \mathbb {Z} } (정수)가 주어졌을 때,  x [ n ] {\displaystyle x[n]\,} 의 이산시간 푸리에 변환(DTFT)은 다음과 같이 표시된다. X ( ω ) = ∑ n = − ∞ ∞ x [ n ] e − i ω n {\displaystyle X(\omega )=\sum _{n=-\infty }^{\infty }x[n]\,e^{-i\omega n}} 이름이 암시하듯이, {x[n]}은 연속시간함수  x ( t ) {\displaystyle x(t)\,} 의 표본 값을 나타낸다. 이 샘플링 간격을  T {\displaystyle T\,} 로 할 때, 각 표본 값의 샘플링 시간 t = n T {\displaystyle t=nT\quad } 이고, 1 / T = f s {\displaystyle 1/T=f_{s}\,} 가 샘플링 주파수가 된다. DTFT은 아래의 연속시간 푸리에 변환과 유사하다. X ( f ) = ∫ − ∞ ∞ x ( t ) ⋅ e − i 2 π f t d t {\displaystyle X(f)=\int _{-\infty }^{\infty }x(t)\cdot e^{-i2\pi ft}\,dt} 샘플링 정리에서 나타나듯이, 다음과 같은 콤 함수(comb function) 변조에 x ( n T ) {\displaystyle x(nT)\,} 의 값을 사용하는 것으로도 볼 수 있다. Δ T ( t ) = T ∑ n = − ∞ ∞ δ ( t − n T )   {\displaystyle \Delta _{T}(t)=T\sum _{n=-\infty }^{\infty }\delta (t-nT)\ } 이 경우 얻어지는 함수의 푸리에 변환은, f s {\displaystyle f_{s}\,} 의 간격으로 중첩된  X ( f ) {\displaystyle X(f)\,} 의 복사본의 총합이 된다. X T ( f ) = ∑ k = − ∞ ∞ X ( f − k f s ) {\displaystyle X_{\mathrm {T} }(f)=\sum _{k=-\infty }^{\infty }X(f-{kf_{s}})} 아래에서 보이듯이, 이것은 주기함수의 DTFT이다. 그리고 어떤 명백한 조건하에서 k=0 항에서는 다른 항으로부터의 왜곡(위신호, 앨리아싱)이 거의 관측되지 않는다.  변조된 콤 함수(comb function)는 아래와 같다. x T ( t ) = T ∑ n = − ∞ ∞ x ( n T ) δ ( t − n T ) {\displaystyle x_{\mathrm {T} }(t)=T\sum _{n=-\infty }^{\infty }x(nT)\,\delta (t-nT)} 따라서, 이때 아래와 같은 관계가 성립한다. x [ n ] = T ⋅ x ( n T ) {\displaystyle x[n]=T\cdot x(nT)\,} ω = 2 π f T = 2 π ( f f s ) {\displaystyle \omega =2\pi fT=2\pi \left({\frac {f}{f_{s}}}\right)\,} 즉  X T ( f ) {\displaystyle X_{\mathrm {T} }(f)\,} 는 X ( ω ) {\displaystyle X(\omega )\,} 와 같다. 여기서,  f {\displaystyle f\,} 는 통상의 주파수(단위 시간당 또는 사이클의 수)이고,  f s {\displaystyle f_{s}\,} 는 샘플링 주파수(단위 시간당의 표본수)이므로,  f / f s {\displaystyle f/f_{s}\,} 는 "표본당의 주파수"를 의미한다. 이것을 정규화 주파수(normalized frequency)라고 한다. 위에서 정의된   ω {\displaystyle \omega \,} 도 정규화 주파수이자만, 여기서의 단위는 "표본당 라디안"이다. 정규화 주파수는 기간  2 π {\displaystyle 2\pi } 의 주기성을 가지는 함수 x ( ω ) {\displaystyle x(\omega )} 로 표현되는 특징이 있다.  이 때문에, 역변환에서는 2 π {\displaystyle 2\pi } 의 기간에서만 값을 구하여도 된다. x ( t ) {\displaystyle x(t)\,} 의 샘플링에 의하여 이산시간 푸리에 변환의 스펙트럼(DTFT)은 주기적으로 된다. 통상의 주파수 f {\displaystyle f\,} (단위 시간당의 주기수)에서 그 주기는 샘플링 주파수 f s {\displaystyle f_{s}\,} 이다. 정규화 주파수 f / f s {\displaystyle f/f_{s}\,} (표본당 주기수)에서는 그 주기는   1 {\displaystyle 1} 이다. ω {\displaystyle \omega \,} (샘플당 라디안)에서, 그 주기는  2 π {\displaystyle 2\pi } 이고, e − i ω n {\displaystyle e^{-i\omega n}\,} 의 주기성을 직접 따른다. 즉, e − i ( ω + 2 π k ) n = e − i ω n {\displaystyle e^{-i(\omega +2\pi k)n}=e^{-i\omega n}\,} 이고, 여기서 n, k는 임의의 정수이다. 따라서, X ( ω + 2 π k ) = X ( ω ) {\displaystyle X(\omega +2\pi k)=X(\omega )\,} 로 된다. DTFT X ( ω ) {\displaystyle X(\omega )\,} 의 다른 표기 X ( e i ω ) {\displaystyle X(e^{i\omega })\,} 는 아래의 특징이 있다. 주기성을 강조하고 있다. DTFT와 원래 x ( t ) {\displaystyle x(t)\,} 의 푸리에 변환 X ( f ) {\displaystyle X(f)\,} （또는 X ( ω ) {\displaystyle X(\omega )\,} ）과의 차이를 명확하게 한다. DTFT 와 Z-변환 과의 관계를 강조하고 있다. 다만, 실제는 주파수 영역의 방법으로 DTFT를 형성한 때에는 그 유사성이 불명확하게 된다. 따라서 아래 표에서도 사용하고 있듯이 X ( ω ) {\displaystyle X(\omega )\,} 의 표기도 사용한다. 다음과 같은 역변환에 의하여 원래의 이산시간 시퀀스를 복원 할 수 있다. 적분구간은 DTFT의 1주기 전체로, 이것은 {x[n]}의 표본군이 DTFT 의 푸리에 급수 전개의 계수로도 된다는 것을 보여주고 있다. 무한구간의 적분에서는 이 변환이 통상의 푸리에 변환의 역변환으로 되어, 디랙의 델타 함수도 복원된다. 즉 아래와 같이 된다. ∫ − ∞ ∞ X T ( f ) ⋅ e i 2 π f t d f   =   x T ( t )   =   ∑ n = − ∞ ∞ x [ n ] ⋅ δ ( t − n T ) {\displaystyle \int _{-\infty }^{\infty }X_{T}(f)\cdot e^{i2\pi ft}\,df\ =\ x_{T}(t)\ =\ \sum _{n=-\infty }^{\infty }x[n]\cdot \delta (t-nT)} DTFT의 수치해석에서는 유한 시퀀스가 명확하게 필요하다. 실제로는 긴 시퀀스가 구형파의 창문함수로 수정되어 아래와 같이 된다. X ( ω ) = ∑ n = 0 L − 1 x [ n ] e − i ω n {\displaystyle X(\omega )=\sum _{n=0}^{L-1}x[n]\,e^{-i\omega n}\,} ,   여기서 L {\displaystyle L\,} 은 수정된 시퀀스의 길이이다. 이것은 수정 전 시퀀스에 대한 스펙트럼의 편리한 근사치로 사용된다. 이것에 의하여 해상도가 나쁘게 되지만, L 을 증가시켜 개선할 수 있다. X ( ω ) {\displaystyle X(\omega )} 를 (2π)의 1주기상에 일정하게 분포하는 임의의 ( N ) {\displaystyle (N)} 개의 주파수로 평가하는 것이 일반적이다. ω k = 2 π N k {\displaystyle \omega _{k}={\frac {2\pi }{N}}k\,} ,     여기서 k = 0 , 1 , … , N − 1 {\displaystyle k=0,1,\dots ,N-1\,} 따라서, 다음과 같이 얻어진다. X [ k ] = X ( ω k ) = ∑ n = 0 L − 1 x [ n ] e − i 2 π k N n {\displaystyle X[k]=X(\omega _{k})=\sum _{n=0}^{L-1}x[n]\,e^{-i2\pi {\frac {k}{N}}n}} N ≥ L {\displaystyle N\geq L\,} 일때, 다음과 같이 나타낸다. X [ k ] = ∑ n = 0 N − 1 x [ n ] e − i 2 π k N n {\displaystyle X[k]=\sum _{n=0}^{N-1}x[n]\,e^{-i2\pi {\frac {k}{N}}n}} ,   왜냐하면 n ≥ L {\displaystyle n\geq L\,} 에 대하여 x [ n ] = 0 {\displaystyle x[n]=0\,} 로 정의되기 때문이다. 이와 같이 변형하면, X [ k ] {\displaystyle X[k]\,} 시퀀스는 이산 푸리에 변환(DFT)으로 된다. N {\displaystyle N} 은 DTFT를 샘플링할 때의 해상도로 정의되고, L {\displaystyle L} 은 DTFT 자체의 고유해상도이다. 따라서, 통상 이것은 거의 동일한 값이다. N > L {\displaystyle N>L} 을 선택하는 것이 일반적이지만, 값이 0인 항을 총합에 포함하는 이유는, DFT을 계산하는 고속 푸리에 변환 알고리즘을 이용하기 위한 것이다. 그것을 강조하는 경우, "제로 패딩 DFT" 또는"내삽 DFT"로 부른다. 그러나, 값이 0 인 항을 사용하지 않고 단순하게 계산하여도 완전히 동일한 DFT가 얻어진다. N < L {\displaystyle N<L} 의 경우의 DTFT도 계산할 수 있는데 이 경우에는 DFT와 등가는 아니다. N > L {\displaystyle N>L} 이 일반적이라는 것을 보이기 위하여, 아래의 시퀀스를 생각해 보자. x [ n ] = e i 2 π 1 8 n {\displaystyle x[n]=e^{i2\pi {\frac {1}{8}}n}} , 여기서 L = 64 {\displaystyle L=64} 아래와 같은 2 개의 그림은 설명과 같이 상이한 크기의 DFT를 표시한 것이다. 양쪽 모두 지배적인 주파수 성분은   f = 1 8 = 0.125 {\displaystyle f={\begin{matrix}{\frac {1}{8}}\end{matrix}}=0.125\,} 이다. 오른쪽 그림에 나타난 패턴은  L = 64 {\displaystyle L=64} 의 구형 창함수의 스펙트럼 누설(spectrum leakage)이다. 좌측 그림은 이와 같이 되는 것은, 우측 그림의 0과 교차점을 표본화한 점이 중첩되어 있는 결과이다. 이것은 유한 길이 시퀀스의 DTFT라기 보다는 무한히 계속되는 정현파(사인파)와 같은 인상을 준다. 이러한 그림에 의한 원인은, 구형 창함수의 사용과, 64개의 표본당 8개의 정수개의 주기로 되는 주파수를 선택한 때문이다( 1 8 = 8 64 {\displaystyle {\begin{matrix}{\frac {1}{8}}\end{matrix}}={\begin{matrix}{\frac {8}{64}}\end{matrix}}} ). 기본적으로 DTFT 은 푸리에 급수의 역이고, 후자는 계속적이지만 주기적인 입력과 이산 스펙트럼을 가지고 있다. 이러한 2개의 변환의 응용은 완전히 상이하다. DFT 와 DTFT은 표준적인 연속 푸리에 변환을 이산적 데이터에 적용하고자 하여 자연적으로 발생한 것으로 볼 수도 있다. 이러한 관점에서 단순히 입력 형식이 상이하다는 것뿐이고 변환 자체는 동일하다. 입력이 이산적이면, 푸리에 변환은 DTFT로 된다. 입력이 주기적이라면, 푸리에 변환은 푸리에 급수가 된다. 입력이 이산적, 주기적이면, 푸리에 변환은 DFT로 된다. DTFT는 Z-변환의 특수한 경우이다. 양자 Z-변환은 아래와 같이 정의된다. X ( z ) = ∑ n = − ∞ ∞ x [ n ] z − n {\displaystyle X(z)=\sum _{n=-\infty }^{\infty }x[n]\,z^{-n}} DTFT는 z = e i ω {\displaystyle z=e^{i\omega }\,} 인 경우로 이때, | e i ω | = 1 {\displaystyle |e^{i\omega }|=1\,} 인데 이것은 복소평면에서의 단위 원 부근에서의 Z-변환이다. 다음 표는 전형적인 변환을 보여주는 것이다. n {\displaystyle n\!} 은 이산시간 영역(표본)을 표현하는 정수이다. ω {\displaystyle \omega \!} 는 ( − π ,   π ) {\displaystyle (-\pi ,\ \pi )} 의 범위내의 실수이고, 연속 각주파수(표본당의 라디안)을 나타낸다. 그 이외 ( | ω | > π ) {\displaystyle (|\omega |>\pi \,)} 의 변환은 X ( ω + 2 π k ) = X ( ω ) {\displaystyle X(\omega +2\pi k)=X(\omega )\,} 로 정의된다. u [ n ] {\displaystyle u[n]\!} 은 이산시간 단위 계단 함수이다. sinc ⁡ ( t ) {\displaystyle \operatorname {sinc} (t)\!} 은 정규화 싱크 함수이다. δ ( ω ) {\displaystyle \delta (\omega )\!} 은 디랙 델타 함수이다. δ [ n ] {\displaystyle \delta [n]\!} 은 크로네커 델타 δ n , 0 {\displaystyle \delta _{n,0}\!} 이다. rect ⁡ ( t ) {\displaystyle \operatorname {rect} (t)} 은, 임의의 실수값 t에 관한 아래와 같은 구형함수이다. r e c t ( t ) = ⊓ ( t ) = { 0 if  | t | > 1 2 1 2 if  | t | = 1 2 1 if  | t | < 1 2 {\displaystyle \mathrm {rect} (t)=\sqcap (t)={\begin{cases}0&{\mbox{if }}|t|>{\frac {1}{2}}\\[3pt]{\frac {1}{2}}&{\mbox{if }}|t|={\frac {1}{2}}\\[3pt]1&{\mbox{if }}|t|<{\frac {1}{2}}\end{cases}}} tri ⁡ ( t ) {\displaystyle \operatorname {tri} (t)} 는 임의의 실수치 t에 관한 아래와 같은 삼각형 함수이다. tri ⁡ ( t ) = ∧ ( t ) = { 1 + t ; − 1 ≤ t ≤ 0 1 − t ; 0 < t ≤ 1 0 otherwise {\displaystyle \operatorname {tri} (t)=\land (t)={\begin{cases}1+t;&-1\leq t\leq 0\\1-t;&0<t\leq 1\\0&{\mbox{otherwise}}\end{cases}}} 아래의 표는 일반적인 이산시간 푸리에변환을 나타내는 것이다. 다음과 같은 표기법이 사용된다. ∗ {\displaystyle *\!} 는 2개 신호의 콘볼루션(convolution)을 의미한다. x [ n ] ∗ {\displaystyle x[n]^{*}\!} 는 함수 x[n]의 켤레 복소수(complex conjugate)이다. ρ x y [ n ] {\displaystyle \rho _{xy}[n]\!} 는 x[n]과 y[n]의 크로스 코릴레이션(cross correlation)을 표시한다. 첫 번째 열은 속성의 설명, 두번째는 시간영역에서의 함수의 표현, 세번째 열은 주파수 도메인에서 스펙트럼 표현이다. 푸리에 변환은 실수성분과 허수성분으로 분리할 수 있다. X ( e i ω ) = X R ( e i ω ) + i X I ( e i ω ) {\displaystyle X(e^{i\omega })=X_{R}(e^{i\omega })+iX_{I}(e^{i\omega })\!} 또한, 짝수성분과 홀수성분으로 분리할 수 있다. X ( e i ω ) = X E ( e i ω ) + X O ( e i ω ) {\displaystyle X(e^{i\omega })=X_{E}(e^{i\omega })+X_{O}(e^{i\omega })\!} Alan V. Oppenheim and Ronald W. Schafer (1999). 《Discrete-Time Signal Processing》 2판. Prentice Hall Signal Processing Series. ISBN 0-13-754920-2.  CS1 관리 - 추가 문구 (링크) William McC. Siebert (1986). 《Circuits, Signals, and Systems》. MIT Electrical Engineering and Computer Science Series. Cambridge, MA: MIT Press.  Boaz Porat. 《A Course in Digital Signal Processing》. John Wiley and Sons. pp. 27–29 and 104–105쪽. ISBN 0-471-14961-6.  CS1 관리 - 추가 문구 (링크)