지난 시간까진 임의의 주기함수를 sin과 cos함수와 같은 기저함수(basis function)의 선형조합(Linear combination)으로 표현하는 방법인 푸리에 급수(Fourier Series)를 배웠다. 또한 여기에 허수(imaginary number)를 도입하여 지수함수로 간단히 표현하는 방법인 복소푸리에급수(Complex Fourier Series)에 대해서도 공부하였다. 이제 이번 강의부터는 복소푸리에급수로부터 출발하여 시간 영역에서 수집된 신호를 주파수 영역으로 변환시키는 푸리에 변환(Fourier Transform)에 대해 공부하도록 하겠다. 

 

 

 

1. 푸리에 급수(Fourier Series)에서 푸리에 변환(Fourier Transform)으로

 

- Basic idea of Fourier Transform

 

지난 강의에서 배웠던 푸리에 급수는 임의의 주기함수(periodic signal)를 다루는 방법이다. 하지만 살다보면 주기함수보다 비주기함수(aperiodic signal)를 접할 경우가 훨씬 많다. 우리가 일상생활에서 대화할 때 내는 목소리, 콘서트장에서 듣는 가수의 음성, 자동차 경적 소리, 심지어 우리가 보는 창밖 풍경도 카메라로 찍어 2차원의 이미지로 변환했을 때의 신호는 비주기 신호이다. 이처럼 우리는 주기함수보다 비주기함수를 다루고 해석해야 할 일이 훨씬 많다. 그러나 푸리에 급수는 주기신호에만 작동하기 때문에 비주기 신호를 다룰 수 없다. 그렇다면 어떻게 비주기 신호를 다룰 수 있을까? 이러한 비주기 신호를 주기신호로 만들어주면 가능하다. 아래의 그림을 살펴보자. 

 

 

Fig. 1 비주기 신호[Up]를 주기 신호[Down]로 만드는 과정

 

 

Fig. 1의 첫 번째 그림은 -T1에서 T1의 시간 동안 측정된 어떤 비주기 신호 f(t)를 나타낸다. 가로축은 시간 t를 나타내고 세로축은 신호의 강도를 의미한다. 이 f(t)는 어떤 반복되는 패턴이 없이 불규칙한 파형을 보이는 비주기 신호이다. 이미 배웠듯이 이러한 상태로는 푸리에 급수를 이용하여 신호를 나타낼 수 없다. 따라서 이 비주기 신호를 주기신호로 만들어야 한다. 어떻게 만들 수 있을까? 

 

주기신호로 만들기 위한 핵심 아이디어는 바로 -T1~T1 사이의 신호를 하나의 주기 동안 반복되는 패턴이라고 생각하는 것이다. 즉 현재의 비주기 함수 f(t)를 기준으로 주기 T만큼 떨어진 곳에 똑같은 패턴의 신호를 놓는 것이다. 그렇게되면 원래의 비주기 함수 f(t)가 T주기로 계속 반복되는 패턴이 형성되어 결과적으로 주기신호가 만들어지는 것이다. 이렇게 만든 주기함수가 바로 Fig. 1의 아래쪽의 그래프이다. 

Fig. 1의 아래쪽에 보이는 비주기 신호 f(t)로부터 만들어진 주기 신호는 f(t)에 물결표시를 붙여서 $\tilde{f}(t)$ (f tilde로 발음)로 표기한다. 양의 방향과 음의 방향으로 각각 T의 주기마다 원래의 비주기 신호가 반복되는 모습이다. 

 

여기서 우리는 한 가지 매우 중요한 사실을 알 수 있는데, Fig. 1에서 한 주기 T의 구간만 놓고 봤을 때, 즉 -T/2~T/2 혹은 0~T에서는 주기신호와 비주기신호가 같다는 것이다. 별것 아닌 것으로 보이겠지만, 이는 매우 중요한 포인트이며 푸리에 급수에서 푸리에 변환으로 넘어가는 아주 핵심 개념이 된다. 이것이 첫 번째 핵심 아이디어이고, 두 번째 핵심 아이디어는 주기를 늘리는 것으로부터 시작한다. Fig. 1의 아래 그림에서 period T라고 표시된 주기를 점점 늘려나가는 상상을 해보자. 즉 가운데 있는 비주기신호와 그 다음 나타나는 비주기신호 사이의 거리가 점점 늘어나서 무한대로 멀어진다고 생각해보자. 이때의 그림은 바로 Fig. 1의 위에 나타난 비주기신호의 그림과 동일해질 것이다. 이와 같이 두 번째 핵심아이디어는 비주기신호로부터 만들어진 주기신호는 주기가 무한대로 증가할수록 원래의 비주기신호와 점점 같아진다는 것이다. 이 두 가지 핵심 아이디어를 식으로 표현하면 아래와 같다. 

 

 

