본문 바로가기

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

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

반응형

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

 

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

 

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

 


진폭이 다른 사인파의 합

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

 

고정하는 값

  • 주파수(f) = 5
  • 위상(ϕ)=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 : ϕ=0
  • y2 : ϕ=2π

 

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

 

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

  • y1 : ϕ=0
  • y2 : ϕ=π

 

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

 

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

 

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

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

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

 

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

 


주파수가 다른 사인파의 합

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

 

고정하는 값

  • 진폭(A)
  • 위상차(ϕ)

 

변화하는 값

  • 주파수(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를 주파수로 가지는 다른 파형이 생성되었다. 즉, 주파수가 {b1,b2,b3,...}인 파형들을 합치면 각 주파수의 최대공약수가 되는 주파수를 기본 주파수로 가지는 파형이 생성된다.

 

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

 

생각해보면 당연하다. 

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

 

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

 

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

 

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

 

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


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

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

 

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

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

 

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

 


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

 

y(t)=b1sin(2πft+ϕ1)+b2sin(2π2ft+ϕ2)+b3sin(2π3ft+ϕ2)+...

 

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

 

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

 

그래서 완성된 식은,

 

y(t)=a0+b1sin(2πft+ϕ1)+b2sin(2π2ft+ϕ2)+b3sin(2π3ft+ϕ2)+...

 

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

y(t)=a0+n=1bnsin(2πnf+ϕn)

 


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

 

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

 

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

 

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

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

 

y(t)=b1sin2πft+b2sin2π2ft+...

 

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

 

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

 

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

 

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

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

 

y(t)=a1cos2πft+b1sin2πft+a2cos2π2ft+b2sin2π2ft+...

 

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

 

y(t)=a0+a1cos2πft+b1sin2πft+a2cos2π2ft+b2sin2π2ft+...

 

시그마()로 표현하면,

 

y(t)=a0+n=1ancos2πnft+bnsin2πnft 

 

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

 

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

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

 

y(t)=a0+n=1bnsin(2πnft+ϕn)

 

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

 

sin(α+β)=sinαcosβ+cosαsinβ

sin(αβ)=sinαcosβcosαsinβ

cos(α+β)=cosαcosβsinαsinβ

cos(αβ)=cosαcosβ+sinαsinβ

 

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

 

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

 

y(t)=a0+n=1bnsin(2πnft+ϕn)

 

여기서 시그마 안의 bnsin(2πnft+ϕn)에 대해 사인 합 공식으로 전개해보면,

 

bnsin(2πnft+ϕn)=bn(sin2πnftcosϕn+cos2πnftsinϕn)

=bnsin2πnftcosϕn+bncos2πnftsinϕn

=(bncosϕn)sin2πnft+(bnsinϕn)cos2πnft

 

t가 변수인 식이기에 괄호 안의 값은 고정된 임의의 값이다. t에 따라서 변하는 값이 아니다. 따라서, 어떤 값 an, bn으로 대체할 수 있다. (이때의 an, bn 값은 임의의 값이기에, bncosϕn을 또 다른 bn으로 놓을 수 있는 것이다.)

 

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

(bncosϕn)sin2πnft+(bnsinϕn)cos2πnft

=bnsin2πnft+ancos2πnft

=ancos2πnft+bnsin2πnft

 

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

 

y(t)=a0+n=1ancos2πnft+bnsin2πnft

 

이렇게 해서 다시 cossin 함수의 합으로 나타낼 수 있게 되었다.

 


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

 

y(t)=a0+n=1ancos2πnft+bnsin2πnft

 

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

 

θ=ωt=2πft=2πtT

 

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

 

y(t)=a0+n=1ancosnωt+bnsinnωt

y(t)=a0+n=1ancos2πnTt+bnsin2πnTt

 

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

 


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

 

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

 

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

 

-끝-

 

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

 

반응형