Fourier Series and Fourier Transform

Table of Contents

  1. Continous Time Fourier Series
  2. Continous Time Fourier Transform (CTFT)
  3. inverse - Continous Time Fourier Transform (iCTFT)
  4. Summary

학부 과정에서 신호 및 시스템 과목을 수강하지 않은 상태에서 푸리에 변환이라는 주제는 처음에 너무 어렵게 다가왔다. 공부를 진행할수록 새로운 기호와 좌표체계들이 등장하며, 개념 하나를 이해하는 데에도 많은 시간이 걸렸다. 이런 특징을 살려 초보자의 시각에서 푸리에 변환을 이해한 과정을 정리해 보았다.


Continous Time Fourier Series

푸리에 급수는 주기신호 $x(t)$가 동일한 기본 주파수를 갖는 고조파(harmonics)의 선형결합으로 나타낼 수 있음을 의미한다.

\[x(t)=\sum_{n=-\infty}^{\infty} C_n e^{j\omega_0nt}\]
  • $x(t)$ : 기본 주기 $T_0$ 를 가지는 주기 신호
  • $e^{j\omega_0 nt}$ : 기본 각주파수 $w_0$ 의 배수로 구성된 정현파
  • $C_n$ : 각 정현파가 얼마나 포함되어 있는지를 나타내는 푸리에 계수


이어서 푸리에 계수는 다음과 같이 계산된다:

\[C_n = \frac{1}{T_0} \int_{<T_0>} x(t)e^{-j\omega_0 nt} dt\]



어떻게 주기신호들을 고조파들의 선형결합으로 나타낼 수 있고,
각 계수 $C_n$ 은 왜 위와 같은 수식으로 작성된 것일까?


푸리에 급수식은 단순히 수식으로 보면 이해하기 어렵지만, 복소 지수 함수의 성질과 주기 신호의 특징을 하나씩 살펴보면 직관적으로 이해할 수 있다. 푸리에 급수의 이해는 $T_0$ 를 기본 주기로 하는 2개의 임의의 정현파 $e^{j\omega_0 nt}, e^{j\omega_0 mt}$ 를 내적해보는 것으로 시작한다.

잘 알고 있듯이, 내적연산은 각 성분에 곱셈을 취한뒤 모두 더하는 것으로 계산이 이루어진다. 복소지수 함수의 내적은 다른 복소수를 conjuagate 취하여 적분하는 특징이 있다:

\[\begin{aligned} <e^{j\omega_0 n t}, e^{j\omega_0 m t}> &= \int_0^{T_0}e^{j\omega_0 nt}e^{-j\omega_0 mt} dt \\ &= \int_0^{T_0}e^{jw_0(n-m)t}dt \end{aligned}\]

위 수식은 2가지 상황을 고려할 수 있다. 먼저 $n = m$ 인 경우, 지수가 0이 되기 때문에 1을 구간 $T_0$ 에 대해서 적분한 결과인 $T_0$ 가 된다. 반면, $n ≠ m$ 인 경우는 어떨까? 어떤 정현파가 살아있고 주기 $T_0$ 를 적분하게되면 정현파의 특징에 의해 0이 될 것이다. (마치 sine 또는 cosine 함수를 1번의 주기에 대해 적분한 것과 같다.)


여기서 중요한 특징을 알 수 있는데, 동일한 기본 주기를 갖지만 서로 다른 정현파들의 내적은 0이라는 것이다. 이는 벡터공간의 내적에서 두 정현파는 서로 직교(orthogonal)한다는 것을 알 수 있고, orthogonal basis로서 해석될 수 있음을 말한다.

이어서 푸리에 계수는 각 basis에 얼마나 많이 영향력을 행사하는지 찾는 것과 같다. 위의 그림에서와 같이 임의의 벡터 $k$ 가 존재할 때, $x$ 축으로 얼마나 많은 값을 갖고 있는지 알기 위해 $x$ 축 basis와 내적하고 축 자체가 갖는 크기로 나누어준다. 이렇게 되면, 다른 축들과는 orthogonal 하기 때문에 성분이 0이되고 오로지 $x$ 축이 갖는 계수를 알 수 있다.


