파동의 분해와 성분

 

 

조화파가 아닌 파동

 

조화파와 비조화파

우리가 일상생활에서 파형의 모습을 그대로 볼 수 있는 경우는 수면파나 줄의 파동이다.  줄을 팽팽하게 잡고 조금씩 흔들거나  고요한 수면에 잔잔한 물결이 일 때 그 변위로서 순간순간의 파동이 있는 그대로 관측된다. 이때의 파동의 모양은 sin함수의 유연한 모습을 하게 되는데 이러한 파를 조화파(harmonic wave)라고 한다. 그러나 바다의 바람이 세어지고 파도가 높아지면 이 파동은 매끈하지 않고 칼날처럼 뾰족한 경우도 있고, 심지어 앞으로 스러지는 파도도 볼 수 있다. 이렇게 조화파에서 조금이라도 벗어난 다른 파동을 비조화파(anharmonic wave)라고 한다.  실제로 순수한 조화파는 물리에서 존재하지 않는다. 간단히 생각해 보면 조화파는 공간상으로 무한히 펼쳐져 있어야 하고 또한 시간상 영원히 지속되어야 하므로 있을 수가 없는 이상적인 파동이다.  펄스는 일순간 지속되는 파동으로서 공간상으로도 유한한 파의 길이를 가지고 있다. 이러한 비조화파는 새로운 해석을 필요로 한다.

 

 

다른 진동수의 조화파들의 합성

아래 두 그림은 서로 다른 진동수, 다른 파장의 두 파동이나 세 파동을 합성한 것이다. 노란색으로 표시한 이 합성파는 규칙성이나 주기성 등 조화파가 가지고 있는 특성이 없어진다는 것을 알 수 있다. 무수히 많은 조화파를 적절한 비율로 섞으면 복잡한 형태의 파동도 만들 수 있을 것이다.

 

 

두 조화파가 합성된 파형(노란색 그래프)
 

 

세 조화파가 합성된 파형(노란색 그래프)
 

 

 

 

푸리에 정리 (Fourier Theorem)

 

주기함수는 조화함수의 합으로 나타낼 수 있다.

프랑스의 수학자 푸리에(Fourier)는 x의 함수인 F(x)가 주기 L인 주기함수 일 때 이 주기의 정수분의 일(즉 L, L/2, L/3,...)의 주기를 갖는 조화함수의 합으로 표시할 수 있다는 것을 알아내었다. 이 푸리에 정리는 비조화파가 조화파들로 분해 하거나 조화파를 합성하여 비조화파를 만들어 낼 수 있다는 파동에서 아주 중요한 원리를 제공하게 되었다. 이에따라 임의의 파동을 각각의 조화파의 합으로 보고 이 조화파들의 거동을 이해하여 파동의 전모를 이해하는 방법을 제공하게 되었다. 이는 광학적 신호나 파형의 필터링, 신호처리, 인식 등에 중요한 이론적 배경이 된다.

 

 

이 정리를 식으로 표시하면 주기함수 F(x)는 다음과 같이 무한급수의 합으로 나타내어진다.

여기서 이다.


주기 L의 함수 F(x) 로부터 계수 A와 B는 다음 직교관계식으로부터 구할 수 있다.

이로부터

 

 

예를들어 주기가 L인 다음과 같은 사각파(square wave)를 생각해 보자.


 
이 함수는 기함수이어서 A의 값들은 모두 0이다. 한편 B의 값들은 모두 쉽게 구해진다.

따라서

이고 전개하여 표시하면

아래 프로그램을 보자. 지금 예를 든 사각파의 경우뿐만 아니라 톱니파, 전파정류파 등 몇가지의 비조화파에 대하여 하나의 항을 더할 때마다 원래의 파형에 접근하는 모습을 보여주고 있다. "처음" 버튼을 누르면 새로운 주기의 파가 제일 위의 그래프로 제시된다. 이때 푸리에 급수의 초항(n=0)이 가세되어 있고 이것과 원래의 파와의 오차값이 붉은 막대그래프로 나타나 있다. 이때 제일 아래의 그래프는 이 오차를 최소로 할 수 있는 다음 급수의 정현파가 제시 되어 있는데 "더함"을 누르면 이것이 푸리에 급수에 가세되어 함수 원형에 더욱 접근하여 오차가 줄어드는 것을 볼 수 있을 것이다. "자동"은 계속해서 한 항씩 자동으로 더해서 점점 원형을 맞추어 나가는 것을 보여준다.

 

 

