요새 하도 정수론 관련 얘기가 이 블로그에서 오가고 있어서 내가 마치 정수론이나 대수학에 재능이 있는 사람인 것으로 착각할 수도 있겠지만, 난 사실 정수론 D+에 대수학 D+받고 졸업한 사람이다.[각주:1] 내가 좋아하는건 아주 작은 것과 아주 큰 것을 다루는 해석학이다. 잘한건 아니지만 정수론이나 대수학보단 높은 성적으로 졸업을 했다. 푸리에 변환은 적분변환의 한 종류로, 이공계 모든 분야에서 광범위하게 쓰이는 중요한 도구이다. 그리고 다차원 푸리에 변환 정도는 가볍게 해줘야 공부좀 해줬구나 하는 느낌이 들게 될 것이다.[각주:2]

푸리에 변환이 어떤 하나의 함수가 주어졌을 때, 그 함수가 어떤 주기성을 갖고 있는지 분석하는 방법의 하나라는 것은 공부해 보았었다. 그럼, 그 함수가 다차원 함수인 경우에는 어떻게 될 것인가? 여기서 말하는 다차원 함수란, 여러개의 수를 주면 하나의 수를 알려주는 함수를 말한다. 여러개의 수를 주었을 때 여러개의 수를 알려주는 함수는 벡터값 함수이고, 이 경우에는 그 벡터의 각각의 성분에 대해서 푸리에 변환을 시행하는 짓을 해야 한다. 물론 그것도 의미는 있겠지만, 그런 경우라고 해도 어차피 각각의 성분은 하나의 수에 해당하므로 이 글에서는 여러개의 수를 하나의 수로 바꿔주는 그런 종류의 함수만을 다뤄보도록 하겠다.

여러개의 수가 나타내는 것은, 대부분의 경우 어떤 공간에서서 위치를 알려주는 벡터이다. 벡터의 정의는 여러가지로 해볼 수 있겠지만, 어차피 그놈이 다 그놈이고 서로 바꿔서 생각해볼 수도 있으므로 내 블로그에서 여러번 정의했던 대로 그냥 시작점과 끝점이 정해진 화살표라고 생각하도록 하자. 사실은 방향과 크기만 알아도 충분하다.[각주:3] 이제 이걸 푸리에 변환을 해 보자. 만약, 함수가 F(x,y,z,...)이렇게 주어져 있는데 x만 빼고 y,z... 이런 값들은 다 고정시켜놓는다고 하자. 그럼 이 함수는 x라는 변수 하나에만 의존하는 함수이고, 이런 함수의 푸리에 변환은 앞에서 잘 해봤었다. 마찬가지로, y 하나만 변하게 해도 쉽고, z하나만 변하게 해도 쉽다. 아니, 그럼 뭐가 어려운건가? 쉽다. 일단 x에 대해서 푸리에 변환을 한다. 이것은 x에 대한 주파수 성분만 알게 되고, 나머지 y, z...등에 대한 주파수 성분은 알려주지 않는다. 여전히 y, z... 에 대한 것은 위치에 대한 함수이다. 이걸 그대로 y에 대해 푸리에 변환을 한다. 그럼 x와 y에 대한 주파수 성분을 알게 되고, ... 이런 식으로 계속해서 각 변수에 대해서 연속적으로 푸리에 변환을 해 나가면 된다.

원래는 수식을 쓰지 않으려고 했는데, 연속적으로 푸리에 변환을 하는 것이 어떤 마왕을 소환하는지 알고 싶으면 수식을 좀 써야 겠다. 수식에 자신이 없는 사람은 아래의 글자들이 수식이 아니라 마법에 쓰는 룬 문자라고 생각하고 그냥 그러려니 하자. 간단하게 2차원에 대해서 생각해 보자. 일단 2차원을 이해하고 나면 3차원 이상은 저절로 이해가 될 것이다.

$\hat{f}(k,y)=\int f(x, y)exp(ikx) dx$
일단 x에 대해서만 푸리에 변환을 하면 이렇게 된다. k와 y에 대한 함수가 되었다. 함수의 크기를 유지하기 위해서 앞에 붙게 되는 상수라든가 적분 구간 같은건 다 빼버렸다. 그런건 여기서 중요하지 않다. 아무튼, 이제 $\hat{f}(k,y)$를 다시 y에 대해서 푸리에 변환을 해 보자.
$\hat{f}(k,l)=\int \hat{f}(k,y)exp(ily) dy $
이제 k와 l에 대한 함수가 되었다. 근데, 적분 안에 있는 함수는 사실 y에 대한 적분이니까 x랑은 아무 관련이 없고, 따라서 푸리에 변환을 하기 전에 2중 적분으로 바꿔줘도 될 것이다. 바꾸고 싶지 않은가?
$\hat{f}(k,l)=\int (\int f(x, y)exp(ikx) dx)exp(ily) dy $

우리는 간단히 Copy and Paste를 이용해 볼 수 있다. 그리고 x랑 y는 아무 관련 없는 애들이니까, 적분 순서를 바꿔도 된다.[각주:4] 따라서,
$\hat{f}(k,l)=\int f(x,y)exp(ikx)exp(ily)dxdy$

그런데, 우리는 지수함수에 대해서 너무 많은걸 알고 있다.
exp(ikx)exp(ily)=exp(i[kx+ly])