식 (1.1)은  첫 번째 핵심아이디어를 나타낸다. 즉 t의 크기가 T/2보다 작다는 것은 t가 한 주기 T내에 존재할 때를 의미하며, 이때 주기신호와 비주기신호는 같으며, Fig. 1의 아래의 주기신호에서 가운데 -T/2~T/2사이의 신호만을 의미한다. 식 (1.2)는 두 번째 핵심 아이디어를 의미하며, 주기신호 f(t)의 주기 T가 무한대로 갈수록 주기신호는 비주기신호와 점점 같아진다는 것이다. T가 무한대로 간다는 것은 Fig. 1의 아래의 주기신호에서 가운데 신호와 양 옆의 신호들과의 간격이 점점 넓어지는 것을 의미한다. 이 두 가지 핵심 아이디어를 푸리에 급수에 적용하면 우리는 비주기신호를 다룰 수 있는 푸리에 변환(Fourier Transform)을 정의할 수 있다. 이제 푸리에 급수에 이 아이디어를 적용해보자. 

 

 

 

2. 분석방정식(Analysis equation)과 합성방정식(Synthesis equation)

 

- Analysis equation for Aperiodic signal

 

지금부터 공부할 내용은 앞서 배웠던 두 가지 아이디어를 푸리에 급수에 적용하여 분석방정식(Analysis equation)을 도출할 것이다. 분석방정식이라고 거창하게 이야기 했지만 사실 푸리에 급수의 계수를 구하는 식을 분석방정식이라 표현하는 것이므로 너무 어렵게 생각하지 말자. 우선 지난 시간에 배웠던 복소푸리에급수의 식을 다시 써보자. 

 

 

식 (2)는 지난 시간에 배웠던 복소푸리에급수의 일반식을 그대로 쓴 것이다. 지난 시간에는 주로 T=2PI인 경우를 가정하여 푸리에급수를 다루어 왔으나, 임의의 주기 T에 대한 일반화된 식은 (2)와 같이 쓸 수 있다. 여기서 시간에 관한 변수를 x로 작성했었는데, 보다 직관적인 표기를 위해 시간에 대한 변수를 x대신 t로 바꾸어서 쓰도록 하겠다. 또한 주기 신호와 비주기 신호를 구분해야 하기 때문에 f(t)대신 물결표시를 붙여 f tilde로 표기하도록 한다. 이렇게 바꾸어 작성하면 (3)과 같이 쓸 수 있다. 

 

식 (3.1)은 주기함수를 다룰 수 있는 푸리에급수에 관한 식을, (3.2)는 각 주파수 성분이 전체 신호에서 어느 정도의 기여를 하는지를 나타내는 가중치(weight), 혹은 계수(coefficient)를 구하는 식이다. 이때 (3.1)을 종합방정식(synthesis equation), 혹은 합성방정식이라 하고, (3.2)는 분석방정식(analysis equation)이라고 한다. (3.2)의 푸리에 급수 계수를 구하는 분석방정식들을 종합하여 합성방정식을 정의하고 이를 통해 어떤 주기신호에 대한 푸리에 급수를 정의할 수 있는 것이다. 

 

