REMI Lab강의 노트

Signals and Systems L07

7장 이산시간 시스템의 푸리에 해석

거꾸로 가기: 역변환

X[k]X[k]만 가지고 있을 때 샘플 x[n]x[n]을 되찾을 수 있을까? X\mathbf X에서 x\mathbf x를 되찾으려면 WW의 역행렬이 필요하다. 앞 절의 직교 덕분에 역행렬은 따로 계산하지 않아도 된다.

W‾\overline W를 WW의 원소마다 켤레를 취한 행렬, II를 단위행렬이라 하자. WW가 대칭이므로 W‾[n,m]=W[m,n]‾\overline W[n,m]=\overline{W[m,n]}이고, 곱 WW‾W\overline W의 (k,m)(k,m) 원소는 앞 절 직교 식의 왼쪽과 같다.

(WW‾)[k,m]=∑n=0N−1W[k,n] W‾[n,m]=∑n=0N−1W[k,n] W[m,n]‾=N δ[k−m]\begin{aligned} (W\overline W)[k,m]&=\sum_{n=0}^{N-1}W[k,n]\,\overline W[n,m]\\ &=\sum_{n=0}^{N-1}W[k,n]\,\overline{W[m,n]}=N\,\delta[k-m] \end{aligned}

따라서 WW‾=NIW\overline W=NI이고

W−1=1N W‾W^{-1}=\frac{1}{N}\,\overline W

이다. 켤레를 취한 페이저는 반대 방향으로 돈다. x=W−1X\mathbf x=W^{-1}\mathbf X를 원소별로 쓴 것이 역 DFT(inverse DFT, IDFT)이다.

x[n]=1N∑k=0N−1X[k] ej2πkn/Nx[n]=\frac{1}{N}\sum_{k=0}^{N-1}X[k]\,e^{j2\pi kn/N}

순변환과 역변환은 지수의 부호와 1/N1/N만 다르다.

직접 유도해 보기. 역변환에 1/N1/N이 붙는 이유를 보여라.

풀이

역변환식의 합에 순변환을 넣고 합의 순서를 바꾼다.

∑k=0N−1X[k]ej2πkn/N=∑m=0N−1x[m]∑k=0N−1ej2πk(n−m)/N\begin{aligned} &\sum_{k=0}^{N-1}X[k]e^{j2\pi kn/N}\\ &\quad=\sum_{m=0}^{N-1}x[m]\sum_{k=0}^{N-1}e^{j2\pi k(n-m)/N} \end{aligned}

안쪽 합은 n=mn=m이면 1을 NN번 더해 NN이다. n≠mn\ne m이면 단위원 위에 고르게 놓인 점들을 더하는 것이라 0이다. 따라서 오른쪽은 N x[n]N\,x[n]이고, x[n]x[n]을 되찾으려면 1/N1/N을 곱해야 한다.

역변환은 합성이다. 회전 eke_k마다 가중치 X[k]/NX[k]/N을 곱해 모두 더하면 샘플이 된다.

'행렬로 쓰기'에서 구한 X[k]X[k]로 x=[1,2,0,−1,0,0,0,0]T\mathbf x=[1,2,0,-1,0,0,0,0]^{\mathsf T}의 샘플 x[1]=2x[1]=2를 되찾을 수 있다. 행 kk의 항은 X[k]ej2πkn/8/8X[k]e^{j2\pi kn/8}/8이고, 열 nn의 항 여덟 개를 이어 더한 끝이 샘플 x[n]x[n]이다. 항 하나는 X[k]X[k]를 각 2πkn/82\pi kn/8만큼 돌리고 1/81/8을 곱해 줄인 것이다. knkn이 8의 배수이면 각이 0°라 돌릴 것이 없고, X[4]=0X[4]=0인 항은 0이다. 아래 그림에서 열 nn의 페이저 그림은 그 항이 만들어질 때 채워지고, 계산 표에는 kk마다 X[k]X[k], 각, 항, 누적합이 한 줄씩 남는다. X[k]X[k]는 셋째 자리까지 적은 값으로 이어서 계산하므로 x[1]=2x[1]=2가 그대로 나온다. IDFT는 샘플 사이의 값을 정하지 않는다.

N = 8이고, ①의 행 k는 X[k]ej2πkn/8/8이라 열마다 2πk/8씩 반시계 방향으로 돌며(흐린 점선 페이저는 X[k] = 0인 행 4에서도 그 회전을 보여 준다), ②는 왼쪽 평면에서 X[k]를 돌리고 1/8로 줄여 만든 항을 오른쪽 평면에서 k = 0부터 이어 붙인 것(끝점이 x[n]), ③은 합을 마친 샘플의 스템이다. 항(주황)과 누적합(초록)은 그림, 표, 식에서 같은 색이고, 값은 반올림한 수로 이어서 계산하므로 정확한 값과 끝자리가 조금 다를 수 있다.

해 보기

  1. x[1]x[1]의 k=1k=1 항에서 X[1]X[1]을 45∘45^\circ 돌린 값이 얼마인지 확인하라.
    관찰

    X[1]=3.121−j0.707X[1]=3.121-j0.707은 크기 3.2, 각 −12.8∘-12.8^\circ이다. 45∘45^\circ 돌리면 각이 32.2∘32.2^\circ가 되고 크기는 그대로라 2.707+j1.7072.707+j1.707이다. 다음 단계에서 1/8을 곱하면 항 0.338+j0.2130.338+j0.213이 된다.

  2. x[4]x[4]를 계산할 때 회전 각이 kk에 따라 어떻게 되는지, 페이저 합이 어디에서 끝나는지 확인하라.
    관찰

    회전 각은 kk가 짝수이면 0∘0^\circ라 짧은 한 단계로 지나가고, 홀수이면 180∘180^\circ이다. 페이저 합이 원점으로 돌아와 x[4]=0x[4]=0이다. 입력의 0인 샘플도 여덟 항이 서로 지워서 만들어진다.

  3. 코사인 입력의 계수 X[1]=X[7]=4X[1]=X[7]=4로 x[1]x[1]을 계산하고, 정확한 값 cos⁡(2π/8)\cos(2\pi/8)와 비교하라.
    관찰

    0이 아닌 항은 두 개뿐이고, 나머지 여섯은 짧은 0 단계로 지나간다. X[1]=4X[1]=4를 45∘45^\circ 돌려 1/8을 곱하면 0.354+j0.3540.354+j0.354, X[7]=4X[7]=4를 315∘315^\circ, 곧 −45∘-45^\circ 돌려 1/8을 곱하면 0.354−j0.3540.354-j0.354이다. 두 항을 더한 끝점은 실수축 위 0.7080.708이고, 정확한 값은 cos⁡(2π/8)=0.707\cos(2\pi/8)=0.707이다. 차이는 반올림한 수를 이어 더해서 생긴다.

예제 1의 X=[2,  1−j3,  0,  1+j3]T\mathbf X=[2,\;1-j3,\;0,\;1+j3]^{\mathsf T}를 역변환하면 첫 샘플이 돌아온다. x[0]=14(2+(1−j3)+0+(1+j3))=1x[0]=\frac14(2+(1-j3)+0+(1+j3))=1이고, 같은 방법으로 x[1]=2x[1]=2, x[2]=0x[2]=0, x[3]=−1x[3]=-1이다.