You are on page 1of 5

Fourier Transform

22036 반진성

1 서론

1.1 연구 동기

정보과학에서 사운드 프로세싱(Sound processing)을 진행할 때 소리를 인식하는 과정에서 잡음이 있으면 원
하는 정보를 정확하게 얻지 못하는 어려움을 겪었다. 이런 두 개 이상의 소리가 섞여 있는 상황에서 원하는
부분만 뽑아낼 수 있는 가장 대표적인 방법이 푸리에 변환(Fourier Transformation; FT)이라는 것을 알게 되었
다. 하지만 그 때는 선형대수학을 배우지 않아 사용하기에 난이도가 높아 사용하지 못했다. 선형대수학을 배운
시점에서 전에는 이해하지 못했던 푸리에 변환에 대해 탐구해보자 하였다.

2 연구 내용

2.1 Fourier Transform

푸리에 변환은 시간 또는 공간에 대한 함수를 시간 또는 공간 주파수 성분으로 분해하는 변환을 의미한다.


푸리에 변환은 다음과 같이 정의할 수 있다.

󰁝 ∞
X(ξ ) = x(t)e−2πiξ t dt, ξ ∈ C (1)
−∞

2.2 Discrete Fourier Transform

푸리에 변환은 연속적인 시간에 대해 적용 가능한 것이기 때문에 전산적으로 활용하기 위해선 이산 푸리에
변환(Discrete Fourier Transfomr; DFT)을 이용해야 한다. 이산 푸리에 변환은 이산적인 데이터 집합을 변환하는
것이기 때문에 선형대수학의 개념이 사용 가능하다. 이산 푸리에 변환은 다음과 같은 식으로써 정의할 수 있다.

N−1 󰀕 󰀖
2πkn
X[k] = ∑ x[n] exp −i
N
(2)
n=0

여기서 x[n]은 얻은 총 데이터를 의미하며, 그 길이를 N이라고 하여 x[0]부터 x[N − 1]까지로 표현할 수 있다.
이산 푸리에 변환으로 얻은 X[k]는 주파수 성분을 벡터로 표시한 것으로, 마찬가지로 전체 주파수 대역을 N
개로 나누어 X[0]부터 X[N − 1]까지로 표현할 수 있다.

1
2.3 이산 복소 정현파의 직교성

푸리에 급수에서 서로 다른 복소 정현파는 직교한다. 이산 푸리에 급수에서도 직교성이 성립되는데, 주기가


N인 두 이산 신호 φk [n]와 φ p [n]은 다음을 만족할 때 직교한다고 말할 수 있다.

N−1
∑ φk [n]φ p∗ [n] = 0 when k ∕= p (3)
n=0

아래와 같은 집합에서의 이산 복소 정현파의 직교성을 증명해보자.

󰀝 󰀕 󰀖 󰀞
2πkn
φk [n] = exp i where k = 0, 1, 2, · · · , N − 1 (4)
N

N−1 N−1 󰀕 󰀖 󰀕 󰀖
2πkn 2π pn
∑ φk [n]φ p∗ [n] = ∑ exp i
N
exp −i
N
(5)
n=0 n=0
N−1 󰀕 󰀖
2π(k − p)n
= ∑ exp i (6)
n=0 N
󰀝 󰀕 󰀖 󰀞
N−1
2π(k − p) n
= ∑ exp i (7)
n=0 N

1) k = p
N−1 N−1󰀕 󰀖
2πn
∑ φk [n]φ p∗ [n] = ∑ exp i
N
(0) = N (8)
n=0 n=0

2) k ∕= p
󰀕 󰀖
2π(k − p)
식 (7)을 보면 초항이 1이고 공비가 exp i 인 등비급수의 합임을 알 수 있다.
N

N−1 󰀝 󰀕 󰀖 󰀞
N−1
2π(k − p) n
∑ φk [n]φ p∗ [n] = ∑ exp i
N
(9)
n=0 n=0
󰀓 󰀔N
1 − exp i 2π(k−p)
N
= 󰀓 󰀔 (10)
2π(k−p)
1 − exp i N
1 − exp (2iπ(k − p))
= 󰀓 󰀔 (11)
1 − exp i 2π(k−p)
N

정수 n에 대해 exp(2iπn) = 0이므로
N−1
∑ φk [n]φ p∗ [n] = 0 (12)
n=0

따라서 서로 다른 두 이산 복소 정현파는 직교한다.