지금부터가 중요하니 집중해서 보도록 하자. (3.2)를 보면 적분이 분명 한 주기에 대한 구간, 즉 -T/2~T/2사이에서 일어나고 있다. 다시 말하면 어떤 주기신호에서 한 주기 T의 구간에서 진행되는 적분이다. 그런데 우리는 두 번째 아이디어에서 주기 신호의 주기를 무한대로 보내면 비주기 신호와 점점 같아진다고 하였고, 주기 신호와 비주기 신호는 적어도 한 구간 T에서는 같다고 정의하였다. 이는 다시 말하면 식 (3.2)의 주기 신호(periodic signal)의 한 구간에 대한 적분에서 주기 T를 무한대로 보낸 것은 비주기 신호(aperiodic signal)를 한 주기 T에 대해서 적분한 것과 같음을 의미하는 것인데, 이때 T를 무한대로 보냈으므로 비주기 신호를 무한대의 영역에 걸쳐 적분한 것과 같다. 확인을 위해 먼저 식 (3.2)의 적분식에서 주기 T를 무한대로 보내보자. 

 

(※ 참고로 식에 존재하는 T를 전부 한번에 무한대로 보내지는 않을 것이다. 이후에 합성방정식을 정리할 때 작용해야 할 부분들이 있기 때문에 T를 단계적으로 무한대로 보낼 것이다)

 

 

식 (3.2)는 주기 신호의 푸리에 급수의 계수를 구하는 식이다. 여기서 주기 T를 무한대로 보내면 각각 -T/2는 음의 무한대, T/2는 양의 무한대가 된다. 앞서 우리는 한 주기내에서는 주기와 비주기 신호가 같다고 정의했으므로 f tilde를 비주기 신호를 나타내는 문자 f(t)로 바꿔쓸 수 있다. 이렇게 하여 (3.3)과 같이 정리할 수 있는데, 여기서 1/T은 주파수 $f$와 같고, $2\pi/T$를 각주파수(Angular frequency)를 나타내는 기호인 오메가($\omega_0$)로 표기할 수 있다. 이렇게 하여 주기 신호(Periodic signal)의 푸리에 급수에 대한 계수 식 (3.2)를 (3.4)와 같이 비주기 신호(Aperiodic signal)에 대한 푸리에 급수 계수의 식으로 나타낼 수 있다

 

다시 말하면 식 (3.2)를 Fig. 1의 아래쪽 주기 신호에 대한 한 구간(-T/2~T/2)에서의 식으로, (3.4)를 Fig. 1의 위쪽의 비주기 신호에 대한 식을 나타낸 것으로 이해하면 된다. 이 둘은 식의 형태는 약간 다르지만 동일한 신호를 나타내는 것이다. f와 f tilde를 유의해서 보자. 

(※ 앞서 언급했지만 한 번더 강조하자면 여기서 적분기호 인테그랄 앞의 1/T과 복소지수함수에 존재하는 T는 아직 그대로 있는 것을 볼 수 있는데, 이들은 전체식을 유도할 때 다루기 위해 일단 그대로 두도록 하자. 전체 식과 같이 볼 때 어떤 작용을 하기 때문이다) 

 

이제 우리는 식 (3.4)를 통해 비주기 신호에 대한 푸리에 급수의 계수들을 구할 수 있게 되었다. 식 (3.4)는 매우 중요한 역할을 하는 식이며, 이 식으로부터 우리는 푸리에 변환(Fourier Transform)을 정의할 수 있다. 아래의 식을 보자. 

 

 

식 (3.4)는 앞서 말했듯이 비주기 신호 f(t)에 대한 푸리에 급수 계수를 구하는 식이다. 이제 식의 양변에 주기 T를 곱해주면 식 (4.1)과 같이 정리할 수 있는데, 아직까지는 지수함수의 지수부에 대한 입력 파라미터로 임의의 정수 n과 고정된 각주파수(angular frequency) $\omega_0$를 받는 것으로 정의되어 있다. 이 n과 $\omega_0$의 곱을 연속변수(continuous variable) 오메가($\omega$)로 정의하여 다시 식을 정리하면 (4.2)와 같이 정리할 수 있는데, 여기서 연속변수로 정의한다는 것은 각주파수 $\omega_0$가 0으로 가는 것을 의미한다. $\omega_0=2\pi/T$임을 생각해본다면 T를 무한대로 보냄에따라 $\omega_0$가 0으로 가고, 그에 따라 오메가가 연속 변수가 됨을 유추할 수 있다. 여기서 cn앞에 곱해져 있는 주기 T는 아직 무한대로 보내지 않은 상태이다. 여기까지 정리한 식 (4.2)가 바로 푸리에 변환(Fourier Transform)이다. 

 

