4장. 이산 푸리에 변환: 유한차원에서 본 전부

푸리에 해석 · 푸리에 변환

심화 · 약 35분 · 연습문제 5 · 그림 2

요약

푸리에 기저와 직교성, DFT와 역 DFT, 주파수 색인의 해석, 파세발 등식, 순환 이동과 합성곱 정리

극한도 수렴 문제도 없는 CN\mathbb{C}^N에서 푸리에 해석을 처음부터 끝까지 해 봅니다. 여기서 증명하는 정리는 뒤의 장들에서 글자만 바뀌어 다시 나옵니다. 직교성, 분석과 합성, 파세발, 이동과 위상, 합성곱과 곱입니다. 그리고 이 장의 변환은 그 자체로 컴퓨터가 실제로 계산하는 변환(FFT)입니다.

4.1 푸리에 기저

길이 NN인 신호 x[n]x[n] (n=0,1,…,N−1n = 0, 1, \ldots, N - 1)을 CN\mathbb{C}^N의 벡터로 봅니다. 첨자를 0부터 세는 것에 주의합니다.

정의 4.1. k=0,1,…,N−1k = 0, 1, \ldots, N - 1에 대해 벡터 uk∈CN\mathbf{u}_k \in \mathbb{C}^N을

uk[n]=ej2πkn/N,n=0,1,…,N−1\mathbf{u}_k[n] = e^{j2\pi kn/N}, \qquad n = 0, 1, \ldots, N - 1

로 정의합니다. 이들을 CN\mathbb{C}^N의 푸리에 기저라 합니다.

uk\mathbf{u}_k는 복소지수함수 ejθe^{j\theta}를 각도 간격 2πk/N2\pi k/N으로 NN번 찍은 것입니다. nn이 0에서 NN까지 가는 동안 원을 정확히 kk바퀴 돕니다. u0=(1,1,…,1)\mathbf{u}_0 = (1, 1, \ldots, 1)은 변하지 않는 성분(직류), u1\mathbf{u}_1은 NN개 표본에 걸쳐 한 번 진동, u2\mathbf{u}_2는 두 번 진동하는 식입니다(그림 4.1).

N = 8인 푸리에 기저 여덟 개를 작은 그래프로 나란히 그렸습니다. 각 그래프에서 검은 점은 실수부, 흰 점은 허수부이고, 회색 실선과 파선은 같은 주파수의 연속 cos와 sin입니다.

그림 4.1. N=8N = 8의 푸리에 기저 uk[n]=ej2πkn/8\mathbf{u}_k[n] = e^{j2\pi kn/8}. 검은 점은 실수부, 흰 점은 허수부. 회색 곡선은 같은 주파수의 연속 cos(실선), sin(파선). k=5,6,7k = 5, 6, 7의 표본은 k=3,2,1k = 3, 2, 1과 실수부가 같고 허수부의 부호만 반대입니다.

정리 4.2 (푸리에 기저의 직교성).

⟨uk,um⟩=∑n=0N−1ej2πkn/Ne−j2πmn/N=Nδkm(0≤k,m≤N−1)\langle \mathbf{u}_k, \mathbf{u}_m \rangle = \sum_{n=0}^{N-1} e^{j2\pi kn/N} e^{-j2\pi mn/N} = N\delta_{km} \qquad (0 \le k, m \le N - 1)

증명. r=ej2π(k−m)/Nr = e^{j2\pi(k - m)/N}이라 두면 합은 ∑n=0N−1rn\sum_{n=0}^{N-1} r^n입니다. k=mk = m이면 r=1r = 1이고 합은 NN입니다. k≠mk \ne m이면 0<∣k−m∣<N0 < |k - m| < N이므로 (k−m)/N(k - m)/N이 정수가 아니어서 r≠1r \ne 1입니다. 등비수열의 합(1장 정리 1.17)에서 ∑n=0N−1rn=1−rN1−r\sum_{n=0}^{N-1} r^n = \frac{1 - r^N}{1 - r}이고 rN=ej2π(k−m)=1r^N = e^{j2\pi(k - m)} = 1이므로 합은 0입니다. ■\blacksquare

기하학적으로는 2장 정리 2.9와 같은 그림입니다. rnr^n은 단위원 위에 고르게 놓인 점들이고, 원을 정수 바퀴 도는 동안 고르게 찍은 점들의 합(무게중심의 NN배)은 0입니다.