Harmonics들만 basis로 가져도 충분한 이유는 주기신호의 성질에 있다. 주기신호는 기본주파수와 그 조화 성분으로만 구성되기 때문에 당연히, 고조파들의 선형결합만으로 충분히 표현이 가능하다.


Continous Time Fourier Transform (CTFT)

반면, 주기신호가 아닌 비주기 신호에 대해서는 어떨까? 동일한 물음은 푸리에 변환의 개념을 등장시키게 했다. 위에서 살펴보았던 푸리에 계수 $C_n$ 에 대해 양변에 주기 $T_0$ 를 극한으로 보내면 푸리에 변환 식을 얻을 수 있다.

\[\lim_{T_0 \rightarrow \infty} C_n T_0 = \lim_{T_0 \rightarrow \infty}\int_{<T_0>} x(t)e^{-j\omega_0nt} dt\]
  1. 적분 구간의 변경: $[-\infty, \infty]$
  2. 각주파수의 값이 연속적인 값으로 변경 $\omega_0 n \rightarrow \omega$
  3. 기호 변경 $C_nT_0 \rightarrow X(\omega)$: 신호의 크기와 위상을 나타내는 스펙트럼 함수
\[X(\omega)=\int_{-\infty}^{\infty} x(t)e^{-j\omega t} dt\]


fourier transform https://dibsmethodsmeetings.github.io/fourier-transforms/

의미를 해석해보면, 시간 도메인에서의 신호에 어떤 주파수들이 그리고 얼마나 강하게 존재하는지 펼쳐서 보는 것이 된다. 반대로, 주파수 도메인에서의 정보들이 존재한다면 원래의 연속시간 신호 $x(t)$ 로 복구하는 것도 가능하다.


inverse - Continous Time Fourier Transform (iCTFT)

역푸리에 변환은 주파수 영역 정보를 다시 시간 영역으로 변환하는 방법을 알려준다. 이번에는 푸리에 계수식이 아닌, 푸리에 급수식에 대해 극한을 취하는 것으로 증명한다:

\[\begin{aligned} \lim_{T_0 \rightarrow \infty} x_{T_0}(t) &= \lim_{T_0 \rightarrow \infty} \sum_{n=-\infty}^{\infty} C_n e^{-j\omega_0 nt} \\ &= \lim_{T_0 \rightarrow \infty} \frac{1}{2\pi} \sum_{n=-\infty}^{\infty} T_0 C_n e^{-j\omega_0 nt}\; \frac{2\pi}{T_0} \\ &= \frac{1}{2\pi} \lim_{T_0 \rightarrow \infty} \sum_{n=-\infty}^{\infty} T_0 C_n e^{-j\omega_0 nt}\; \frac{2\pi}{T_0} \end{aligned}\]


위 식에서 기본 주기 $T_0$ 가 극한 $\infty$ 로 향하면서 $T_0C_n$ 은 이전에 정의했던 것과 같이 기호 $X(\omega)$ 로 작성할 수 있으며, $\frac{2\pi}{T_0}$ 는 기본 각주파수 $\omega_0$가 되는데 $T_0$ 가 발산함에 따라 연속적인 값을 갖게되어 $\omega$ 로 작성된다. 이는 구분구적법의 정의와 같아지고, 가로가 $\omega$ 세로는 $X(\omega) e^{-j\omega t}$ 의 값을 갖는다.

\[x(t)=\frac{1}{2\pi} \int_{-\infty}^{\infty}X(\omega)e^{-j\omega t} d\omega\]

alt text


Summary

푸리에 변환은 시간 영역에서 신호를 분석하여 주파수 영역의 정보를 얻는 매우 강력한 도구로서 활용된다. 현재 신호처리 뿐만 아니라 음성 인식 영상 분석등의 분야에서 없으면 안될 개념으로 사용되고 있다. 또한, 푸리에 급수로 부터 시작하여 각 고조파들이 orthogonal basis로 해석될 수 있다는 사실을 이해한다는 것이 중요해 보인다.

alt text

Written by

Jongmoon Ryu

Passionate about speech synthesis and algorithms, with an open mind toward data-driven technologies.

Start the conversation