'fourier transform'에 해당되는 글 2건

  1. 2020.08.23 Analyticity, causality, Kramers-Kronig relations, and all that (1)
  2. 2013.12.06 Continuously Updated Fourier Series

제목은 아는 사람들은 다 아는(?) 책인 PCT, Spin and Statistics, and All That을 참고했다. 물론 나는 읽다 만(...) 책이지만. 이 포스트의 출발점은 다음 트윗 타래. 한번 정도는 정리해두는 것이 좋겠다는 생각이 들었다.

'세상에서 가장 아름다운 공식'이란 별명이 있는 오일러 공식의 장점(?)은, 네이피어수 (혹은 자연상수) $e$ 위에 올라가는 수학적 물체(mathematical object의 번역으로 이게 맞는지 모르겠다) $a$가 무엇이든 $a^2 = -1$이란 조건을 만족하기만 하면 된다는 것이다.

\[ a^2 = -1 \Rightarrow e^{a \theta} = \cos(\theta) + a \sin(\theta)\]

여기서 $a$는 일반적인 숫자(복소수체에서는 확실히 성립하는데 일반적인 체에서도 되는지는 모르겠다)나 행렬(사원수quaternion는 $2 \times 2$ 행렬과 대응관계를 맺기 때문에 사원수에서도 위의 식이 적용된다), 혹은 클리포드 대수Clifford algebra의 원소(기하대수geometric algebra 계산에서 이 성질을 이용한다) 등 무엇이든 될 수 있다. 그냥 1이 잘 정의되어 있고 제곱해서 -1이 되는 물체가 있다고 하면 언제든 쓸 수 있다는 의미. 다른 특기할 점은 위 공식이 다루기 까다로운 경우가 많은 삼각함수trigonometric function를 지수함수exponential function로 바꾸는 역할을 한다는 것이다. 따라서 주기성을 갖는 물리량이 있는 물리계에서는 위 공식을 반대로 적용해 삼각함수로 써지는 물리량을 지수함수의 '실수부'로 놓는 작업을 자주 한다.

\[ \cos(\theta) = \text{Re}[e^{i \theta}] \]

여기까지는 학부 2학년 수준에서 얼마든지 다루는 내용.

 

전기공학에서는 교류회로를 다룰 때 단위허수 $j$를 $j^2 = -1$으로 도입해 전류와 같은 물리량을 다음과 같이 쓰곤 한다.

\[ I(t) = \text{Re}[I_0 e^{j (\omega t + \delta)}] \]

일반적으로 쓰는 단위허수 $i$가 있는데 왜 하필 $j$일까? 트윗 타래에서 언급했듯 $j = -i$라고 여기는 경우가 있기 때문이다. $(-1)^2 = +1$이므로, 애초부터 단위허수에는 부호를 선택하는 자유도가 남아있었던 셈. $j=-i$라고 여기는 이유는 푸리에 전개가 다음과 같은 꼴을 취하기 때문이다.

\[ F(t) = \sum_{\omega} \tilde{F} (\omega) e^{-i \omega t} \]

처음 식과 비교해보면 지수함수에 올라간 항은 $-i \omega t$로, $j \omega t$와 부호 차이를 갖고있다. $j = -i$란 인식은 이 차이에서 비롯된 것. 그렇다면 왜 푸리에 전개는 위와 같은 꼴을 택하는 것일까? 예컨대 다음과 같은 표현도 수학의 관점에서 볼 때 푸리에 전개로서는 딱히 결격사유가 없다.

\[ F(t) = \sum_{\omega} \tilde{F} (\omega) e^{+i \omega t} \]

문제는 인과율causality로부터 얻는 주파수 공간frequency space의 함수 $\tilde{F}(\omega)$가 갖길 원하는 해석적 성질analytic property에 있다. 일반적으로 푸리에 전개를 통해 해석하는 (실)함수 $F(t)$는 입력에 따라 어떤 출력을 예상할 수 있는지를 나타내는 반응함수response function이고, 인과율과 계의 시간불변성time invariance을 가정할 경우 시간차 $t$가 양수일 경우에만 0이 아닌 값을 갖는다.

\[ t<0 \Rightarrow F(t) = 0 \]