영이 아닌 직교 벡터 NN개이므로 3장 정리 3.20에 의해 {uk}\{\mathbf{u}_k\}는 CN\mathbb{C}^N의 기저입니다. 길이가 ∥uk∥=N\lVert\mathbf{u}_k\rVert = \sqrt{N}이므로 직교기저이고, uk/N\mathbf{u}_k/\sqrt{N}은 정규직교기저입니다.

4.2 DFT와 역 DFT

직교기저의 좌표 공식(3장 따름정리 3.18)을 그대로 적용합니다. 모든 x∈CN\mathbf{x} \in \mathbb{C}^N은 x=∑kckuk\mathbf{x} = \sum_k c_k\mathbf{u}_k, ck=⟨x,uk⟩/Nc_k = \langle \mathbf{x}, \mathbf{u}_k \rangle / N으로 쓸 수 있습니다. 관례상 NN으로 나누기 전의 내적에 이름을 붙입니다.

정의 4.3 (이산 푸리에 변환).

DFT (분석):X[k]=⟨x,uk⟩=∑n=0N−1x[n] e−j2πkn/N,k=0,…,N−1역 DFT (합성):x[n]=1N∑k=0N−1X[k] ej2πkn/N,n=0,…,N−1\begin{aligned} \text{DFT (분석):}\quad & X[k] = \langle \mathbf{x}, \mathbf{u}_k \rangle = \sum_{n=0}^{N-1} x[n]\, e^{-j2\pi kn/N}, && k = 0, \ldots, N - 1 \\ \text{역 DFT (합성):}\quad & x[n] = \frac{1}{N}\sum_{k=0}^{N-1} X[k]\, e^{j2\pi kn/N}, && n = 0, \ldots, N - 1 \end{aligned}

역변환 공식은 따로 증명할 것이 없습니다. 좌표 공식 그 자체입니다. 그래도 직접 확인해 보면 구조가 잘 보입니다.

1N∑kX[k]ej2πkn/N=1N∑k∑mx[m]e−j2πkm/Nej2πkn/N=∑mx[m]1N∑kej2πk(n−m)/N⏟δnm=x[n]\frac{1}{N}\sum_k X[k]e^{j2\pi kn/N} = \frac{1}{N}\sum_k\sum_m x[m]e^{-j2\pi km/N}e^{j2\pi kn/N} = \sum_m x[m]\underbrace{\frac{1}{N}\sum_k e^{j2\pi k(n - m)/N}}_{\delta_{nm}} = x[n]

DFT의 지수에 있는 음부호는 내적의 둘째 자리에 붙는 켤레에서 온 것입니다.

참고 4.4 (정규화 관례). 1/N1/N을 어디에 두느냐는 약속입니다. 위 정의(역변환에 1/N1/N)가 표준이고 NumPy, MATLAB 등이 이렇게 계산합니다. 양쪽에 1/N1/\sqrt{N}씩 나눠 주면 변환 행렬이 유니터리가 됩니다.

행렬로 쓰면 Fkn=e−j2πkn/NF_{kn} = e^{-j2\pi kn/N}인 N×NN \times N 행렬에 대해 X=FxX = F\mathbf{x}, x=1NFHX\mathbf{x} = \frac{1}{N}F^HX입니다. FF의 kk번째 행이 ukH\mathbf{u}_k^H이므로 FFH=NIFF^H = NI이고, F/NF/\sqrt{N}은 유니터리 행렬입니다.

예제 4.5. N=4N = 4일 때 e−j2π/4=−je^{-j2\pi/4} = -j이므로

F=(11111−j−1j1−11−11j−1−j)F = \begin{pmatrix} 1 & 1 & 1 & 1 \\ 1 & -j & -1 & j \\ 1 & -1 & 1 & -1 \\ 1 & j & -1 & -j \end{pmatrix}

입니다. x=(1,2,3,4)\mathbf{x} = (1, 2, 3, 4)의 DFT는 다음과 같습니다.

