MATLABちっぷす
動作確認:MATLAB 7, v. 7.0.0.19901 (R14), May 06, 2004 on Mac OS X 10.3.6
コマンドラインで実行
- .../matlab -nodisplay -r {filename:r}
フーリエ変換と逆変換
手順
>> load file.txt;    # データファイル
>> x = file(:,1);    # ファイルの1カラム目が対象
>> y = fft(x, 80);    # 80はデータの個数
>> s = y.conj(y)/80;    # 上で指定した80
>> f = 10/80*(0:79);    # 79は80-1、fは80点
# 10は、データファイル中でのデータの時間間隔がtのときの1/t
>> plot(f,s);    # プロット
>> z = ifft(y);    # 逆変換, z = x になる。
>> save r.txt s -ascii; # テキスト形式でスペクトルを保存
注意点
- データは2の累乗個でなくてもよい。その場合DFTが計算される。
- 上記例のfは単に横軸に数値を入れるためだけの変数。
- データが行列だった場合、各列に対してフーリエ変換が行われる。逆変換も同様。
各列に対して行いたい時はfor文を使う。
>> for i = 10000 : -1 : 1
>> y = fft(file(i,:));
>> end;
(Nov. 9, 2004)
プロット画像の保存
- とりあえずworkspaceからプロット
- 出てきたウィンドウのFileメニューからSaveまたはSave As...を選ぶ
出てこない時は、DockとかでXサーバーを選んでみる。
- 出てきたダイアログ・ボックスの下の方、
Selectionと書いてある下のテキスト・ボックスが保存されるファイル名だが、
パス名の頭が切れていることがある。これをちゃんと入れてリターンキーを押す。
Saveボタンを押すのは良くない気配がする。
(Nov. 9, 2004)