그리고 이렇게 '한쪽 방향으로만 값을 갖는 함수'는 라플라스 변환Laplace transform을 쓸 수 있다. 이 방향은 나중에 브롬위치 적분Bromwich integral을 이야기할 기회가 생기거든 돌아오기로 하자. 여튼, 주파수 공간의 함수 $\tilde{F}(\omega)$는 다음과 같이 주어진다.

\[ F(t) = \sum_{\omega} \tilde{F}(\omega) e^{\mp i \omega t} \Rightarrow \tilde{F}(\omega) = \int F(t) e^{\pm i \omega t} dt \]

일반적으로 $\tilde{F} (\omega)$는 실수값만 갖지는 않고, 실수부와 허수부를 모두 갖는다. 따라서 다음과 같은 질문을 해볼 수 있다; 어차피 복소수 값을 갖는 복소함수라면, $\tilde{F} (\omega)$를 복소해석학complex analysis을 통해 다뤄 볼 수는 없을까? 안타깝게도 $\tilde{F}$는 전체 $\omega$ 복소평면에서 해석적인 성질을 가질 수는 없다. 단순하게 복소수 $\omega = \omega_1 + i \omega_2$를 실수부와 허수부로 나누어서 분석해보자.

\[ \tilde{F}(\omega_1 + i\omega_2) = \int F(t) e^{\mp \omega_2 t \pm i \omega_1 t} dt \]

위 표현은 $\mp \omega_2 < 0$일때 $F(t)$가 어지간히 이상한 함수가 아닌 이상 수렴한다. 반대로, $\mp \omega_2 >0$일때 많은 경우 발산해버리고 말 것이다. 따라서, 다음과 같은 결론을 내릴 수 있다.

  • \[ \tilde{F}(\omega) = \int F(t) e^{+ i \omega t} dt \]로 정의할 경우, $F(t)$가 인과율을 따른다는 성질은 $\tilde{F}$는 위쪽 반평면upper half plane에서 해석적인 성질을 갖는다는 성질로 이어진다.
  • \[ \tilde{F}(\omega) = \int F(t) e^{- i \omega t} dt \]로 정의할 경우, $F(t)$가 인과율을 따른다는 성질은 $\tilde{F}$는 아래쪽 반평면lower half plane에서 해석적인 성질을 갖는다는 성질로 이어진다.

일반적으로 $\tilde{F}(\omega)$는 위쪽 반평면에서 해석적인 성질을 갖는 것이 바람직하다고 여겨지기 때문에 푸리에 변환의 부호가 $F(t) = \sum_{\omega} \tilde{F} e^{-i\omega t}$로 결정되는 것이다. 힐베르트 변환Hilbert transform을 이용해 반응함수의 실수부와 허수부를 관계짓는 Kramer-Kronig 관계식 또한 이 부호의 선택에 의존한다. 'Kramer-Kronig 관계식을 증명하기 위해 그리는 적분 컨투어contour를 왜 위쪽 반평면에서 닫아야만 하는가?'란 질문에 대해 답을 주기 때문. 이유는 적분에 들어가는 integrand가 위쪽 반평면에서 완전히 해석적인 성질을 가지므로, 위쪽 반평면으로 컨투어를 닫아야 0이 되기 때문이다. 아래쪽 반평면에서는 무슨 일이 일어날지 모른다는 것은 또 다른 이야기.

\[ \tilde{F}(\omega) = \int F(t) e^{+ i \omega t} dt \,,\, \text{Im} [\omega_0] \le 0 \Rightarrow \frac{\tilde{F} (\omega)}{\omega - \omega_0} \, \text{analytic on upper half plane} \]

이렇게 사소해 보이는 부호 하나에도 그 부호를 선택해야만 하는 이유가 있기 마련이다.

댓글을 달아 주세요

  1. Favicon of http://twitter.com/whewhewhew BlogIcon Whew  댓글주소  수정/삭제  댓글쓰기

    위키백과에서 mathematical object는 수학적 대상으로 번역되었네요.
    https://ko.wikipedia.org/wiki/%EC%88%98%ED%95%99%EC%A0%81_%EB%8C%80%EC%83%81

    2020.09.20 02:48

오늘 퓨리에 급수에 대해 생각하다가 특정 구간에 대해서만 급수전개를 하되 '그 구간이 계속 움직인다면 어떨까?'란 생각을 떠올렸다. 조금만 계산을 하면 유도할 수 있으니 누군가는 했겠지 하고 찾아봤는데 의외로 이 생각을 하는 사람이 별로 없는 모양이다. 하긴 이렇게 연속적으로 들어오는 신호를 변환할 때는 라플라스 변환을 쓰는 것이 일반적이긴 하다. 찾은 관련 내용은 특허 하나와 논문 두 개. 특허는 73년이고, 논문은 99년과 01년에 나온 상당히 최근의 내용.