알아선 안될 것까진 아니지만, 간단한 지수법칙을 적용하고 다시 덧셈과 곱셈의 분배법칙을 활용해서 지수 안쪽을 묶어주었다. 그런데, 지수 안쪽에서 허수단위인 i를 빼고 다시 잘 살펴보면 [kx+ly]라는 부분이 보인다. 근데, 이게 원래는 (k,l)이라는 벡터와 (x,y)라는 벡터를 내적한 것이라는 사실을 깨닫게 된다. exp함수가 푸리에 변환할 때 해당 성분에 대한 basis역할을 한다는 것을 생각해 보자. 원래 1차원 푸리에 변환에서 exp(ikx)는 k와 x로 이루어진 선형 연산자이다. 선형 연산자의 다른 이름은 행렬이다.[각주:5]

잠깐. 여기서 잠시 정신줄 놓고 있는 분들이 있을 것이다. 이 부분에 대해서는 다시 다른 글에서 설명을 해야 한다. exp함수가 푸리에 변환할 때 해당 성분에 대한 basis 역할을 한다는 얘기는 아직 한적이 없다. 그리고 그걸 이해하는 것은 푸리에 이론 전체를 이해하는 것 만큼이나 중요한 일이다. 그러니까 일단은 그냥 그런가보다 하고 넘어가주자. 언젠가 그에 관한 글을 쓸 일이 있을 것 같다.

아무튼, 원래의 2차원 푸리에 변환으로 되돌아 와서 수식을 잘 살펴보면, 이제 다음과 같이 쓸 수 있다는 것을 알게 된다. 아니, 느끼게 된다.
$\hat{f}(\vec{k})=\int f(\vec{x})exp(i \vec{k} \cdot \vec{x})dxdy$

조금은 간단해 진 것 같은 느낌이 들지 않는가? 하지만 뒤에 붙은 dxdy가 조금 거슬린다. 이것도 합쳐버리자.
$\hat{f}(\vec{k})=\int f(\vec{x})exp(i \vec{k} \cdot \vec{x})dv$

그런데 이렇게 합쳐놓고 나니까 도대체 이놈이 몇차원에서 쓰던 푸리에 변환인지 모르게 되었다. 그렇다. 수학에서 웬만한 경우에는 "모른다"는 것은 "아무거나"라는 뜻과 같다.[각주:6] 몇차원인지는 중요하지 않고, 이 공식이 차원의 수에 상관 없이 성립하게 된다는 뜻이다. 즉, 2차원 푸리에 변환을 공부한 것 같은데 벌써 무한 차원에 대해 공부해 버렸다.[각주:7] 이 공식이 의미하는 바는, $\vec{k}$라는 벡터는 어느 방향으로 얼마나 빨리 움직이는지에 관한 벡터인데, 방향과 속력을 정하면, 주어진 함수 $f(\vec{x})$의 특정 방향으로의 진동수 성분이 얼마나 포함되어 있는지 알 수 있다. 즉, 이 함수가 움직이는 방향까지도 알아낼 수 있다.

질문은 언제나 환영, 댓글로...
  1. 심지어 난 물리학 전공자임. [본문으로]
  2. 그러나 그것을 가볍게 하기는 결코 쉽지 않다. 난 단지 계산을 할 줄 알 뿐이다. [본문으로]
  3. 하나의 벡터를 정하는데는 방향, 크기, 시작점을 알아야 한다. 또는 시작점과 끝점을 알아야 한다. 같은 시작점을 갖는 벡터들 끼리는 덧셈과 길이 변환이 가능하며 이런 애들을 모아놓은 곳을 벡터 공간이라고 부른다. 그리고 하나의 시작점마다 벡터공간이 있으며, 그 벡터 공간을 탄젠트 공간이라고 부른다. 서로 다른 탄젠트 공간에 속하는 벡터들 끼리는 더하거나 뺄 수 없으며, 항상 평행이동 해서 더하거나 빼줘야 한다. 만약 공간이 휘어져 있으면 그건 그때 가서 생각하자. 그러니까, 여기서는 방향과 크기만 알아도 된다고 하자. 쫌. [본문으로]
  4. 적분 순서를 이렇게 맘대로 바꿔도 되는지 또한 해석학 시간에 증명하는 내용인데, 골치아프므로 그냥 넘어간다. 아무튼 애들이 잘 수렴하기만 하면 장땡이다. 발산하는 경우에는 맘대로 바꾸면 안되지만, 수렴하는 경우에는 적분 순서에 관계 없이 언제나 하나의 값으로만 수렴하기 때문에 걱정없이 바꿔줘도 된다. [본문으로]
  5. 정확히는 그놈이 그놈은 아니지만, 모든 선형연산자는 행렬로 표현할 수 있다. 그리고 모든 행렬은 선형연산자이다. 그러니까 그놈이 그놈이라고 생각해도 별 문제는 없다. [본문으로]
  6. 여기서는 내가 웃자고 이렇게 말하고 있다. 아무데서나 "모른다" = "아무거나"라고 주장하면 수학자들이 비웃을테니 써도 되는지 확인한 후에 쓰자. 물론 여기서는 써도 되니까 쓰고 있음. [본문으로]
  7. 단, 이때의 무한 차원은 자연수 농도를 가지는 무한 차원이다. 실수 농도를 가지는 무한 차원을 다루려면 파인만 적분론을 공부해야 한다. 사실은 파인만의 경로 적분이 파동함수의 실수 농도 무한차원에 대한 푸리에 변환이라능 -_-; [본문으로]
by snowall 2010. 2. 13. 03:38