2
2.4 inverse Discrete Fourier Transform

이산 푸리에 역변환(inverse Discrete Fourier Transform; iDFT)은 이산 푸리에 변환을 역방향으로 유도하는
과정으로 다음과 같이 정의할 수 있다.

󰀕 󰀖
1 N−1 2πkn
x[n] = ∑ X[k] exp i N
N n=0
(13)

proo f )

N−1 󰀕 󰀖 N−1 N−1 󰀕 󰀖 󰀕 󰀖


2π pk 2πkn 2π pk
∑ X[k] exp i
N
= ∑∑ x[n] exp −i
N
exp i
N
(14)
p=0 p=0 n=0
N−1 N−1 󰀕 󰀖
2π(p − n)k
= ∑ ∑ x[n] exp i (15)
p=0 n=0 N

1) p ∕= n, 직교성의 성질에 의해
N−1 󰀕 󰀖
2π pk
∑ X[k] exp i N = 0 (16)
p=0

2) p = n

N−1 󰀕 󰀖
2π pk
∑ X[k] exp i N = Nx[n] (17)
p=0
󰀕 󰀖
1 N−1 2πkn
∴ x[n] = ∑
N n=0
X[k] exp i
N
(18)

2.5 Fourier Metrix

2.5.1 정의

X[k]와 x[n]의 관계를 살펴본다면 이를 적절히 선형변환으로 나타낼 수 있음을 알 수 있다. 신호와 이산 주파수
성분은 모두 N차원 열벡터로 생각할 수 있다.

󰁫 󰁬T 󰁫 󰁬T
신호는 x[0] x[1] · · · x[n] · · · x[N − 1] , 주파수는 X[0] X[1] · · · X[k] · · · X[N − 1] (19)

k = 0, 1, · · · , N − 1일 때 X[k] 값을 계산해보면 다음과 같이 나오게 된다.

󰀕 󰀖 󰀕 󰀖 󰀕 󰀖
2π0 2π0 2π0
X[0] = x[0] exp −i 0 + x[1] exp −i 1 + · · · + x[N − 1] exp −i (N − 1) (20)
N N N

= x[0] · 1 + x[1] · 1 + · · · + x[N − 1] · 1 (21)

󰀕 󰀖 󰀕 󰀖 󰀕 󰀖
2π1 2π1 2π1
X[1] = x[0] exp −i 0 + x[1] exp −i 1 + · · · + x[N − 1] exp −i (N − 1) (22)
N N N

표기의 단순화를 위해 다음과 같이 정의하자.

󰀕 󰀖

w = exp −i (23)
N

3
그러면 k번째 주파수 성분 X[k]는 다음과 같이 정리할 수 있다.

X[k] = x[0]w0 + x[1]wk×1 + · · · + x[ j]wk× j + · · · + x[N − 1]wk×(N−1) (24)

즉, DFT 과정을 벡터와 행렬의 관계로 나타낼 수 있게 되고, 신호 벡터에 곱하는 행렬을 푸리에 행렬(Fourier
Matrix)라고 부른다.
󰀵 󰀶 󰀵 󰀶󰀵 󰀶
󰀹 X[0] 󰀺 󰀹1 1 1 ··· 1 󰀺󰀹 x[0] 󰀺
󰀹 󰀺 󰀹 󰀺󰀹 󰀺
󰀹 X[1] 󰀺 󰀹1
󰀹 󰀺 󰀹 w1 w2 ··· wN−1 󰀺 󰀹 󰀺
󰀺 󰀹 x[1] 󰀺
󰀹 .. 󰀺 = 󰀹 .. .. .. .. 󰀺 󰀹 .. 󰀺 (25)
󰀹 󰀺 󰀹 . 󰀺󰀹 󰀺
󰀹 . 󰀺 󰀹1 . . . 󰀺󰀹 . 󰀺
󰀷 󰀸 󰀷 󰀸󰀷 󰀸
X[N − 1] 1 wN−1 w(N−1)·2 ··· w(N−1)·(N−1) x[N − 1]

(23)으로부터 오일러 공식에 의해 w가 하나의 각도를 나타내고 있음을 알 수 있다. 따라서 푸리에 행렬의 각
행은 cosine 혹은 sine의 관점으로 보았을 때 각각의 함수를 나타내고 있다고 말할 수 있다.

2.5.2 Orthgonality

푸리에 행렬은 직교행렬이며, 이는 Hermitian 연산으로 증명할 수 있다.


