Chapter Thirty-one

第31話



今回はピーク検出の続きだ。南 茂太著の「科学計測のための波形処理」という本で紹介しいているピーク検出法を使おうと思っていたのだが、LabVIEWにはPeak Detector.viが標準で用意されていることに気がついて中断することにしたのだ。

使っている人は知っているが、使っていない人は当然知らない場所にこの便利なviが置かれている。"解析"の"信号測定"のメニューに含まれている。これはプリミティブなのでアルゴリズムは良く分からないが、移動しながら区間毎に2次近似して微分しているのだろう。少なくとも自分でダイアグラムを書くより速そうだ。使い方は前回気がついたExampleが参考になる。

同じ場所にあったこのviはSingle Sided Formatでパワースペクトルを出力してくれるので便利だ。ダイアグラムを見てみると意外にシンプルな構成をしている。フォーループでグルグル回して処理しているので、もっと速くなるのではないかと疑ってみたが、そんなに悪くはないようだ。

これらを使ってパワースペクトルのピークを検出するVIを作ってみよう。

まずピーク検出用のサブVIだ。
データを入力すると、データとピーク点がオーバーレイされたXYグラフで出力される。実際に呼び出し側でグラフに表示するときには、凡例でプロット1は補間なしでポイントだけが別の色で表示されるように指定しないといけない。ピークのX座標の配列データとY座標の配列データ、タブ区切りの文字列も同時に出力する。

ダイアグラムは横に長くなってWebでは見にくくなってしまった。
Peak Detector.viの出力は近似曲線上のピーク位置なので、かならずしも実データのピークとは異なる。実データ上のピーク位置はPeak Detector.viのX出力を中心に実データを切り出してArray Max MIn関数で求める。
最後に数値を表計算ソフトで扱いやすいタブ区切り文字列に変換して文字列の出力をおこなう。

さて、このPeakFinder.viを使ってパワースペクトルからピークを持つ周波数を取り出すVIを作ってみよう。検知したピーク位置が赤丸でマーキングされてひとめで確認できる。サンプリングレートから周波数の分解能を計算し、実周波数で表示している。
文字列で周波数とマグニチュードを書き出しているので、詳細な値も確認しやすい。こうしてみると、文字列はスクロールが使えるから配列よりも操作性が良いことに気付いた。

サブVIのおかげでダイアグラムはシンプルになっている。

さて、次回はこのVIの応用を考えてみよう。
See you!


Nigel Yamaguchi

戻る