X[0]=1+2+3+4=10X[1]=1+2(−j)+3(−1)+4(j)=−2+2jX[2]=1−2+3−4=−2X[3]=1+2(j)+3(−1)+4(−j)=−2−2j\begin{aligned} X[0] &= 1 + 2 + 3 + 4 = 10 \\ X[1] &= 1 + 2(-j) + 3(-1) + 4(j) = -2 + 2j \\ X[2] &= 1 - 2 + 3 - 4 = -2 \\ X[3] &= 1 + 2(j) + 3(-1) + 4(-j) = -2 - 2j \end{aligned}

역변환의 n=0n = 0으로 검산하면 14(10−2+2j−2−2−2j)=1\frac{1}{4}(10 - 2 + 2j - 2 - 2 - 2j) = 1입니다. 맞습니다. X[0]/N=2.5X[0]/N = 2.5는 평균값입니다. X[3]=X[1]∗X[3] = X[1]^*인 것은 우연이 아닙니다(정리 4.6).

4.3 주파수 색인 k의 해석

주기성. ej2π(k+N)n/N=ej2πkn/Nej2πn=ej2πkn/Ne^{j2\pi(k + N)n/N} = e^{j2\pi kn/N}e^{j2\pi n} = e^{j2\pi kn/N}입니다. 즉 uk+N=uk\mathbf{u}_{k+N} = \mathbf{u}_k입니다. kk를 NN만큼 늘려도 같은 벡터이므로 서로 다른 주파수는 NN개뿐이고, DFT의 정의식을 모든 정수 kk로 넓히면 X[k+N]=X[k]X[k + N] = X[k]입니다. 마찬가지로 역 DFT의 식을 모든 정수 nn으로 넓히면 x[n+N]=x[n]x[n + N] = x[n]입니다. DFT는 xx를 주기 NN으로 반복되는 신호로 취급합니다. 첨자 계산은 모두 NN으로 나눈 나머지로 합니다.

음의 주파수. uN−k=u−k=uk∗\mathbf{u}_{N-k} = \mathbf{u}_{-k} = \mathbf{u}_k^*(성분별 켤레)다. 따라서 k=N−1k = N - 1은 “가장 높은 주파수”가 아니라 k=−1k = -1, 즉 반대 방향으로 한 바퀴 도는 가장 낮은 주파수입니다.

NN이 짝수일 때 k=0k = 0은 직류, k=1,…,N/2−1k = 1, \ldots, N/2 - 1은 양의 주파수, k=N/2k = N/2는 가장 빠른 진동 (+1,−1,+1,…)(+1, -1, +1, \ldots), k=N/2+1,…,N−1k = N/2 + 1, \ldots, N - 1은 음의 주파수 −(N/2−1),…,−1-(N/2 - 1), \ldots, -1입니다.

이산 신호에서 가장 빠른 진동은 한 표본마다 부호가 바뀌는 것이고 그보다 빠른 것은 없습니다. 이것이 표본화 정리(11장)의 유한차원 판입니다.

정리 4.6 (실수 신호의 켤레 대칭). x[n]x[n]이 모두 실수이면 X[N−k]=X[k]∗X[N - k] = X[k]^*입니다.

증명. X[N−k]=∑nx[n]e−j2π(N−k)n/N=∑nx[n]ej2πkn/N=(∑nx[n]e−j2πkn/N)∗X[N - k] = \sum_n x[n]e^{-j2\pi(N - k)n/N} = \sum_n x[n]e^{j2\pi kn/N} = \left(\sum_n x[n]e^{-j2\pi kn/N}\right)^*입니다. 마지막 등호에서 x[n]x[n]이 실수임을 썼습니다. ■\blacksquare

따라서 실수 신호의 DFT는 k=0,…,N/2k = 0, \ldots, N/2까지만 독립적인 정보입니다. kk와 N−kN - k항을 묶으면 X[k]uk[n]+X[k]∗uk[n]∗=2Re⁡{X[k]ej2πkn/N}=2∣X[k]∣cos⁡(2πkn/N+∠X[k])X[k]\mathbf{u}_k[n] + X[k]^*\mathbf{u}_k[n]^* = 2\operatorname{Re}\{X[k]e^{j2\pi kn/N}\} = 2|X[k]|\cos(2\pi kn/N + \angle X[k])이므로, NN이 짝수일 때

