LabviewとScilab

全chを一挙にFFT伝達関数を計算するViを作成して動かしたら、FFTのスペクトル振幅値と伝達関数の位相の結果がおかしい。見直すとペクトル振幅値はハニング窓を掛けた時の補正と、RMSをpeakにする補正が抜けていた。伝達関数の位相は使用したatan関数がπ/2の範囲までしか対応していない関数で、違う関数を使用したら大丈夫だった。道理でところどころの部分だけ変な結果になる訳だ。今まで使用していた解析ソフトから自分で組んだ物への移行なので、両方で計算して比較して間違いや改善点をプログラムし直しての作業だから、思ったよりも仕事が捗らない。しょうがないのでこの連休中も家で仕事する事に・・・。まあ、自分で組んだ方が完全に信頼出来るようになれば楽になるので、それまでの辛抱かと。

自分で組む解析ソフトはscilabの方が先だったので、こちらは以前にもチェックをしているので結果は大丈夫なのだが、使用しているcsvを読み込む関数はデータ以外があると駄目なので、社内csvフォーマットみたいにヘッダーに文字情報があるファイルはそれを消さないと駄目なので使い辛い。それを改善しようとread関数以外を試すが、いまいち上手くいかない。fscanfMatというデータの前にある文字行はデータと分離できる関数があるのだが、重いデータだとstacksizeをMAXにしてもエラーが出てしまう。mfscanf関数だと区切り文字がタブで固定なのか、1行まるまる読む事は出来ないらしい。いや、たぶんなんか手段はあると思うが、判らなかった。

会社のLabviewだとXPパソコンに限定されて、32bitだから重いデータは扱えず、scilabフリーソフトMacLinuxでも可能で重いデータでも大丈夫だがデータファイルには加工が必要で、どちらも一長一短だ。処理速度はさすがにLabviewは早くて、ネットブックAtomなCPUでも、SSE3をフル活用しているのかそれなりに早い。

scilabは5.2になってから作業ディレクトリの変更先を保存してくれない。前はFFT高速計算ライブラリが別にあったのだが、統合されたのだろうか?。