식 (4.2)는 비주기 신호 f(t)를 무한대의 영역에서 적분하여 $F(\omega)$로 변환시키는데, 사실 식 (4.3)과 같이 $F(\omega)$를 주기 T로 나누어주면 푸리에 급수 계수 cn을 구할 수 있게 된다. 이는 매우 중요한 사실을 의미하는데, 원래의 푸리에 급수는 주기 신호만 다룰 수 있고, 주기 신호의 푸리에 급수 계수 cn만을 구할 수 있는데, 식 (4.2)를 통해서 비주기 신호에 대한 푸리에 급수 계수 cn을 구할 수 있게 된 것이다. 이것이 푸리에 변환이 하는 핵심 역할중 하나이다. 결국 는 비주기 신호 f(t)의 푸리에 급수 계수들에 대한 포락선 함수(envelope function)라 할 수 있다

 

여기서 다시 한 번 생각해보자. 푸리에 급수의 계수 cn을 구한다는 것은 어떤 의미인가? 계수 cn은 어떤 신호를 푸리에 급수로 표현했을 때, 특정 주파수가 그 신호를 만들어내는데에 있어 얼마만큼 기여하는지를 나타내는 수치이다. 어떤 신호에 대한 푸리에 계수 cn을 모두 구해서 주파수를 x축으로 하여 이 계수들을 전부 나열했다고 생각해보자. 이때의 그래프는 해당 신호의 주파수에 대한 분포를 나타내는 것이다. 결국 푸리에 계수 cn을 구한다는 것은 어떤 신호의 주파수 성분의 분포를 구하여 주파수의 분석이 가능하도록 만들어주는 수학적 도구라고 할 수 있다

 

이처럼 식 (4.2)의 비주기 신호에 대한 푸리에 변환을 할 때 구하고자 하는 주파수 성분의 계수를 구하기 위해선 입력값으로 $n\omega_0$를 넣어주면 계수 cn을 구할 수 있게 되는 것이다. (4.3)과 같이 은 주기 T가 곱해진 값이 구해지고, 실제 계수 cn을 구하기 위해선 T로 나누어주면 된다. 이러한 cn을 연속적으로(continuously)구해서 연결해주면 f(t)의 계수값들에 대한 포락선(envelope)이 구해진다. 포락선이란 쉽게 말해 임의의 신호의 최대값들을 연결하여 구성한 신호로 어떤 신호의 전체 외곽선(outline)을 나타낸 것으로 생각하면 된다(wiki 참조). 

 

이렇게하여 비주기 신호의 푸리에 급수의 계수를 정의할 수 있는 푸리에 변환을 정의하였다. 푸리에 변환은 다른 말로 분석방정식(Analysis equation)이라 하는데, 그 이유는 뒤이어 공부할 합성방정식의 내용에서 함께 설명하도록 하겠다. 비주기 신호의 푸리에 변환 (4)는 비주기 신호의 합성방정식을 정의하는데에 있어 매우 중요한 역할을 한다. 이제 이를 기반으로 비주기 신호의  합성방정식을 정의해보자. 

 

 

- Synthesis equation for Aperiodic signal

 

비주기 신호를 다룰 수 있는 푸리에 급수(합성방정식)를 정의하는 전략은 크게 두 단계로 나뉘는데, 먼저 비주기 신호의 양옆에 같은 패턴의 신호를 주기적으로 붙여서 주기 신호로 만들고, 그 다음 이렇게 만들어진 주기 신호의 주기를 무한대로 보내어 비주기 신호를 주기 신호와 같이 정의할 수 있도록 만드는 것이다. 즉 주기 신호에 대한 푸리에 급수식으로부터 비주기 신호의 푸리에 급수 식을 정의하는 것이다. 아래의 식을 보자. 

 

 