x[n]=1N[X[0]+2∑k=1N/2−1∣X[k]∣cos⁡(2πknN+∠X[k])+X[N/2](−1)n](4.1)x[n] = \frac{1}{N}\left[X[0] + 2\sum_{k=1}^{N/2-1}|X[k]|\cos\left(\frac{2\pi kn}{N} + \angle X[k]\right) + X[N/2](-1)^n\right] \qquad (4.1)

입니다. ∣X[k]∣|X[k]|는 주파수 kk인 사인파의 진폭(의 N/2N/2배), ∠X[k]\angle X[k]는 그 위상입니다.

예제 4.7. x[n]=Acos⁡(2πk0n/N+ϕ)x[n] = A\cos(2\pi k_0 n/N + \phi), 0<k0<N/20 < k_0 < N/2라 합시다. 2장의 (2.5)로 쓰면 x=A2ejϕuk0+A2e−jϕuN−k0\mathbf{x} = \frac{A}{2}e^{j\phi}\mathbf{u}_{k_0} + \frac{A}{2}e^{-j\phi}\mathbf{u}_{N-k_0}입니다. 이것이 이미 푸리에 기저로의 전개이므로 좌표의 유일성에 의해 X[k0]=NA2ejϕX[k_0] = \frac{NA}{2}e^{j\phi}, X[N−k0]=NA2e−jϕX[N - k_0] = \frac{NA}{2}e^{-j\phi}이고, 나머지는 모두 0입니다.

성분의 주파수, 진폭, 위상을 바꾸면 신호 x[n]과 0이 아닌 DFT 칸이 바뀝니다

이 위젯은 JavaScript가 필요합니다

4.4 파세발 등식

정리 4.8.

∑n=0N−1x[n] y[n]∗=1N∑k=0N−1X[k] Y[k]∗,∑n=0N−1∣x[n]∣2=1N∑k=0N−1∣X[k]∣2\sum_{n=0}^{N-1} x[n]\, y[n]^* = \frac{1}{N}\sum_{k=0}^{N-1} X[k]\, Y[k]^*, \qquad \sum_{n=0}^{N-1}|x[n]|^2 = \frac{1}{N}\sum_{k=0}^{N-1}|X[k]|^2

증명. 정규직교기저 uk/N\mathbf{u}_k/\sqrt{N}에 대한 x\mathbf{x}의 좌표는 ⟨x,uk/N⟩=X[k]/N\langle \mathbf{x}, \mathbf{u}_k/\sqrt{N} \rangle = X[k]/\sqrt{N}입니다. 3장 정리 3.21을 적용합니다. ■\blacksquare

예제 4.5에서 확인하면 1+4+9+16=301 + 4 + 9 + 16 = 30, 14(100+8+4+8)=30\frac{1}{4}(100 + 8 + 4 + 8) = 30입니다.

4.5 이동, 고유벡터, 합성곱

이제 “왜 하필 이 기저인가”에 답합니다.

정의 4.9. 순환 이동 연산자 SS는 신호를 한 칸 늦춥니다: (Sx)[n]=x[(n−1) mod N](S\mathbf{x})[n] = x[(n - 1) \bmod N]. 맨 끝 성분은 맨 앞으로 돌아옵니다.

정리 4.10. 푸리에 기저 벡터는 순환 이동의 고유벡터입니다:

Suk=e−j2πk/NukS\mathbf{u}_k = e^{-j2\pi k/N}\mathbf{u}_k

고윳값 e−j2πk/Ne^{-j2\pi k/N} (k=0,…,N−1k = 0, \ldots, N - 1)은 서로 다릅니다.

증명. uk[n]\mathbf{u}_k[n]의 식은 주기 NN이므로 mod를 신경 쓸 필요가 없습니다. (Suk)[n]=ej2πk(n−1)/N=e−j2πk/Nej2πkn/N(S\mathbf{u}_k)[n] = e^{j2\pi k(n - 1)/N} = e^{-j2\pi k/N}e^{j2\pi kn/N}입니다. ■\blacksquare

복소지수함수를 시간 이동하면 모양은 그대로이고 위상 인자만 곱해집니다. ea+b=eaebe^{a+b} = e^ae^b라는 지수법칙 그 자체입니다.

따름정리 4.11 (이동 정리). y[n]=x[(n−m) mod N]y[n] = x[(n - m) \bmod N]이면 Y[k]=e−j2πkm/NX[k]Y[k] = e^{-j2\pi km/N}X[k]입니다.