http://www.google.com/patents/US3778606

http://www.sciencedirect.com/science/article/pii/S0165168498002096

http://proceedings.spiedigitallibrary.org/proceeding.aspx?articleid=913845




위의 내용은 이산퓨리에변환(Discrete Fourier Transform)에 해당하는 내용이라 연속적인 경우에 대해서는 다루지는 않고 있다. 연속적인 경우를 다루기 위해 다음과 같은 '샘플링 구간을 한정지은 함수'를 정의하자.


\text{For a function }f\text{ defined on the real line, define} \\\text{the restriction (or the sample) of }f\text{ as;} \\\\f:\mathbb{R}\to\mathbb{R} \\f_{\tau,T}:[0,\tau ]\to\mathbb{R} \\f_{\tau,T}(x)=f(x+T) \\\\\tau\text{ gives the length of the sample, and }T\text{ gives the} \\\text{starting point of the sample.}


그리고 다들 대학 2학년때 지옥을 맛보는 공학수학 시간에 하는 것처럼 신나게 퓨리에 급수를 구한다. 따로 유도과정은 안 적겠다. 그런건 위키백과에도 잘 나오니까.


\text{The Fourier series of }f_{\tau,T}\text{ is given as follows:} \\\\f_{\tau,T}(x)=a_0+\sum_n \left[a_n\cos(\frac{2n\pi}{\tau}x)+b_n\sin(\frac{2n\pi}{\tau}x)\right] \\\\a_0(\tau,T)=\frac1\tau \int_0^\tau f_{\tau,T}(x)dx \\a_n(\tau,T)=\frac2\tau \int_0^\tau f_{\tau,T}(x)\cos(\frac{2n\pi}{\tau}x)dx \\b_n(\tau,T)=\frac2\tau \int_0^\tau f_{\tau,T}(x)\sin(\frac{2n\pi}{\tau}x)dx


이제 할 일은 간단하다. 구간이 계속 움직이는 경우(T가 계속 변하는 경우) 각 급수 성분은 어떻게 변하게 될까? 편미분을 쓰자.


\text{To update the series for continuously changing }T\text{,} \\\text{just calculate the derivatives with respect to }T: \\\\\frac{\partial}{\partial T}a_0(\tau,T)=\frac1\tau \frac{\partial}{\partial T}\int_0^\tau f_{\tau,T}(x)dx \\=\frac1\tau \frac{\partial}{\partial T}\int_T^{T+\tau} f(x)dx=\frac1\tau\left[f(T+\tau)-f(T) \right ]



\\\frac{\partial}{\partial T}a_n(\tau,T)=\frac2\tau \frac{\partial}{\partial T}\int_0^\tau f_{\tau,T}(x)\cos(\frac{2n\pi}{\tau}x)dx \\=\frac2\tau \frac{\partial}{\partial T}\int_0^\tau f(x+T)\cos(\frac{2n\pi}{\tau}x)dx \\=\frac2\tau \int_0^\tau f'(x+T)\cos(\frac{2n\pi}{\tau}x)dx \\=\frac2\tau \left[ \left f(x+T)\cos(\frac{2n\pi}{\tau}x)\right|_0^\tau -\int_0^\tau f(x+T)\left[\cos(\frac{2n\pi}{\tau}x)\right]' dx \right] \\=\frac2\tau \left[ f(T+\tau)-f(T)+\frac{2n\pi}{\tau}\int_0^\tau f(x+T)\sin(\frac{2n\pi}{\tau}x)dx \right] \\\\=\frac2\tau \left[ f(T+\tau)-f(T)\right]+\frac{2n\pi}{\tau}b_n