식 (5.1)은 주기 함수에 대한 푸리에 급수식이다. 여기서 $\omega_0=2\pi/T$와 식 (4)에서 정의했던 cn에 대한 식을 기존의 식에 각각 대체해주면 (5.2)와 같이 정리할 수 있다. 이때 cn에 대한 식은 오메가($\omega$) 를 아직 연속변수로 설정하지 않은 상태, 즉 식 (4.1)의 상태이다. 다음으로 주기 T를 $T=2\pi/\omega_0$와 같이 대체하여 (5.3)과 같이 정리하자. 이제 마지막으로 주기 T를 무한대로 보내자. 주기가 무한대로 감에 따라$\omega_0$가 0으로 수렴하고 결국 delta omega($d\omega$)가 된다. 이 delta omega에 의해 이산적인 합을 계산하는 시그마는 연속적인 합을 계산하는 적분(integral)으로 변화하게 되고, n과 곱해졌던 $\omega_0$들은 연속변수인 $\omega$로 쓸 수 있다. 이렇게 식을 정리하면 최종적으로 식 (5.4)와 같이 쓸 수 있다. 

 

식 (5.4)는 최초의 주기신호의 푸리에 급수 (5.1)에 푸리에 변환(Fourier Transform)식 (4.2)를 적용하여 유도한 것이다. 이렇게 유도된 식 (5.4)가 바로 역푸리에 변환(Inverse Fourier Transform)이다. 푸리에 변환과 역푸리에 변환을 다시 한 번에 정리해보자. 

 

 

식 (6.1)를 보면 비주기 신호의 함수 f(t)가 시간의 영역($dt$)에서 무한대에 걸쳐 적분이 이루어지고 있다. 그리고 그 결과는 입력 주파수 $\omega$에 대한 출력값 이다. 즉 를 그래프 상으로 보자면 수평(horizontal)축은 주파수$\omega$이고 수직(vertical)축은 해당 주파수가 얼마만큼의 강도를 갖는지에 대한 값 이다. 결과적으로 (6.1)의 푸리에 변환을 통해 시간 영역(time domain)에서 정의된 비주기 함수 f(t)를 주파수 영역(frequency domain)으로 변환시키는 꼴이 된다. 이렇게 변환을 시키게 되면 f(t)에 주파수들이 어떻게 분포해 있는지를 파악할 수 있다. 이와 같이 시간 영역에서의 신호를 주파수 영역에서 분석(Analysis)할 수 있도록 만들어 주는 것이 푸리에 변환(Fourier Transform)이고 이를 분석방정식(Analysis equation)이라 한다. 또한 식에 존재하는 허수로부터 푸리에 변환 결과가 식 (6.2)와 같이 복소수 형태로 나온다는 것을 유추할 수 있다. 혹은 (6.3)과 같이 푸리에 변환의 크기(magnitude)와 각도(angle)로 표현할 수 있다. 식 (6.3)의 크기와 각도는 각각 푸리에 스펙트럼(Fourier Spectrum)위상(phase)이라고 할 수 있는데, 경우에 따라서는 스펙트럼 못지않게 위상에도 중요한 정보가 담겨있는 경우가 많다. 

 

푸리에 변환식과는 반대로 식 (7.1)는 비주기 신호에 대한 주파수 영역의 함수 가 주파수 영역($d\omega$)에서 무한대에 걸쳐 적분이 이루어지고 있다. 그리고 그 결과는 원래의 시간 영역에서의 비주기 함수 f(t)이다. 이는 결과적으로 어떠한 비주기 신호의 주파수 영역에서의 값들을 적분하여 원래의 신호를 복원하는 것이다. 이것이 역푸리에 변환(Inverse Fourier Transform)이고 주파수 영역의 값들을 합성(synthesis)하여 시간 영역에서의 신호를 만들어주는 합성방정식(Synthesis equation)이다. 

 

이와 같이 푸리에 변환 및 역변환은 시간 영역에서 수집된 신호를 주파수 영역에서 분석할 수 있게 해주고, 주파수 영역의 값들을 이용해 다시 시간 영역의 신호로 합성할 수 있는 방법론을 제공해준다. 따라서 푸리에 변환이 분석방정식, 푸리에 역변환이 합성방정식으로 각각 불리는 것이다. 이러한 관계를 표현한 것이 식 (7.2)이다. 푸리에 변환/역변환을 이용하면 특정 주파수대의 신호를 제거하거나 더해주는 등 다양한 조작이 가능하며 실제로는 잡음(noise) 제거, 혹은 음성 변조 등의 응용이 가능하다. 

 

 

 

 

