푸리에 변환(Fourier Transform, FT)는 시간 혹은 공간에 대한 함수를 주파수 성분으로 분해하는 변환을 말한다. 복잡한 하나의 신호가 있다고 가정해보자. 우리는 이 신호를 복잡한 하나의 신호로 생각할 수도 있지만, 단순한 형태의 신호가 여러개 결합되어 있다고 생각할 수도 있다. 파동을 생각하면 편할 것 같다. 고등학교 물리시간에 파동에 대해 배우면서, 파동의 독립성에 대해 들어본 적이 있을 것이다. 모르는 사람을 위해 설명하자면, 여러 개의 파동은 각각 독립적으로 제 갈 길을 간다는 것이다. 때로는 어느 지점에서 여러개의 파동이 상쇄되어 파동이 없는 것처럼 관측될 수도 있고, 반대로 증폭되어 진폭이 엄청 큰 파동을 관측할 수도 있다. 그러나 결국 이 것은 그 지점에 대해서만 그러한 것이지, 결국 파동은 제 갈 길을 간다. 여기서 착안하여 우리가 복잡한 신호를 어떻게 분석할 지 한번 살펴보자. 우리가 생각할 수 있는 주기성을 가지면서도 가장 친숙한 기준 신호를 고를 필요가 있다. 푸리에 변환은 그 기준 함수를 삼각함수, 그 중에서도 다양한 형태의 코사인(Cosine) 함수, 사인(Sine) 함수 형태를 한 신호들을 결합하면 원래의 신호를 근사할 수 있다는 점에서 착안되었다.
우리는 신호를 코사인 함수와 사인 함수로 분해하기로 결정하였다. 이제 우리가 알고 싶은 어떤 형태의 삼각함수, 즉 특정 진폭, 진동수, 위상을 가진 신호들이 얼마만큼 결합되어야 하는 지가 궁금하다. 그러기 위해서 우리는 시간에 대해 표현된 함수 전체를 특정 주파수에 대해서 사상하여 각 주파수마다의 크기와 위상차를 구할 것이다. 이게 무슨 말인지 잘 이해가 가지 않을 것이다. 차근차근 한 번 설명해 보겠다.
앞서서 우리는 관계식을 알고 갈 필요가 있다. 관계식은 다음과 같다.
오일러 공식이라 불리는 이 식은 복소수의 지수를 정의하는 데 출발점이 되며, 삼각함수와 지수함수의 관계를 나타낸다. 식에서 i 는 허수이다. 우리는 이 식을 하나의 벡터 식으로 볼 것이다. 기준 벡터는 실수측 방향의 벡터와 허수 측 방향의 벡터로 볼 것이다. 그랬을 때, 이러한 상상을 할 수 있을 것이다.
여기서 한 가지 더 생각할 수 있는 점은 굳이 실수 값과 허수 값의 합으로 복소수를 표현할 수도 있지만. 원의 반지름 즉 크기와 각도로도 복소수를 표현할 수도 있겠다는 생각이 든다. 이 때 반지름의 크기를 우리는 복소수의 크기(Magnitude)라 하고, 각도를 위상(Phase)이라 한다.
우리의 목표는 특정 주파수를 가진 함수들이 얼마만큼 차지하고 있는 지를 확인할 것이고, 그에 따른 위상차(Phase offset)도 확인할 거싱다. 위상차라 함은 기본 사인 곡선으로 부터 얼마만큼 떨어졌는 지를 보는 것이다. 앞서서 나는 전체 신호를 특정 주파수에 대해 사상할 것이라고 하였다. 어디다가 사상할 것인가 ? 바로 크기가 1이고 각도가 (주파수*2π)인 벡터에다가 사상할 것이다. 사상이 뭔지 모르겠다면 지면에 수직으로 빛을 비추어 그림자를 만드는 것처럼, 기준 벡터에 대해 그림자를 만드는 작업이라고 생각하면 된다. 지금 현재 시간상의 신호를 생각해보면, 아주 짧은 시간동안 특정 값이 주어지고(당연히 이 값은 실숫값이다!!), 시간에 따라서 변하게 된다. 그림으로 보자면 다음과 같다.
그리고 사상을 하게 된다면 다음과 같을 것이다.
우리가 할 일은 바로 사상된 복소 평면 상 벡터, 즉 파란색 벡터를 모아주는 작업을 시간에 대해서 반복하는 것이다. 사상을 하는 것을 표현하는 방법은 아주 간단하다. 그저 곱해주면 된다. 시간의 간격을 고려하지 않은 채 무작정 모으기만 한다면 "무한하다"라는 무의미한 결과 외에 얻을 것이 없다. 그래서 우리가 한 시점의 신호를 관측한 시간, 즉 △t를 가중치로 곱해 줄 것이다.
파란색 선을 모으는 것을, △t 간격을 무한히 짧은 간격으로 무한한 시간에 대해서 진행한다고 생각해보자.(친숙한 아이디어이다!! 짧은 간격으로 모으는 것, 바로 적분이다!!) 결과적으로 우리는 본 신호를 구성하고 있는 특정 주파수의 신호가 어떤 크기를 가지는 지, 얼마만큼의 위상차를 가지는 지를 알아낼 수 있을 것이다. 지금까지 설명했던 것을 하나의 식으로 정리하면 다음과 같이 정리할 수 있다.
푸리에 변환을 이해하는 것은 신호를 분석함에 있어서, 시간과 공간 외에 주파수라는 관점을 제공하여 줌으로써 신호의 성질을 이해하는 데 큰 도움이 된다. 예를 들어 푸리에 변환을 하여, 그 식을 그래프로 그렸고, 주파수가 커짐에 따라 커지는 경향을 보인다면, 그 신호는 주로 고주파의 신호로 이루어져 있다고 볼 수 있다. 반대로 원점에 신호가 몰려 있다면, 주로 저주파의 신호로 이루어져 있을 것이다. 푸리에 변환을 어떻게 하는 지 아는 것도 중요하지만, 더 중요한 것은 어떤 원리로 변환이 이루어지는 지 이해하는 것이라 생각한다. 이 것으로 글을 마치고자 한다.
'뭐라도 공부해보자!!( 이론 ) > Digital Signal Processing' 카테고리의 다른 글
CTFS, CTFT, DTFT, DTFS, DFT 정리 (3) | 2024.09.14 |
---|---|
FFT Algorithm, Cooley-Tukey Algorithm (0) | 2023.04.10 |
Exercise 2 : Conv 함수의 구현 (0) | 2022.12.27 |
Exercise 1 : DSP 실습 준비(여러 함수들 준비) (0) | 2022.12.20 |
1. Digital Signal Processing, 신호와 시스템 (0) | 2022.12.01 |