2012年6月15日金曜日

JSXでDFT(改訂版)

DFTの改訂版

以前の記事を書いた際には,まだまだJSXのことがよく分かっておらず,変な記述が多かったのと,一部バグがあったのでソースコードを改訂しました.とりあえずソースをご覧ください.

設計上,変えた箇所はFunctionGeneratorを独立したクラスにしていることです.バグがあったのは,元波形を合成しているところで各サンプルをサンプル数で割っていたのですが,これでは波形の振幅がおかしくなってしまうので,dftメソッド内で割るようにしたことです.

技術的に変わったところは,

  1. 元波形の関数をmainで定義し,その関数を渡して元波形を生成するようにした
  2. 表示が見づらかったので1000倍→intに変換→1/1000倍して見やすくした

などです.dftメソッドがシンプルになったので,インスタンスメソッドにしている意味が無くなりました.現状ではaiとarを一度に返すことができないので別のメソッドで取得していますが,JSXが2つ以上の返り値を返せるようになったらクラスメソッドに変更できます.2つ以上の返り値を返せるようになりませんかね?

DFTの実行結果

実行結果です.多少は見やすくなったと思います.

おわりに

徐々にJSXに慣れてきたので,次はGUIアプリ版のDFTを作りたいと思います.もちろん,グラフ表示も付けたいと思います.その他要望などありましたらコメント欄にお書きください.

ソースコードをgithubのこちらに置いておきます.pを増やしたり,元波形の関数を変更するなどお試しください.

このエントリーをはてなブックマークに追加

0 件のコメント:

コメントを投稿