Skip to content

📆 2023-12-28

フーリエ変換まとめてみた2

#Math #Theory #Summarize #Relion

前回の続き。

前回導出したフーリエ変換と畳み込みの性質を使って、離散化したフーリエ変換を導出したい。 流れとしては、

  1. 実空間の関数を有限範囲に制限する
  2. 周期性を仮定することで逆空間を離散化する
  3. 実空間でサンプリングする

これで離散化ができるはず。

Reference

この記事は主に畳み込みの定理による回折像の理解を参考にしています。(いつも勉強になっています、ありがとうございます)

だいたい書き終わったあとに英語版のDFTを見たら、ほぼ同じことが書いてあった。英語版の方がわかりやすいかもしれない。

図はあとでいれるつもり。

1. 実空間の関数を有限範囲に制限する

帯域がナイキスト周波数±fnyqで制限された関数f(x)を考える。 まだ連続であることを仮定しているので、周期は無限である。 ここで、実空間で長さTの矩形関数をΠ(x/T)として、関数f(x)に掛けると、逆空間ではTsincπ(Tf)の畳み込みになる。

この畳み込みによって帯域がナイキスト周波数を超えるが、Tが十分大きければ、畳み込みの影響は無視できる。 具体的には、大体のカメラの検出器は2^12ピクセル程度なので、T=212pixelsizeとなる。sincπ(Tf)はだいたいf=±1/Tで広がるので、ナイキスト周波数ではほとんど滲まない(あんまりいい例じゃないかも)。有限に制限することで畳み込みの効果で局所的に位相が相関することになる。

2. 周期性を仮定することで逆空間を離散化する

逆空間を離散化するために、周期性を仮定する。 (1)で有限範囲に制限した関数f(x)をそれぞれ被らないように無限に並べる。 これは前回の記事でやったように実空間で周期Tのデルタ関数の畳み込みになるので、逆空間では周期1/Tでサンプリングすることになる。

具体例としては、Relionの*_model.starのrlnAngstromResolutionは1/T=1/(BoxSizePixelSize)間隔でサンプリングしていることに対応する。

3. 実空間でサンプリングする

前回の記事と同じ。実空間で周期性を仮定したので、有限の範囲でサンプリングすればいい。実空間でサンプリングすることは同じように逆空間で畳み込みになる。これらの性質をフーリエ変換に入れることで、離散化したフーリエ変換を導出できる。

この手順の逆の方法を考えてsinc関数で滲ませたりすれば元の連続の関数を復元できる。

離散フーリエ変換

これまでの議論から、フーリエ変換を形式的に対応させる。

Discrete Fourier Transform

N個のサンプリング点列をxn=nΔ、対応する周波数をkn=nΔとする。連続のフーリエ変換を形式的に変換すると、

F(kn)=n=0N1f(xn)e2πiknxnΔf(x)=n=0N1F(kn)e2πiknxnΔ

となる。 Δ=1/(NΔ)となることを使って、

F(kn)=n=0N1f(xn)e2πinNnΔf(xn)=1NΔn=0N1F(kn)e2πinNn

軸を適当にスケールするとΔ=1にできるので、

F(kn)=n=0N1f(xn)e2πinNnf(xn)=1Nn=0N1F(kn)e2πinNn

となり、離散フーリエ変換が導出できる。

FFTのアルゴリズムは気が向いたら書く。

Released under the MIT License.