제일 위의 그래프에서 노란색으로 표시한 그래프는 푸리에 전개를 할 비조화파의 형태를 보여준다. 여기서 녹색으로 표시한 그래프는 푸리에 전개에서 n으로 표시한 항까지 더해서 생성한 푸리에 다항식의 그래프이다. 이 노란색의 그래프와 녹색의 그래프의 차이, 즉 오차를 붉은 면적으로 나타내었다. 두 번째 그래프는 푸리에 다항식의 각 항의 그래프이고 이것들이 모두 더해져서 원 함수에 맞추어 진다. 그리고 제일 아래 붉은 오차의 그래프를 상쇄시키는 다음 항의 그래프가 흰색으로 제시되어 "더함"을 누르면 이 항이 가세된다. 이에따라 점점 더 원 함수의 형을 따라가는 것을 살펴볼 수 있다.

 

 

 

 

 

한편 주기함수 F(x)의 변수 x가 공간의 x이면 주기 L은 파장이라 할 수 있고, k는 바로 파동의 파수(wave number)라 할 수 있다. 각 푸리에 요소의 nk값이 각 요소의 파수가 되어 파장 L인 주기파는 nk의 파수의 값을 갖는 조화파가 무수히 합해진 것으로 생각할 수 있다

또한 F(x)의 변수 x가 시간 t로 본다면 F(t)로서 진동으로 볼 수 있고 주기 L은 진동의 주기(즉 주기 T)라 할 수 있어, k는 바로 진동의 진동수 ω가 된다. 이에따라 주기가 T인 진동은 기본진동수 ω= 2π/T 의 배진동수 nω를 가진 무수한 파동들의 합성된 것으로 볼 수 있다.

 

FFT를 이용한 푸리에 분석

 

컴퓨터로 신호 분석을...

한 지점에서의 파동의 움직임을 계속 관측하면 주어진 각각의 시간에 파동량의 그래프를 그릴 수 있을 것이다. 이 그래프는 모든 시간 값에 대하여 대응되는 파동량을 가지고 있는 아날로그의 데이터일 것인데 이 신호를 컴퓨터를 통해서 읽으면 띄엄띄엄한 시간에 띄엄띄엄한 파동량의 디지털화 된 데이터로 될 것이다.

예를 들어 소리를 마이크로서 전기신호를 바꾸어 오실로스코프로 나타내면 수평의 시간축에 대하여 음압이나 변위를 연속적인 그래프로 바로 표시된다. 이 신호를 푸리에 분석을 하여 주파수 성분을 추출하고자 한다면 앞에서 설명한 대로 여러 가지의 적분을 행해야 할 것이다. 그러나 음압을 나타내는 전기신호는 보통 해석적인 함수가 아니므로 해석적으로 적분을 할 수 없게 되어 수치해석이 필요해 진다. 콘덴서나 코일 등의 소자를 통하여 아나로그적으로 이러한 푸리에 분석을 어느 정도 해 낼 수 있지만 엄밀한 분석은 불가능하다.

음파의 신호를 컴퓨터를 통해서 읽게 되면 수치해석을 컴퓨터의 연산능력으로 푸리에 분석을 할 수 있게 된다. 이 경우 컴퓨터는 신호의 변화에 대하여는 매우 짧은 시간간격이긴 하지만 어떤 유한한 간격으로 신호를 읽을 수밖에 없을 것이다. 측정의 시간 간격을 줄이면 줄일수록 원래의 아날로그 데이터에 근접하게 되겠지만 같은 시간분량에 대한 데이터 수는 시간간격에 반비례하여 늘어가게 되어 컴퓨터가 감당하지 못하게 된다. 한편 어떤 시간의 측정 값도 당연히 디지털화 된 신호일 수밖에 없다. 따라서 연속적인 모든 값을 표현하지 못하고 불연속적인 값들 중 하나로 나타내어지게 된다. 시간 축으로나 신호 축으로나 이렇게 띄엄띄엄하게 측정되는 것을 양자화되었다고 한다.

음악을 기록한 것 중 옛날의 LP 판은 음파의 변화를 연속적으로 기록해 둔, 일종의 아날로그형의 신호 기록으로 볼 수 있고, CD나 DAT 등은 음파를 디지털화 시켜 기록한 것으로 비교해 볼 수 있다. CD의 경우 1초에 4만번 이상으로 한번에 16비트, 즉 6만 계단 이상으로 음을 기록해서 이를 재생하면 아날로그의 원형을 거의 완벽하게 재생해 낼 수 있게 된다. 아날로그 기록인 경우 신호가 정확하게 읽혀지지 않을 가능성이 있지만 값으로 기록된 디지털 기록은 언제나 정확하게 읽혀지게 되고 통신을 통해서도 정확하게 전달 시킬 수 있게 된다.