증명. y=Smx=Sm1N∑kX[k]uk=1N∑ke−j2πkm/NX[k]uk\mathbf{y} = S^m\mathbf{x} = S^m\frac{1}{N}\sum_k X[k]\mathbf{u}_k = \frac{1}{N}\sum_k e^{-j2\pi km/N}X[k]\mathbf{u}_k입니다. 좌표의 유일성에서 나옵니다. ■\blacksquare

시간 이동은 크기 ∣X[k]∣|X[k]|를 바꾸지 않고, 위상을 주파수에 비례하여 돌립니다.

정의 4.12. x,h∈CN\mathbf{x}, \mathbf{h} \in \mathbb{C}^N의 순환 합성곱(circular convolution)은

(x⊛h)[n]=∑m=0N−1x[m] h[(n−m) mod N](\mathbf{x} \circledast \mathbf{h})[n] = \sum_{m=0}^{N-1} x[m]\, h[(n - m) \bmod N]

입니다. x⊛h=∑mx[m]Smh\mathbf{x} \circledast \mathbf{h} = \sum_m x[m]S^m\mathbf{h}이므로, 합성곱은 “h\mathbf{h}를 mm칸씩 민 것들을 x[m]x[m]의 무게로 더한 것”입니다.

정리 4.13 (합성곱 정리). y=x⊛h\mathbf{y} = \mathbf{x} \circledast \mathbf{h}이면

Y[k]=X[k] H[k]Y[k] = X[k]\, H[k]

입니다.

증명.

Y[k]=∑n∑mx[m] h[(n−m) mod N] e−j2πkn/N=∑mx[m]e−j2πkm/N∑nh[(n−m) mod N] e−j2πk(n−m)/N\begin{aligned} Y[k] &= \sum_n\sum_m x[m]\, h[(n - m) \bmod N]\, e^{-j2\pi kn/N} \\ &= \sum_m x[m]e^{-j2\pi km/N}\sum_n h[(n - m) \bmod N]\, e^{-j2\pi k(n - m)/N} \end{aligned}

입니다. 안쪽 합에서 nn이 한 주기를 돌면 (n−m) mod N(n - m) \bmod N도 0,…,N−10, \ldots, N - 1을 한 번씩 지나므로 안쪽 합은 mm에 무관하게 H[k]H[k]입니다. 남은 합이 X[k]X[k]입니다. ■\blacksquare

예제 4.14. h=(12,12,0,0)\mathbf{h} = (\frac{1}{2}, \frac{1}{2}, 0, 0)과의 합성곱은 y[n]=12(x[n]+x[n−1])y[n] = \frac{1}{2}(x[n] + x[n - 1]), 즉 이웃한 두 값의 평균입니다. H[k]=12(1+e−j2πk/4)H[k] = \frac{1}{2}(1 + e^{-j2\pi k/4})이므로 H[0]=1H[0] = 1, H[1]=1−j2H[1] = \frac{1 - j}{2}, H[2]=0H[2] = 0, H[3]=1+j2H[3] = \frac{1 + j}{2}입니다. 직류(k=0k = 0)는 그대로 통과하고 가장 빠른 진동(k=2k = 2, (1,−1,1,−1)(1, -1, 1, -1))은 완전히 사라집니다. 평균을 내면 빠른 변화가 지워진다는 직관이 수식으로 나온 것입니다. 이것이 저역통과 필터(low-pass filter)다.

이 절이 말하는 것

고정된 h\mathbf{h}에 대해 x↦x⊛h\mathbf{x} \mapsto \mathbf{x} \circledast \mathbf{h}는 선형 연산자이고 이동과 교환합니다(S(x⊛h)=(Sx)⊛hS(\mathbf{x} \circledast \mathbf{h}) = (S\mathbf{x}) \circledast \mathbf{h}). 거꾸로, 이동과 교환하는 CN\mathbb{C}^N의 선형 연산자 AA는 모두 어떤 h\mathbf{h}와의 순환 합성곱입니다. δ=(1,0,…,0)\boldsymbol{\delta} = (1, 0, \ldots, 0)에 대한 응답을 h=Aδ\mathbf{h} = A\boldsymbol{\delta}라 하면 x=∑mx[m]Smδ\mathbf{x} = \sum_m x[m]S^m\boldsymbol{\delta}이므로 Ax=∑mx[m]SmAδ=x⊛hA\mathbf{x} = \sum_m x[m]S^mA\boldsymbol{\delta} = \mathbf{x} \circledast \mathbf{h}이기 때문입니다. 합성곱 정리는 이 모든 연산자가 푸리에 기저에서 대각행렬이 된다고 말합니다. kk번째 좌표에 H[k]H[k]를 곱할 뿐입니다. 3장 정리 3.29가 예고한 그대로입니다.