󰀵 󰀶󰀵 󰀶
󰀹1 1 1 ··· 1 󰀺 󰀹1 1 1 ··· 1 󰀺
󰀹 󰀺 󰀹 󰀺
H
󰀹1
󰀹 w∗1 w∗2 ··· w∗(N−1) 󰀺 󰀹
󰀺 󰀹1 w1 w2 ··· wN −1 󰀺
󰀺
F F =󰀹 .. .. .. .. 󰀺 󰀹 .. .. .. .. 󰀺 (26)
󰀹 . 󰀺󰀹 . 󰀺
󰀹1 . . . 󰀺 󰀹1 . . . 󰀺
󰀷 󰀸󰀷 󰀸
1 w∗N−1 w∗(N−1)·2 ··· w∗(N−1)·(N−1) 1 wN−1 w(N−1)·2 ··· w(N−1)·(N−1)

󰁫 󰁬 N−1 N−1
FHF
k×l
= ∑ w∗nk wnl = ∑ wn(l−k) (27)
n=0 n=0

󰀕 󰀖 󰀕 󰀕 󰀖 󰀕 󰀖󰀖∗nk
2π ∗nk 2π 2π
∵ w∗nk = exp −i = cos − + i sin −
N N N
󰀕 󰀕 󰀖 󰀕 󰀖󰀖nk 󰀕 󰀖
2π 2π 2π nk
= cos − − i sin − = exp i = w−nk
N N N

if k = l
N−1 N−1
∑ wn(l−k) = ∑ w0 = N (28)
n=0 n=0

if k ∕= l
N−1
1 − wN(l−k)
∑ wn(l−k) = 1 − wl−k
= 0 (∵ wN = 1) (29)
n=0

∴ FHF = N · I (30)

여기서 각 열은 자신과 내적 시 N, 다른 열과 내적 시 0이라는 것을 보였으므로 푸리에 행렬은 직교행렬이다.

4
2.5.3 Inverse Fourier Matrix

(30)에 의해 푸리에 행렬의 역행렬은 다음과 같이 표현할 수 있다.

1 H
F −1 = F (31)
N
󰀵 󰀶 󰀵 󰀶󰀵 󰀶
󰀹 x[0] 󰀺 󰀹1 1 1 ··· 1 󰀺󰀹 X[0] 󰀺
󰀹 󰀺 󰀹 󰀺󰀹 󰀺
󰀹 x[1] 󰀺 1 󰀹1 w∗1 w∗2 w ∗(N−1) 󰀺 󰀹 󰀺
󰀹 󰀺 󰀹 ··· 󰀺 󰀹 X[1] 󰀺
󰀹 .. 󰀺= 󰀹 .. .. .. .. 󰀺 󰀹 .. 󰀺 (32)
󰀹 󰀺 N󰀹 . 󰀺󰀹 󰀺
󰀹 . 󰀺 󰀹1 . . . 󰀺󰀹 . 󰀺
󰀷 󰀸 󰀷 󰀸󰀷 󰀸
x[N − 1] 1 w∗N−1 w∗(N−1)·2 ··· w∗(N−1)·(N−1) X[N − 1]

이는 iDFT와 식이 같다는 것을 알 수 있다.

3 결론

3.1 알게된 점

푸리에 변환이 주기가 존재하는 함수에서 사용 가능한 줄은 알고 있었지만 디지털 정보에서도 적용 가능


하다는 것은 이번 탐구를 통해 알게 되었다. 그 개념은 계속해서 사용함에도 연속이지 않은 상황에서 적용
가능하다는 점이 푸리에 변환 외에 다른 변환에서도 가능한지 알아보고 싶어졌다. 선형대수학이 컴퓨터 공학
에서 어떻게 사용되는지 궁금하였는데, 인공지능 및 이런 사운드 프로세싱 과정에서도 일반적으로 사용될 수
있다는 점을 알게 되었다.

3.2 느낀 점

푸리에가 이런 연산 과정을 찾아낸 것은 컴퓨터 공학의 발전 한참 전이었음에도 불구하고 적용시킬 방법을 찾


아냈다는 것이 수학이라는 분야가 얼마나 많은 곳에 활용될 수 있는지 느낄 수 있게 해준 탐구였다. 이산 푸리에
변환에 대해서 공부하고 나니 일반적인 상황, 연속적인 함수에서의 푸리에 변환과 활용되는 곳에 대해서도 알
고 싶어졌다.

You might also like