디지털화된 신호는 { 1.1, 1.2, 1.34, ... } 처럼 일종의 수의 나열로서 시간 순서로 이루어져 있다면 시계열(time series)라고 한다. 이 데이터를 이제 컴퓨터에서 수치해석으로 적분되어 그 신호가 가지고 있는 각각의 주파수 성분, 즉 스펙트럼을 계산해 낼 수 있게 된다. 이에 관련된 기법을 DFT(discrete fourier transformation)라 하여 디지털 신호처리(DSP : digital signal processing) 기술의 핵심을 이루게 된다. 즉 음성인식이나 변조, 복원 등 여러 가지 기법이 DSP를 통해서 가능하게 되었다.

 

 

FFT (Fast Fourier Transformation)

분석해야 할 시계열의 데이터가 N이라 한다면 이를 DFT를 통해서 푸리에 변환하기 위해서는 N2의 복소수 곱셈을 해야 된다. 예를 들어 1초당 1000번 측정한 신호의 1초간의 데이터를 한꺼번에 변환하기 위해서는 106 번의 복소수 곱셈을 해야 하므로 컴퓨터가 이를 계산해 내는데 상당한 시간이 필요로 하게 된다.

한편 데이터가 N = 2m, 즉 2, 4, 8, 16, ... , 1024, ... 로 되어 있다면 계산량을 획기적으로 줄일 수 있는 방법이 개발되었다. 이를 빠른 푸리에 변환, 즉 FFT라고 한다. FFT를 통해서는 Nm/2 번의 복소수 곱셈이 필요하여 예를 들어 1024개의 데이터를 변환하는데 5000 번이 된다. 이는 DFT에 비해서 1/200 정도로 계산량이 줄어든 것인데 데이터 개수가 많아질수록 그 줄어드는 비율은 커진다.

 

 

FFT를 이용한 푸리에 변환 예

아래 프로그램은 주어진 몇가지 파형에 대하여 FFT로 푸리에 변환하여 그 결과, 즉 스펙트럼을 그래프로 나타내게 된다. 위쪽 그림은 시간에 대한 신호의 그래프이고, 중앙의 그림은 이의 스펙트럼 그래프이다. 신호는 1초에 8000번 측정된 것으로 생각하자. 이 경우 가운데의 스펙트럼 그래프의 주파수 축인 가로축의 최대 값은 4000Hz가 된다. 샘플링 데이터 수로 선택하게 되어 있는 값이 바로 FFT에 계산되는 데이터 수로서 이 값은 언제나 2m으로 되어 있는 것을 알 수 있을 것이다. 이 값을 변화시켜서 분석결과가 어떻게 달라지는 지를 관측해 보자. 또 파형의 형태나 그 주파수 값, 포함되어 있는 직류성분, 노이즈의 정도 등을 변화시키면서 그 변환결과가 변하는 것을 관측해 보자. <변환 결과가 주된 피크 주위에 잇따라 줄어드는 피크가 있는 것을 보일 때가 있다. 이는 FFT의 특성상 N개의 데이터가 계속해서 반복되어 있는 주기함수의 푸리에 변환 결과이기 때문이다. 예를 들어 정현파로서 480Hz로 조절하면 실제로 480Hz의 피크 주위에 작은 피크들이 생겨난다. 이 경우 480Hz의 정현파가 반복되어 있는 주기함수로서 끝이 불연속으로 이어진 정현파의 누더기와 같은 파의 푸리에 변환이기 때문이다. 이 경우 데이터 갯수를 늘여주면 그 스펙트럼의 폭이 줄어드는 것을 알 수 있을 것이다. 한편 위 신호 그래프에는 N개의 데이터 전체를 나타낸 것으로서 예를 들어 N=256 이라면 256/8000초의 데이터가 전체 그래프로 표시되어 있다>

 

 

 

 

 

 

푸리에 적분 (Fourier Integral)

 

비주기함수는 연속적인 k값의 조화함수의 합으로 나타낼 수 있다.

앞에서의 주기 L인 주기함수의 L을 계속 증가시켜 무한 대로 되게 하면 주기성이 없어진 임의의  함수가 되어 이것도 조화파의 합성으로 나타낼 수 있을 것이라는 생각을 쉽게 할 수 있다. 이때 k = 2π/L 값은 무한히 줄어들어 0으로 접근한다. 그리고 nk값은 연속적인 값으로 되어 푸리에 합성은 푸리에 적분으로 바뀌게 된다.