nano_exit

基礎的なことこそ、簡単な例が必要だと思うのです。

古典的な相関関数のまとめ

「相関とは内積の拡張のようなものである」という説明で納得した。
相関関数 [物理のかぎしっぽ]

離散的な数直線上の点 x_1, x_2, \cdotsにおける関数値 ( f(x_1), f(x_2), \cdots )をベクトル \vec{f}と思えば、内積 h


\displaystyle
h = \vec{ f } \cdot \vec{ g } = \sum_i f( x_i ) g( x_i )

と表せる。これがゼロのとき、関数 f, \, gは互いに直交していると言える。

ここで、 xを連続量に置き換え、それに伴って和を積分に置き換えれば、内積を拡張したものが得られる。


\displaystyle
h = \int f( x ) \, g( x ) \, dx

これを相関と呼ぶ。
 f = gもしくは f \neq gのときをそれぞれ自己相関、相互相関と呼ぶ。
自己相関は、ベクトルで言えば「ノルムの二乗」に相当する。
自己相関がゼロで無いときに、相互相関がゼロになる場合、互いに直交すると言える。

フーリエ変換も、ある波数の平面波との相関を取ったものである。

\displaystyle
f( k ) = \int^{\infty}_{-\infty} f( x ) \, e^{ - i k x } \, dx, \\
\displaystyle
f( x ) = \frac{ 1 }{ 2 \pi } \int^{\infty}_{-\infty} f( k ) \, e^{ i k x } \, dk

しかし、自己相関関数と言うと、意味が変わる。
http://www.jspf.or.jp/Journal/PDF_JSPF/jspf2009_09/jspf2009_09-620.pdf
自己相関関数は、自分自身をズラしたものとの相関であり、ズラす量を引数に持つ。
 \displaystyle
h( \xi ) = \int f( x ) \, f( x + \xi ) \, dx

 h(\xi) h(0)、つまり、自己相関で規格化したものを自己相関係数と呼ぶ。

 \displaystyle
c( \xi ) = h(\xi) / h(0), \qquad c( 0 ) = 1

関数 f(x)が周期的な場合、自己相関関数(係数)も周期的に振動し、 cが最初に xを跨ぐ \xi_0は変動の速さを特徴付ける量として使うことが出来る。

自己相関関数の被積分関数フーリエ変換を用いて表すと、
(ただし、 f(x)は実関数で積分区間外でゼロ( f(x) = 0 \, ( x < a, b < x) ))
 
\displaystyle
h_f( \xi ) = \int^b_a f( x ) \, \left( \frac{ 1 }{ 2 \pi } \int^{\infty}_{-\infty} f( k ) e^{ i k ( x + \xi ) } \, dk \right) \, dx, 
\\
\displaystyle
\qquad = \frac{ 1 }{ 2 \pi } \int^{\infty}_{-\infty} \left( \int^b_a f( x ) e^{ i k x }\, dx \right) \, f( k ) e^{ i k \xi }  \, dk,
\\
\displaystyle
\qquad = \frac{ 1 }{ 2 \pi } \int^{\infty}_{-\infty} \left( \int^{\infty}_{-\infty} f( x ) e^{ - i k x }\, dx \right)^* \, f( k ) e^{ i k \xi } \, dk,
\\
\displaystyle
\qquad = \frac{ 1 }{ 2 \pi } \int^{\infty}_{-\infty} f( k )^* f( k ) e^{ i k \xi }  \, dk
\\
\displaystyle
\qquad = \frac{ 1 }{ 2 \pi } \int^{\infty}_{-\infty} | f( k ) |^2 e^{ i k \xi }  \, dk

つまり、真面目に関数をちょっとずつズラして積分しなくても、フーリエ変換の(強度の)逆フーリエ変換から自己相関関数を求めることが出来る。
今まで、「ふーん」としか思っていなかったが、よく考えると、

\displaystyle
  | f( x ) |^2 \neq \frac{ 1 }{ 2 \pi } \int^{\infty}_{-\infty} | f( k ) |^2 e^{ i k x }  \, dk
であり、フーリエ成分を(絶対値の)二乗して逆フーリエしたら全然違う量になっているのは、なかなか面白いのではないか?

この「逆フーリエ変換すると自己相関関数を与える」関数をスペクトル s(k)と呼ぶ。


\displaystyle
s_f( k ) =   | f( k ) |^2
\\
\displaystyle
h_f( \xi ) = \frac{ 1 }{ 2 \pi } \int^{\infty}_{-\infty} s_f( k ) e^{ i k \xi }  \, dk

特に、 h( 0 )は実関数 f(x)の全強度に対応し、 h( 0 ) \propto \int s( k ) \, dk から、「スペクトル s(k)は(周)波数ごとの強度」と解釈出来ることがわかる。また、計算したスペクトルが正しいかどうか、直接求めた全強度と比較することでチェックすることも出来る。

余談だが、平均値  \bar{f} からのズレである \delta f(x) = f(x) - \bar{f}を扱う方が便利なこともある。
自己相関が分散に対応するように自己相関関数 Hを以下のように定義すると、

\displaystyle
H( \xi ) = \frac{ 1 }{ L } \int^b_a \delta f( x ) \, \delta f( x + \xi ) \, dx = \frac{ 1 }{ 2 \pi } \int^{\infty}_{-\infty} S( k ) e^{ i k \xi }  \, dk, \\
\displaystyle
L = \int^b_a \, dx, \qquad S(k) = \frac{ 1 }{ L } | \delta f( k ) |^2
この場合、 H( 0 )が全分散を与えるため、スペクトルは(周)波数ごとの分散を与えるものとして解釈出来る。これは揺らぎの解析に利用出来ると考えられる。

自己相関関数があるならば、相互相関関数も定義出来る。

\displaystyle
 h_{fg}( \xi ) = \int^b_a f( x ) g( x + \xi ) \, dx = \frac{ 1 }{ 2 \pi } \int^{\infty}_{-\infty} s_{fg}( k ) e^{ i k \xi }  \, dk
\\
\displaystyle
 c_{fg}( \xi ) = \frac{ h_{fg}( \xi ) }{ h_f( 0 ) h_g( 0 ) }
\\
\displaystyle
 s_{fg}( k ) = f^*( k ) g( k )

 s_{fg}はクロススペクトルと呼ばれる。
クロススペクトルは一般に複素数であるから、その位相 \theta_{fg}は次のように求められる。


\displaystyle
 \theta_{fg}( k ) = \tan^{-1}\left( \frac{ \Im \, s_{fg}( k ) }{ \Re \, s_{fg}( k ) } \right)

種々の相関関数から相互相関係数 c_{fg}( \xi )を作ったように、種々のスペクトルからコヒーレンス {\rm coh}_{fg}が定義出来る。


\displaystyle
 {\rm coh}^2_{fg}( k ) = \frac{ | s_{fg}( k ) |^2 }{ s_f( k ) s_g( k ) } = \frac{ s^*_{fg}( k ) s_{fg}( k ) }{ s_f( k ) s_g( k ) }

これらが実際の関数を考えた時にどうなっているのかは、今後少しずつ遊んでみたいと思う。