3. 연속시간 푸리에 변환의 예

 

- Continuous-Time Fourier Transform of Square wave

 

연속시간 푸리에 변환(Continuous Fourier Transform)의 이해를 돕기 위해 예를 들어보자. 마찬가지로 사각파(square wave)를 이용하도록 하겠다. 아래 그림은 임의의 비주기 사각파를 나타낸다. 

 

 

Fig. 2 비주기 사각파(Aperiodic square wave)를 주기 사각파로 만드는 과정

 

 

Fig. 2의 왼쪽 그림은 비주기 사각파를, 오른쪽은 양쪽에 일정 주기 T만큼 띄워서 동일한 패턴의 사각파를 놓아 주기 사각파(periodic square wave)로 만든 모습이다. 주기 신호로 만들었기 때문에 푸리에 급수로 위의 신호를 나타낼 수 있다. 이제 푸리에 급수를 적용하여 -T/2~T/2 구간에서 적분을 해보자. 

 

 

식 (8)은 Fig. 2의 주기 사각파의 푸리에 계수를 구하기 위한 분석방정식(Analysis equation)이다. -T/2~T/2 구간을 살펴보면 총 세 곳으로 나누어서 적분을 수행할 수 있다. 이렇게 나눈 구간으로 만든 적분식이 (8.1)인데, 이중 -T0~T0를 제외한 나머지 구간은 f(t) 값이 0이기 때문에 식을 생략할 수 있다. 생략한 나머지 구간에 대한 식은 (8.2)와 같이 정리할 수 있고, 적분을 수행하면 (8.3)과 같이 되는데, 지수함수(exponential)식에 오일러 공식을 적용하여 정리하면 (8.4)와 같이 정리할 수 있다. cos항은 상쇄되어 없어지고 sin항만 남게 되는데, 이 부분이 (8.5)이다. 이제 소거되는 항들을 없애주어 정리하면 사각파의 푸리에 급수 계수를 구하는 식은 최종적으로 (8.6)과 같이 정리할 수 있다. 

 

식 (8)에서 사각파에 대한 분석방정식을 도출하였으므로 이 식을 합성방정식(synthesis equation)에 대입하여 푸리에 급수로 표현하여 Fig. 2와 같이 사각파를 생성할 수 있다. 이제 이와 같이 생성한 사각파를 푸리에 변환(Fourier Transform)을 통해 주파수 영역으로 바꿔보자. 함수 f(t)를 만들었기 때문에 푸리에 변환식 (4.2)를 구현해주면 푸리에 변환을 할 수 있다. 아래 그림은 위의 사각파에 대한 푸리에 변환 결과이다. 

 

 

Fig. 3 사각파의 주기에 따른 푸리에 변환 결과

 

 

Fig. 3은 사각파 푸리에 변환 결과를 나타낸다. 그러면서 동시에 사각파의 주기를 점점 늘리면서 푸리에 변환의 결과가 어떻게 변하는지를 나타내고 있다. Fig. 3의 첫 번째 줄의 왼쪽 그림은 사각파의 주기가 T0의 4배일 때의 파형을 나타내고, 오른쪽은 푸리에 변환 결과 그래프를 나타낸다. 푸리에 변환 그래프를 보면 우선 0에 가까운 저주파 구역의 푸리에 계수들이 높은 값을 가지고 있고, 고주파로 갈 수록 상대적으로 낮은 값을 가지고 있는 것으로 보인다. 이것이 의미하는 것은 왼쪽의 사각파형을 만들기 위해서는 낮은 주파수의 성분이 상대적으로 더 높은 기여를 하고 있음을 의미한다. 

 

 

푸리에 변환 그래프에서 빨간색 그래프를 볼 수 있는데, 이는 각 푸리에 계수들의 극대값들을 이어 그린 포락선(envelope)이다. 이 포락선은 어떤 신호의 전반적인 패턴을 파악할 수 있는 신호로써 실제 신호처리에서도 신호분석을 위한 중요한 요소로써 사용되기도 한다. 

 