푸리에 변환이 하는 일 (유한차원 판)

  1. 푸리에 기저는 직교기저입니다. 그래서 좌표를 내적 하나로 구합니다(DFT).
  2. 푸리에 기저는 이동의 고유벡터입니다. 그래서 이동과 교환하는 모든 선형 연산(합성곱, 필터)이 좌표별 곱셈이 됩니다.
  3. 변환은 (상수를 빼면) 유니터리입니다. 그래서 에너지와 내적이 보존됩니다(파세발).

남은 일은 N→∞N \to \infty로 보내는 것입니다. 보내는 방법이 두 가지입니다. 표본 간격을 0으로 보내 유한 구간의 연속 함수로 만들면 푸리에 급수(5장)가 되고, 거기서 구간 길이까지 무한대로 보내면 푸리에 변환(6장)이 됩니다.

쓰이는 곳. 디지털 오디오의 주파수 분석, 이미지의 2차원 DFT, 수치적으로 미분방정식을 푸는 스펙트럴 방법, 큰 수의 곱셈 알고리즘이 DFT를 씁니다. 순환행렬이 DFT로 대각화된다는 사실은 합성곱 신경망을 빠르게 계산하는 데 쓰입니다.

연습문제

문제 1 · 확인 문제

4.1. N=4N = 4에서 (1,0,0,0)(1, 0, 0, 0), (0,1,0,0)(0, 1, 0, 0), (1,1,0,0)(1, 1, 0, 0)의 DFT를 구하고 셋째에 대해 파세발 등식을 확인합니다. 셋째 신호 (1,1,0,0)(1, 1, 0, 0)의 DFT를 실수부와 허수부로 적습니다.

kk Re⁡X[k]\operatorname{Re} X[k] Im⁡X[k]\operatorname{Im} X[k]
0 [?] [?]
1 [?] [?]
2 [?] [?]
3 [?] [?]
힌트 1

DFT는 선형입니다. 앞의 두 신호의 DFT를 더하면 됩니다.

정답
2
0
1
-1
0
0
1
1
풀이

(1,0,0,0)→(1,1,1,1)(1, 0, 0, 0) \to (1, 1, 1, 1)입니다. 임펄스는 모든 주파수를 같은 크기로 가집니다. (0,1,0,0)→(1,−j,−1,j)(0, 1, 0, 0) \to (1, -j, -1, j)입니다. 한 칸 이동이므로 e−j2πk/4=(−j)ke^{-j2\pi k/4} = (-j)^k가 곱해졌습니다. (1,1,0,0)(1, 1, 0, 0)은 둘의 합이므로 (2,1−j,0,1+j)(2, 1 - j, 0, 1 + j)입니다. 파세발 등식은 1+1=21 + 1 = 2, 14(4+2+0+2)=2\frac{1}{4}(4 + 2 + 0 + 2) = 2로 성립합니다.

문제 2 · 확인 문제

4.2. N=8N = 8, x[n]=3+2cos⁡(πn2+π3)x[n] = 3 + 2\cos(\frac{\pi n}{2} + \frac{\pi}{3})의 DFT를 계산 없이 씁니다. 0이 아닌 칸의 크기와 위상(도)을 적습니다.

칸 크기 위상 (도)
X[0]X[0] [?] [?]
X[2]X[2] [?] [?]
X[6]X[6] [?] [?]
힌트 1

cos⁡(πn2+π3)=cos⁡(2π⋅2n/8+π3)\cos(\frac{\pi n}{2} + \frac{\pi}{3}) = \cos(2\pi \cdot 2n/8 + \frac{\pi}{3})이므로 k0=2k_0 = 2입니다. 예제 4.7을 씁니다.

정답
24
0
8
60
8
-60
풀이

