Labviewで1/3 Oct Band処理のプログラムが大方出来た

 Labviewで1/3 Oct Band処理のプログラムが大方出来た。フーリエ変換伝達関数のプログラムが割りと簡単に出来た割には苦労したのはデータ量に起因する。フーリエ変換伝達関数は窓長分のメモリしか食わないが、1/3 Oct Bandにしろフィルタ処理は、処理したい波形分のメモリが必要になる。振動などの数百Hzのサンプリングなら問題ないが、騒音などの48kHzサンプリングでは数秒のデータでメモリ不足になってしまう。
 そこでScilabに方向転換したのだが、Labviewでは自動で行ってくれるらしいフィルタの通過帯域とサンプリング周波数の調整を、Scilabでは自分で行わなくてはならないのと、標準のフィルタは直接形なので並列型を自前で作る必要がある。またScilabでもそれなりにメモリの問題があるので、ならばXCOSで・・等と迷走していたのだが、Labviewのフィルタで最初の1波以降は初期化しないようにすれば波形を区切って読ませても大丈夫なことが判ったので、再度Labviewに戻ってきた。しかしScilabでも完成させる必要はあるが。
 波形を区切って読ませるので基本的に長時間の処理が可能。AP値と各バンドの結果をメモリに溜め込んで最後に結合するので、余りにも長時間は駄目だと思うが、dB化しているので出力サンプリングは50Hz程度で十分。バンドマックスはオリジナルのサンプリングで拾って居る。今行っている仕事のデータで、12chで256Hzサンプリングで40分程度が限界だから25個位のバンドで50Hzなら80分位か・・・実用上余り問題ないと思うが、改善の余地はあるかも。というか改善しよう。
 おまけにA特性感覚補正も追加。鉛直振動感覚補正は無し。まあ騒音の場合はZ特性で採って後からA特波形も欲しいという場合は多いけど、振動の場合は計測の目的でどちらかの波形しか使わない事の方が多いし。