본문 바로가기

푸리에 변환, 신호/푸리에 변환의 모든 것

02-2. 푸리에 급수: 사인파의 합을 통해 복잡한 파형 만들기

반응형

앞장에서 "모든 신호는 단순한 신호의 조합으로 나타낼 수 있고, 이 단순한 신호는 사인파로 나타낼 수 있다"라고 했고, 사인파를 나타내는 방법을 알아봤다. 

 

이제 실제로 사인파들을 합쳐서 복잡한 신호를 만들어 보자.

 

사인파는 사인 함수 혹은 코사인 함수로 나타낼 수 있고, 진폭($A$), 주파수($f$), 위상($\phi$)에 따라서 파형이 달라지는 것을 알아봤다. 이제 이 3가지 값을 달리하면서 사인파를 만들어내고, 만들어진 사인파들을 합쳐 보면서 어떤 규칙이 있는지 알아볼 것이다.

 


진폭이 다른 사인파의 합

 먼저 주파수와 위상은 고정하고 진폭을 다르게 한 파형들을 합쳐보자.

 

고정하는 값

  • 주파수($f$) = 5
  • 위상($\phi$)=0

 

변화하는 값

  • 진폭($A$): 1, 2, 3, 4

 

진폭이 다른 두 파형을 합하면, 진폭이 커진다. (출처: 자작 https://github.com/rhaos68/fourier/blob/master/draw_merged_sine_wave2.py)

 

진폭이 1, 2, 3, 4인 4개의 사인파를 합치면, 진폭들을 전부 합친 진폭 10인 파형이 만들어진다. 이때 주파수와 위상은 바뀌지 않는다.

 

아래 테이블에서 보듯이, 각 파형의 값들을 시간 순서에 따라 각각 합치면, 전부 더해진 값을 가지는 파형이 생성되는 것은 당연하다. 즉, 진폭만이 바뀐 파형이 생성된다.

 


위상이 다른 사인파의 합

위상이 다른 사인파들을 합하는 것을 생각해보자.

 

두 파형의 위상이 같다면, 이는 두 개의 파형을 그냥 합하는 것이기에, 진폭이 2배로 늘어난 파형이 생성되고, 두 파형의 위상이 정 반대라면(한쪽이 +a일 때 다른 쪽 파형 값이 -a) 두 파형이 합해진 값은 0이 되어, 모든 영역에서 0인 파형이 될 것이다.

 

위상이 같은 두 파형이 합쳐질 때:

  • y1 : $\phi = 0$
  • y2 : $\phi = 2\pi$

 

위상이 같은 두 파형이 합치면, 진폭이 커진다. (출처: 자작  https://github.com/rhaos68/fourier/blob/master/draw_merged_sine_wave2.py)

 

위상이 다른 두 파형이 합쳐질 때: 

  • y1 : $\phi = 0$
  • y2 : $\phi = \pi$

 

위상이 180도 다른 두 파형을 합치면 파형이 사라진다. (출처: 자작 https://github.com/rhaos68/fourier/blob/master/draw_merged_sine_wave2.py)

 

위상 차이를 $\frac {\pi}{2}$로 주기의 절반 차이가 나게 했을 때는, 진폭이 1.5배 증가한 파형이 생성된다.

 

위상이 다른 파형을 합칠 때의 현상을 종합하면,

  • 위상이 같을 때는, 진폭이 같은 두 파형을 합친 것과 같기에, 진폭이 2배로 커진 파형이 됨
  • 위상이 조금 다를 때는 진폭이 0과 최대 진폭 사이를 가지게 됨
  • 위상이 180도 다를 때는 파형이 없어짐(값이 0)
  • 두 파형을 합쳐도 주파수는 항상 일정함

0에서 360도까지 위상이 다른 파형을 합칠 때의 모습을 애니메이션으로 보자.

 

위상이 0~360도까지 다른 두 파형의 합 (출처: 자작 https://github.com/rhaos68/fourier/blob/master/sum_diff_phase.py)

 


주파수가 다른 사인파의 합

주파수가 다른 파형들을 합쳐보자.

 

고정하는 값

  • 진폭($A$)
  • 위상차($\phi$)

 

변화하는 값

  • 주파수($f$) = 2,4,6,8

 

 

주파수가 다른 파형의 합. (출처: 자작  https://github.com/rhaos68/fourier/blob/master/draw_merged_sine_wave2.py)

 

주파수가 2,4,6,8인 4개의 파형을 합치니 흥미로운 패턴이 나타났다. 

합쳐진 파형은, 가장 낮은 주파수인 2를 가지면서, 그 안에서 주파수 4,6,8의 특성을 가지고 있다. 

 

 

여기서는 가장 작은 주파수 2를 기준으로 해서, 그 배수가 되는 4,6,8인 파형을 합친 것이고, 이때 가장 작은 주파수인 2를 주파수로 가지는 다른 파형이 생성되었다. 즉, 주파수가 {$b_1, b_2, b_3,...$}인 파형들을 합치면 각 주파수의 최대공약수가 되는 주파수를 기본 주파수로 가지는 파형이 생성된다.

 

여기서 계수를 $a$가 아닌 $b_1, b_2, b_3,...$로 사용한 것은, $\cos$에 대한 계수를 $a$로, $\sin$에 대한 계수를 $b$로 하려하기 때문이다. 이렇게 계수를 사용해야 나중에 푸리에 급수를 유도했을 때 공식 표현이 자연스럽게 된다.

 

생각해보면 당연하다. 

두 개 수열 w1, w2가 있을 때, w1의 주파수는 2이고, w2의 주파수는 4라고 해보자.

 

주파수가 2라는 것은 1초 동안에 2번 같은 것이 반복되는 것이고(주기가 1/2), 주파수가 4라는 것은 1초 동안에 같은 것이 4번 반복된다는(주기가 1/4) 것이다.

 

$\frac {1}{12}$초마다의 시간 간격으로 본다면, $w_1 = {1,2,3,4,56, 1,2,3,4,5,6}$과 같은 값을 가지게 된다. ($\frac {1}{12}$초 간격으로 한 것은, 주파수 2와 4를 표현할 때, 1초의 값이 정수가 되게 하기 위함이다. 4의 배수이면 되기에 1/4, 1/8, 1/12, 1/15 등의 값을 쓸 수 있다. 여기서는 1/12를 사용했다. )

 

마찬가지로 $w_2=\{1,2,3, 1,2,3, 1,2,3, 1,2,3,\}$과 같이 1초 동안에 4개의 같은 덩어리를 가지게 된다. (1/12 초 간격이기에 12개가 1초)

 

이러한 수열을 합하면, 아래와 같은 표가 되고, 두 수열의 합이 주파수 2의 속성을 가짐을 알 수 있다.


가장 작은 주파수 $f_1$을 기준으로 해서 $2f_1, 3f_1, 4_f1,...$되는 파형을 합하면, 주파수 $f_1$을 가지는 파형이 된다.

$f_1$의 배수들이기에 각 주파수의 최대공약수는 당연히 $f_1$이기 때문이다.

 

따라서, 이렇게 생각해볼 수 있다.

어떤 복잡한 파형이 있는데, 이 파형은 주기성을 가지고 있고 그 주파수가 $f$라면, 이 파형은 주파수 $f$의 정수배인 사인파들의 합으로 표현할 수 있다. 

 

복잡한 파형의 주기가 $f$이기에, 이를 맞추기 위해서 주파수가 $f$인 사인파를 기준으로 하고, $2f, 3f, 4f,...$ 등 짧은 주기를 가지는 파형들을 더해서 그 복잡한 파형의 모양과 맞춘다는 느낌이다.

 


여러 주파수의 파형을 합칠 때, 각각 진폭과 위상을 다르게 해야 모든 파형을 표시할 수 있을 것이다. 따라서, 기본 주파수 f를 가지고 만들어낼 수 있는 모든 파형의 식은 다음과 같이 될 것이다.

 

$$ y(t) = b_1 \sin (2 \pi ft + \phi {_1}) + b_2 \sin (2 \pi 2ft + \phi {_2}) + b_3 \sin (2 \pi 3ft + \phi {_2}) +...$$

 

위 식은 주기 $f$를 가지는 모든 파형을 나타낼 수 있을 거 같지만, 모두 $t=0$일 때 $0$값을 기준으로 해서 진폭이 변하는 파형이다. 즉, $y=0$을 중심으로 해서 위 아래로 변하는 파형.

 

이것을 임의의 $a_0$를 중심으로해서 변하는 파형이 되게 하려면, $a_0$ 값을 더해주면 되겠다.

 

그래서 완성된 식은,

 

$$ y(t) = a_0 + b_1 \sin (2 \pi ft + \phi {_1}) + b_2 \sin (2 \pi 2ft + \phi {_2}) + b_3 \sin (2 \pi 3ft + \phi {_2}) +...$$

 

식을 보면 덧셈이 반복되는 것이기에, 반복 덧셈을 표현하는 시그마($\sum$)를 써서 식을 간단히 쓰면, 

$$ y(t) = a_0 + \sum _{n=1}^{\infty}{b_n \sin (2\pi nf + \phi _n)}$$

 


위 식을 사인 함수만의 덧셈이 아닌, 사인 함수와 코사인 함수의 합 형태로 표현할 수 있다. (그렇게 하는 이유는, 그게 푸리에 급수의 표현이기 때문)

 

두 가지 방법으로 만들어볼 것이다. 

 

첫 번째 방법은 그래프를 통한 개념점인 유도, 두 번째는 수식을 통한 유도

 

1. 그래프 개념을 통한 푸리에 급수 형태로의 유도

위에서 기본 주파수 f의 파형과, 그 주파수의 정수배가 되는 파형들을 더하면, 주파수가 f이인 복잡한 파형을 만들 수 있다고 했다. 여기서 각 파형들은 각기 다른 진폭을 가지게 하고.

 

$$ y(t) = b_1 \sin 2 \pi ft + b_2 \sin 2 \pi 2ft +...$$

 

여기서 파형들의 위상이 전부 0이라면, 이 합쳐진 파형은 언제나 $t=0$일 때 0이다. 즉, 이 합쳐진 파형은 언제난 0에서 출발한다.  

 

위상이 0인 사인파를 합치면, 합쳐진 파형의 위상은 항상 0이다. 즉, t=0에서 언제나 0이다.

 

$t=0$에서 0이 아닌 파형은 표현할 방법이 없다. 어떻게 하면 될까? (위 에서는 위상이 다른 사인파를 더했다.)

 

코사인 함수로 만들어지는 사인파를 더하면 된다. (코사인 함수로 만들어지는 파도 그냥 '사인파'라고 부르겠다.)

이 파형은 $t=0$에서 어떤 진폭 $a$에 해당하는 값을 가지기에, 이 진폭을 조절하면 $t=0$에서 0 뿐만 아니라 임의의 모든 값을 가지는 파형을 표현할 수 있게 된다.

 

$$ y(t) = a_1 \cos 2\pi ft + b_1 \sin 2 \pi ft + a_2 \cos 2 \pi 2ft + b_2 \sin 2 \pi 2ft + ...$$

 

여기에 $y=0$이 아닌 임의의 $a_0$ 값을 중심으로 파형이 움직이게 하기 위해 $a_0$을 더하면,

 

$$ y(t) = a_0 + a_1 \cos 2 \pi ft + b_1 \sin 2 \pi ft + a_2 \cos 2 \pi 2ft + b_2 \sin 2 \pi 2ft +...$$

 

시그마($\sum$)로 표현하면,

 

$$ y(t) = a_0 + \sum _{n=1}^{\infty}{a_n \cos {2\pi nft} + b_n \sin {2\pi nft}    } $$ 

 

이것이 주파수 $f$를 가지는 임의의 주기 함수에 대한 푸리에 급수 표현이다. 즉, 이 수식으로 모든 주기 함수를 표현할 수 있다. 

 

2. 수식을 통한 푸리에 급수 형태로의 유도

다른 위상을 가지는 사인 함수로 표현된 아래식을 사인 함수와 코사인 함수의 합으로 유도해볼 것이다.

 

$$ y(t) = a_0 + \sum _{n=1}^{\infty}{b_n \sin (2\pi nft + \phi _n)}$$

 

이를 위해서는 먼저 '삼각함수의 합' 공식을 알아야 한다.

 

$$ \sin (\alpha + \beta) = \sin \alpha \cos \beta + \cos \alpha \sin \beta $$

$$ \sin (\alpha - \beta) = \sin \alpha \cos \beta - \cos \alpha \sin \beta $$

$$ \cos (\alpha + \beta) = \cos \alpha \cos \beta - \sin \alpha \sin \beta $$

$$ \cos (\alpha - \beta) = \cos \alpha \cos \beta + \sin \alpha \sin \beta $$

 

이 식에 대한 유도과정은 여기 참조

 

합 공식의 첫 번째 식을 이용해서 위 식을 변환해 보자,

 

$$ y(t) = a_0 + \sum _{n=1}^{\infty}{b_n \sin (2\pi nft + \phi _n)}$$

 

여기서 시그마 안의 $b_n \sin (2\pi nft + \phi _n)$에 대해 사인 합 공식으로 전개해보면,

 

$$ b_n \sin (2\pi nft + \phi _n) = b_n (\sin 2\pi nft \cos \phi _n + \cos 2\pi nft \sin \phi _n)$$

$$ = b_n \sin 2\pi nft \cos \phi _n + b_n \cos 2\pi nft \sin \phi _n $$

$$ = (b_n \cos \phi _n) \sin 2\pi nft + (b_n \sin \phi _n) \cos 2\pi nft$$

 

t가 변수인 식이기에 괄호 안의 값은 고정된 임의의 값이다. t에 따라서 변하는 값이 아니다. 따라서, 어떤 값 $a_n$, $b_n$으로 대체할 수 있다. (이때의 $a_n$, $b_n$ 값은 임의의 값이기에, $b_n \cos \phi _n$을 또 다른 $b_n$으로 놓을 수 있는 것이다.)

 

따라서 식을 아래와 같이 표현할 수 있고,

$$ (b_n \cos \phi _n) \sin 2\pi nft + (b_n \sin \phi _n) \cos 2\pi nft$$

$$ = b_n \sin 2\pi nft + a_n \cos 2\pi nft $$

$$ = a_n \cos 2\pi nft + b_n \sin 2\pi nft$$

 

이것을 원래의 $y(t)$ 식의 시그마 안에 넣어보면, 

 

$$ y(t) = a_0 + \sum _{n=1}^{\infty}{a_n \cos 2\pi nft + b_n \sin 2\pi nft} $$

 

이렇게 해서 다시 $\cos$과 $\sin$ 함수의 합으로 나타낼 수 있게 되었다.

 


푸리에 급수를 다시 써보면,

 

$$ y(t) = a_0 + \sum _{n=1}^{\infty}{a_n \cos 2\pi nft + b_n \sin 2\pi nft} $$

 

이것은 주파수 $f$를 사용해서 표현한 것이다. 앞 장에서 우리는 각 $\theta$를 각속도와 시간의 곱으로 나타냈고 ($\omega t$), 이것은 주파수의 표현으로 $2\pi ft$, 주기 $T$를 이용해서는 $\frac {2\pi t}{T}$ 됨을 알아봤다.

 

$$ \theta = \omega t = 2\pi ft = \frac {2\pi t}{T}$$

 

따라서 푸리에 급수를 각속도($\omega$)와 주기($T$)로도 표현할 수 있겠다.

 

$$ y(t) = a_0 + \sum _{n=1}^{\infty}{a_n \cos n\omega t + b_n \sin n \omega t} $$

$$ y(t) = a_0 + \sum _{n=1}^{\infty}{a_n \cos \frac {2\pi n}{T}t + b_n \sin \frac {2\pi n}{T}t} $$

 

푸리에 급수의 표현법은, 주파수($f$), 각속도($\omega$) 그리고 주기($T$)에 의한 표현법 모두를 익숙하게 알고 있도록 하자.

 


이번 장에서는, 아무리 복잡한 신호라도, 주기성만 가진다면, 해당 주기에 해당하는 주파수를 기본 주파수로 해서, 정수배가 되는 주파수들의 조합으로 그 복잡한 신호를 표현할 수 있고, 그러한 표현이 푸리에 급수라는 것을 알아봤다.

 

그런데, 문제는 푸리에 급수에 있는 계수들을 알아내는 것이다. 푸리에 급수의 $a_n$과 $b_n$이 그것으로, 이 계수를 알아낼 수 있어야, 푸리에 급수로 표현된 신호가 의미가 있을 것이다. 

 

이 $a_n$과 $b_n$은 '푸리에 계수'라 불리고 있으며, 이를 구하는 방법을 다음 장에서 알아본다.

 

-끝-

 

 이전글: 02-2. 푸리에 급수: 사인파의 표현 방법(사인함수, 각속도, 라디안)
 다음글: 03. 푸리에 계수
 다음다음글: 04. 푸리에 급수의 복소지수 표현

 

반응형