\\\frac{\partial}{\partial T}b_n(\tau,T)=\frac2\tau \frac{\partial}{\partial T}\int_0^\tau f_{\tau,T}(x)\sin(\frac{2n\pi}{\tau}x)dx \\=\frac2\tau \frac{\partial}{\partial T}\int_0^\tau f(x+T)\sin(\frac{2n\pi}{\tau}x)dx \\=\frac2\tau \int_0^\tau f'(x+T)\sin(\frac{2n\pi}{\tau}x)dx \\=\frac2\tau \left[ \left f(x+T)\sin(\frac{2n\pi}{\tau}x)\right|_0^\tau -\int_0^\tau f(x+T)\left[\sin(\frac{2n\pi}{\tau}x)\right]' dx \right] \\=\frac2\tau \left[-\frac{2n\pi}{\tau}\int_0^\tau f(x+T)\cos(\frac{2n\pi}{\tau}x)dx \right] \\\\=-\frac{2n\pi}{\tau}a_n


만약 주기가 그대로 맞아 떨어진다면 예상하는 것과 같이 단순히 위상만 변하는 식을 얻게 된다.


\text{If }f(x+\tau)=f(x)\text{ for }\forall x\text{, the above equations} \\\text{are simplified and shows the phase dependence of Fourier series.} \\\\\frac{\partial}{\partial T}a_n(\tau,T)=\frac{2n\pi}{\tau}b_n \\\frac{\partial}{\partial T}b_n(\tau,T)=-\frac{2n\pi}{\tau}a_n \\\\\therefore a_n(\tau,T)=A\sin(\frac{2n\pi}{\tau}T +\delta) \\b_n(\tau,T)=A\cos(\frac{2n\pi}{\tau}T +\delta)


여기까지는 샘플링 구간을 움직일 때 해당하는 내용. 그렇다면 샘플링 구간을 확장시킬 때 새로운 정보를 어떻게 반영해야 할까? 이건 샘플링 구간의 길이에 대해 편미분하면 된다.


\text{To update the series for newly obtained information at} \\T+\tau\text{, just calculate the derivatives with respect to }\tau: \\\\\frac{\partial}{\partial\tau}a_0(\tau,T)=\frac{\partial}{\partial\tau}\left[\frac1\tau \int_0^\tau f_{\tau,T}(x)dx\right] \\=-\frac1{\tau^2} \int_0^\tau f_{\tau,T}(x)dx+\frac1\tau \frac{\partial}{\partial\tau}\int_T^{T+\tau} f(x)dx \\=\frac1\tau\left[f(T+\tau)-a_0\right]



\\\frac{\partial}{\partial\tau}a_n(\tau,T)=\frac{\partial}{\partial\tau}\left[\frac2\tau \int_0^\tau f_{\tau,T}(x)\cos(\frac{2n\pi}{\tau}x)dx\right] \\=-\frac2{\tau^2} \int_0^\tau f_{\tau,T}(x)\cos(\frac{2n\pi}{\tau}x)dx+\frac2\tau \frac{\partial}{\partial\tau}\left[\int_0^\tau f_{\tau,T}(x)\cos(\frac{2n\pi}{\tau}x)dx\right] \\=-\frac{a_n}{\tau}+\frac2\tau \frac{\partial}{\partial\tau}\int_0^\tau f(x+T)\cos(\frac{2n\pi}{\tau}x)dx \\=-\frac{a_n}{\tau}+\frac2\tau \left f(x+T)\cos(\frac{2n\pi}{\tau}x)\right|_{x=\tau}+\frac2\tau \int_0^\tau f(x+T)\frac{\partial}{\partial\tau}\cos(\frac{2n\pi}{\tau}x)dx \\=-\frac{a_n}{\tau}+\frac{2f(T+\tau)}\tau+\frac{2n\pi}{\tau^2}\frac2\tau\int_0^\tau f(x+T)\sin(\frac{2n\pi}{\tau}x)dx \\=\frac1\tau\left[ 2f(T+\tau)-a_n+\frac{2n\pi}\tau b_n\right ]



\\\frac{\partial}{\partial\tau}b_n(\tau,T)=\frac{\partial}{\partial\tau}\left[\frac2\tau \int_0^\tau f_{\tau,T}(x)\sin(\frac{2n\pi}{\tau}x)dx\right] \\=-\frac2{\tau^2} \int_0^\tau f_{\tau,T}(x)\sin(\frac{2n\pi}{\tau}x)dx+\frac2\tau \frac{\partial}{\partial\tau}\left[\int_0^\tau f_{\tau,T}(x)\sin(\frac{2n\pi}{\tau}x)dx\right] \\=-\frac{b_n}{\tau}+\frac2\tau \frac{\partial}{\partial\tau}\int_0^\tau f(x+T)\sin(\frac{2n\pi}{\tau}x)dx \\=-\frac{b_n}{\tau}+\frac2\tau \left f(x+T)\sin(\frac{2n\pi}{\tau}x)\right|_{x=\tau}+\frac2\tau \int_0^\tau f(x+T)\frac{\partial}{\partial\tau}\sin(\frac{2n\pi}{\tau}x)dx \\=-\frac{a_n}{\tau}-\frac{2n\pi}{\tau^2}\frac2\tau\int_0^\tau f(x+T)\cos(\frac{2n\pi}{\tau}x)dx \\=-\frac1\tau\left[b_n+\frac{2n\pi}\tau a_n\right ]