cos⁡(πn2+π3)=cos⁡(2π⋅2n/8+π3)\cos(\frac{\pi n}{2} + \frac{\pi}{3}) = \cos(2\pi \cdot 2n/8 + \frac{\pi}{3})이므로 k0=2k_0 = 2입니다. 예제 4.7에서 X[2]=8⋅22ejπ/3=8ejπ/3X[2] = \frac{8 \cdot 2}{2}e^{j\pi/3} = 8e^{j\pi/3}, X[6]=8e−jπ/3X[6] = 8e^{-j\pi/3}입니다. 상수 3은 X[0]=24X[0] = 24가 됩니다. 나머지는 0입니다.

문제 3 · 확인 문제

4.3. x=(1,2,3,4)\mathbf{x} = (1, 2, 3, 4)와 h=(1,0,0,1)\mathbf{h} = (1, 0, 0, 1)의 순환 합성곱을 (a) 정의로, (b) DFT의 곱으로 구합니다. 결과 y\mathbf{y}를 적습니다.

nn 0 1 2 3
y[n]y[n] [?] [?] [?] [?]
힌트 1

hh는 n=0n = 0과 n=3n = 3에만 값이 있으므로 y[n]=x[n]h[0]+x[(n−3) mod 4]h[3]y[n] = x[n]h[0] + x[(n - 3) \bmod 4]h[3]입니다.

정답
3
5
7
5
풀이

(a) y[n]=x[n]h[0]+x[(n−3) mod 4]h[3]=x[n]+x[(n+1) mod 4]y[n] = x[n]h[0] + x[(n - 3) \bmod 4]h[3] = x[n] + x[(n + 1) \bmod 4]이므로 y=(3,5,7,5)\mathbf{y} = (3, 5, 7, 5)입니다.

(b) H[k]=1+e−j2π⋅3k/4=1+jkH[k] = 1 + e^{-j2\pi \cdot 3k/4} = 1 + j^k이므로 H=(2,1+j,0,1−j)H = (2, 1 + j, 0, 1 - j)입니다. X=(10,−2+2j,−2,−2−2j)X = (10, -2 + 2j, -2, -2 - 2j)이므로 Y=(20,−4,0,−4)Y = (20, -4, 0, -4)입니다. 역변환하면 y[0]=14(20−4−4)=3y[0] = \frac{1}{4}(20 - 4 - 4) = 3, y[1]=14(20−4j+4j)=5y[1] = \frac{1}{4}(20 - 4j + 4j) = 5, y[2]=14(20+4+4)=7y[2] = \frac{1}{4}(20 + 4 + 4) = 7, y[3]=5y[3] = 5입니다.

문제 4

4.4. x[n]x[n]이 실수이고 x[N−n]=x[n]x[N - n] = x[n](우대칭)이면 X[k]X[k]가 실수임을 보입니다.

힌트 1

X[k]∗X[k]^*를 쓰고 m=N−nm = N - n으로 첨자를 바꿉니다.

풀이

X[k]∗=∑nx[n]ej2πkn/NX[k]^* = \sum_n x[n]e^{j2\pi kn/N}입니다. m=N−nm = N - n으로 바꾸면 ∑mx[N−m]e−j2πkm/Nej2πk=∑mx[m]e−j2πkm/N=X[k]\sum_m x[N - m]e^{-j2\pi km/N}e^{j2\pi k} = \sum_m x[m]e^{-j2\pi km/N} = X[k]입니다. X[k]∗=X[k]X[k]^* = X[k]이므로 X[k]X[k]는 실수입니다.

문제 5 · 확인 문제

x=(2,−1,0,3)\mathbf{x} = (2, -1, 0, 3)의 DFT를 구하지 않고, ∑k=03∣X[k]∣2\sum_{k=0}^{3}|X[k]|^2을 구합니다.

힌트 1

파세발 등식에서 ∑k∣X[k]∣2=N∑n∣x[n]∣2\sum_k |X[k]|^2 = N\sum_n |x[n]|^2입니다.

정답
56
풀이

∑n∣x[n]∣2=4+1+0+9=14\sum_n |x[n]|^2 = 4 + 1 + 0 + 9 = 14이므로 ∑k∣X[k]∣2=4⋅14=56\sum_k |X[k]|^2 = 4 \cdot 14 = 56입니다.