Chapter Thirty
第30話
-
今回はスペクトルデータの解析を助けるツールを作ってみよう。
一般的に、波形データのパワースペクトルを計算するのは興味のある周波数領域でピークを持つ周波数とピーク値を知りたいからだろう。LabVIEWのグラフ表示器は便利にできているためグラフからカーソルで値を拾うことが多いが、繰り返し作業が続くと面倒になって自動的に処理したくなるのが人情だ。
信号と雑音の区別は解析する側の価値判断によるため、人間がピークを拾っていくときには無意識で自分の欲しいピークだけを拾う傾向があるようだが、機械的に処理する場合にはそうはいかない。そのため、自動的にピークを取り出す前に信号のスムージング処理を施すことが必要になる。
スムージングで一番ポピュラーな方法は、移動平均によるものだろう。ユーザーマニュアルのシフトレジスタの使用例に取り上げられている方法は次のようなダイアグラムだ。
- この方式の欠点は平均化するデータ数を変えるときにはダイアグラムを変えないといけないところだ。データ波形を見ながら平均化するデータ数を選ぶようなインタラクティブな用途には使えない。
下のダイアグラムは平均化するデータ数を2Q+1で指定することができる。例えばQ=1のとき、フォーループは3回実行される。Rotate
1D Arrayに+1、0、−1を作用させてデータを回転しながら、イニシャライズした配列に加算して最後にループ回数で割ると、前後1データを除き移動平均と同じ結果を得ることができる。
- この方式はループ回数が少なくなるため実行時間も速いようだ。
つぎにピーク検出、、、と、ここまで書いてLabVIEWのExampleVIを調べていないことに気がついた。
- examples>analysis>peakxmpl.llbにかっこいい例がある。
VIを作り始める前にExampleやInfo-LVのアーカイブを調べてみる習慣を身につけた方がいいかな。ちょっと反省。
方針変更の時間をもらうことにして、今回はこの辺で終えることにしよう。
- See you!
Nigel Yamaguchi
戻る