정리해보면 다음과 같은 관계식을 얻는다.


\text{For a function }f\text{ defined on the real line, its sample} \\f_{\tau,T}\text{ - which has }\tau\text{ as the length and }T\text{ as the starting point - } \\\text{has the following properties.} \\\\f_{\tau,T}(x)=f(x+T) \\f_{\tau,T}(x)=a_0+\sum_n \left[a_n\cos(\frac{2n\pi}{\tau}x)+b_n\sin(\frac{2n\pi}{\tau}x)\right]



\\a_0(\tau,T)=\frac1\tau \int_0^\tau f_{\tau,T}(x)dx \\a_n(\tau,T)=\frac2\tau \int_0^\tau f_{\tau,T}(x)\cos(\frac{2n\pi}{\tau}x)dx \\b_n(\tau,T)=\frac2\tau \int_0^\tau f_{\tau,T}(x)\sin(\frac{2n\pi}{\tau}x)dx



\\\frac{\partial}{\partial T}a_0(\tau,T)=\frac1\tau\left[f(T+\tau)-f(T) \right ] \\\frac{\partial}{\partial T}a_n(\tau,T)=\frac2\tau \left[ f(T+\tau)-f(T)\right]+\frac{2n\pi}{\tau}b_n \\\frac{\partial}{\partial T}b_n(\tau,T)=-\frac{2n\pi}{\tau}a_n



\\\frac{\partial}{\partial\tau}a_0(\tau,T)=\frac1\tau\left[f(T+\tau)-a_0\right] \\\frac{\partial}{\partial\tau}a_n(\tau,T)=\frac1\tau\left[ 2f(T+\tau)-a_n+\frac{2n\pi}\tau b_n\right ] \\\frac{\partial}{\partial\tau}b_n(\tau,T)=-\frac1\tau\left[b_n+\frac{2n\pi}\tau a_n\right ]





쓸만한 곳이 있는지는 모르겠는데 일단 실시간 퓨리에 변환에 유리하고(FFT를 한 샘플 버리고 한 샘플 채취할 때마다 행하는 것보다 위의 방법으로 업데이트 하는 방식이 더 빠르다. 전자는 N logN인데 이 경우엔 N 정도-위에서 언급한 논문에도 나와 있다.), 또 한 가지 쓸모를 생각해 본다면 FFT에서 생기는 샘플 갯수에 대한 제한 문제를 비껴나갈 방법이 될 지도 모르겠다는 것. FFT를 쓰려면 데이터의 개수가 2^N의 꼴로 나와야 한다고 알고 있는데 거기에서 더 많을 경우 추가 데이터를 날려버리거나 더 적을 경우 0으로 추가 데이터를 만들어 FFT를 실행한다고 알고 있다. 위 관계식은 연속함수에 대해 구한 것이긴 하지만 이산화하면 2^N개의 데이터로 FFT를 한 다음에 데이터를 추가해주거나 빼주는 방식으로 원래 값에 맞도록 보정하는 것이 가능해진다. DFT의 시간이 N^2이라고 알고 있는데 정확한 값을 N logN에서 N^2 사이의 값으로 구하는 것도 가능하다는 것.


샘플 구간의 중심을 0으로 두고 구간의 길이를 점차 늘이는 문제로도 확장해볼 생각이 있다. 이건 양자장론에서 cut-off 문제와도 관련이 있을 것 같아서 풀어보려고 생각중인 문제.


그런데 왜 이 간단한 걸 찾아도 안 보이지... 미분만 잘 하면 되잖아...


댓글을 달아 주세요

1 

글 보관함

카운터

Total : 685,662 / Today : 120 / Yesterday : 74
get rsstistory!