다음 두 번째 줄의 그래프는 T0의 8배에 해당하는 주기를 가졌다. 첫 번째 사각파보다 주기가 2배 길어진 셈인데, 그에 따른 오른쪽의 푸리에 변환 그래프를 보면 앞의 그래프에 비해 보다 촘촘한 형태를 띄는 것을 볼 수 있다. 왜 이런 현상이 발생하는 것일까? 이는 주기를 늘림에 따라 주파수가 줄어들기 때문이다. 사각파의 푸리에 계수를 구하는 식 (8.6)을 다시 써보자. 

 

 

1/T가 주파수 f와 같기 때문에 식 (8.6)의 주기 부분을 다시 정리해보면 (8.7)과 같이 정리할 수 있다. 주파수와 주기의 관계에 따라 주기가 증가할수록 주파수는 감소하기 때문에 똑같은 n=1일 때의 계수도 주기가 늘어날 수록 더 작은 주파수를 표현하는 셈이 되기 때문이다. 또한 푸리에 변환 그래프에서 값의 크기가 원래 사각파의 주기가 늘어남에 따라 줄어드는 모습을 볼 수 있는데, 이는 주파수를 보다 세밀한 영역에 걸쳐 표현했기 때문에 해당 주파수의 실제값에 근접하게 되는 것이다. 

 

Fig. 3의 마지막 줄의 그래프를 보면 사각파는 T0의 32배에 해당하는 주기를 가진 것이고, 이때의 푸리에 변환의 그래프는 보다 부드러운 형태가 된 것을 볼 수 있다. 이런식으로 주기 무한대까지 증가한다면 결과적으로 푸리에 변환의 포락선은 연속적(continuous)인 그래프의 형태에 가까워질 것이다. 이것이 연속시간 푸리에 변환(Continuous-Time Fourier Transform)이다. 

 

정리하자면 최초의 비주기 사각파에서 동일한 패턴의 신호들을 양쪽에 더해 주기 신호를 만들고, 여기에 푸리에 급수를 적용한다음, 다시 주기를 무한대로 보내서 푸리에 변환을 수행한 것이다. 식 (4.2)의 푸리에 변환식을 보면 비주기 함수 f(t)를 적분하여 푸리에 변환을 수행하는데, 이는 기존의 주기 신호의 주기를 무한대로 보내어 원래의 비주기 신호와 동일하게 만든것이다. 이러한 수학적 트릭을 통해 우리는 애초에 다룰 수 없었던 비주기 신호를 푸리에 급수로 다루는 것은 물론 푸리에 변환을 통해 주파수 영역에서 해석할 수 있는 기틀을 마련한 것이다

 

아래는 본문에서 다루었던 연속 시간 푸리에 변환을 구현한 MATLAB 코드이다. 코드의 마지막 부분에 역푸리에 변환(Inverse Fourier Transform)에 대한 코드도 작성하였으니 관심있다면 돌려보기 바란다. (※ 참고로 아래의 코드는 연속시간 푸리에 변환의 개념을 설명하기 위한 코드이므로 최적화된 코딩은 아니며, 수식을 최대한 직관적으로 구현하려고 노력하였다) 

 

 

 

 

4. 마치며(continue)

 

이번 강의에선 연속시간 푸리에 변환에 대해 공부하였다. 푸리에 변환의 주요 목적은 주파수 영역에서 신호를 해석하는 것, 그리고 비주기 함수를 다루는 것이다. 실생활에서 대부분이 비주기 신호이고, 이러한 비주기 신호는 푸리에 급수로는 다룰 수 없었다. 그러나 이를 주기 함수로 만들고, 다시 주기를 무한대로 보내는 등의 트릭을 이용하여 우리는 비주기 함수를 푸리에 변환시킬 수 있었다. 

그러나 아직 주기함수를 푸리에 변환시키는 것에 대해서는 이야기하지 않았다. 다음 강의에서는 주기함수의 푸리에 변환에 대해 배우고 이산 푸리에 변환으로 넘어가도록 하자. 

 

+ Recent posts