"血をもって書け。そうすればあなたは、血が精神だということを経験するだろう。"

矩形波のFourier展開

矩形波をFourier展開することを考える。
Fourier係数を計算するために原関数をある有限周波数(jとおこう)でサンプリングしないといけないのだが、
この時間分解能が低すぎるとあとで矩形波を復元するときに妙なことが起こる。
Fourier級数の和が第j項に近づくと、低周波の信号がひっくり返ったような信号(縦の座標をyとして、y=±1のあたりで上下対称に出ている信号)が出てくるのである。下の図はj=100/2πのサンプリングでk=100まで和をとったところ。特にk=100の線はy=±2のところにぴったりくっついてしまっている。
f:id:satzz:20071129205429p:image
何が起こっているのかよくわからなくて悩んでいたけれど分解能を大きくしたらこの現象は消えた。j=200/2πにしたところ。
f:id:satzz:20071129205448p:image

何のことはない、これは情報学におけるかの基礎定理、NyquistとShannonの標本化定理であり、ひっくり返った奇妙な信号はエイリアシングによるものである。


とかなんとかエラそうなことを書いてみたけど、これは計算地球物理学のレポートでFortranを使って矩形波のGibbs現象を確認しようとしたときに偶然気づいたもの。厳密な数学理論は好きではないので事実関係は結構適当です。
情報系では常識中の常識のはずなんだけど、正規教育を受けていないものだからあいまいにしか理解していなかったエイリアシングがずばーん!と直感的に分かってつい興奮してしまった。
画像が小さくて申し訳ないが、対称な信号はk=1とk=99,k=2とk=98,k=4とk=96,...に対して出ている。k=100で出たy=±2の信号はちょうどk=0のy=0の信号の裏返しになっている(k=0のグラフは表示していない)
頭で知ってても実際にやってみてはじめてわかることってあるんだなぁと実感した。


さて、明日までに肝心のレポートのプログラムを二つ書き上げないと。。。