自作FFT-FIRプログラム(C#)とScilab

y_takeuchi2009-04-05

4月に入ってようやく暇になった、とは言え昨日は休日出勤となったが。

自作FFT-FIRプログラム(C#)の中身も整理整頓し、重複する処理は極力メソッド化したり、長い文は外部のクラスに追いやったりして、幾分見やすくなった。
機能的にはFFTフィルタやFFTを使用したFIRフィルタを実装したが、どちらも上手くいかない。まだまだ内部の検証の必要あり。
FFTフィルタの方はプログラムの問題と言うよりあのような手法を時系列的なフィルターとして使う手法の問題のような気がする。

最近になってScilabが気になりだした。最初からFFTやフィルターの関数を持っている、Octaveとかこれらのmatlabモドキを使った方が、プログラムの作成も楽だし間違いも少ない。有料の本家のmatlabを買うほどではないので、matlabモドキで良い。Octaveでも良かったのだが、作成元を考えるとScilabの方が良いのかな?と思った。
一旦、気になりだすとC#の方を改善するのをほったらかしてScilabに取り掛かったら、今日一日でダウンロードから初めてwaveファイルを開いてFIRフィルタとFFTを行うものが出来てしまった。まあ、単に出来るかどうかの確認で実際に使えるようにするにはもっと手を入れる必要があるだろう。

ScilabがCUDAに対応してくれたら・・・という期待もあったり。
取りあえず5秒間のホワイトノイズを、2048点分そのままプロット、ローパスフィルターをかけたものを2048点分プロットしたの、各々のFFT結果。

写真は昨日の出張の現場の近くにあった大仏様。