スペクトル解析実習
練習 1
答えのわかっているスペクトルを計算してみましょう (その 1).
サンプルプログラムを使ってスペクトルを計算してみましょう.
サンプルプログラム
サンプルプログラムはこちら.
ダウンロードは, 例えば wget を使うならば下のようにする.
$ wget http://itpass.scitec.kobe-u.ac.jp/~yot/itpass/2022_spectrum/programs/calcspe.f90
これは Fortran で書かれたスペクトル計算プログラムです. 中身は... .
FT Pack/ispack の説明はこちら.
コンパイルと実行
コンパイル
$ gfortran calcspe.f90 -o calcspe -L/usr/lib/x86_64-linux-gnu -lispack
実行
$ ./calcspe
出力ファイル
data_in_xy.txt : (入力)[実空間] 入力 (実数) data_out_xy_inv.txt : (出力)[実空間] 入力をスペクトル変換後に逆変換したもの (複素数) data_out_spe_comp.txt : (出力)[波数空間] 入力をスペクトル変換したもの (複素数) data_out_spe_powpha.txt : (出力)[波数空間] 入力をスペクトル変換したもの (パワー, 位相)
結果の確認
gnuplot を使って入出力を確認する.
(X サーバを立ち上げるのを忘れずに)
$ gnuplot
まずは入力データの分布
gnuplot> plot "data_in_xy.txt" w l
スペクトル変換して, 逆変換した分布も重ね描き (シンボル)
gnuplot> plot "data_in_xy.txt" w l, "data_out_xy_inv.txt" w p
ついでに, 逆変換した分布の虚部も重ね描き (シンボル)
gnuplot> plot "data_in_xy.txt" w l, "data_out_xy_inv.txt" w p, "data_out_xy_inv.txt" u 1:3 w p
複素数スペクトル
gnuplot> plot "data_out_spe_comp.txt" w l, "data_out_spe_comp.txt"u 1:3 w l
パワースペクトル
gnuplot> plot "data_out_spe_powpha.txt" w l
位相
gnuplot> plot "data_out_spe_powpha.txt" u 1:3 w l
メモ
- ライブラリがどうとか
- 波数の定義
- 波数の範囲
- ナイキスト周波数 (後回し)
- 実数のスペクトル (複素数)
- 振幅 (2 で割って平方根をとって 2 をかける), 位相 (atan)