サンプルコードとドキュメント

強度グラフのY軸を対数スケールにする

コードとドキュメント

添付

すべてをダウンロード

概要

スペクトログラムなどは基本的に強度グラフに表示しますが、強度グラフのX軸・Y軸は対数表示にすることができません。

ですが、周波数軸(Y軸)は対数表示にしたいという要望が多くありますので、このVIを使用すればデータを対数スケールに変換できます。

詳細

STFTスペクトログラムなどで時間-周波数情報を算出する際、基本的に強度グラフに表示します。

このとき、ボーデプロットのように周波数軸(Y軸)を対数表示にしようとしても、LabVIEWの強度グラフのX軸・Y軸は対数表示に設定することができません。

そこで、周波数軸(Y軸)を対数スケールにするために、スペクトログラムデータを補間処理することで、データそのものを対数スケールに変換します。

添付VIの詳細は下記の通りです。

  • 「Convert Spectrogram Y axis to Log Scaling.vi」:実際のデータ変換・補間を行い、強度グラフのY軸の乗数・オフセットも調整します。
  • 「TEST - Plot Linear and Log.vi」:上記の変換VIを使い、STFTスペクトログラムのデータを対数スケールに変換します。

実装方法

(詳細は添付VIのブロックダイアグラム上のコメントをご覧ください)

このサンプルの概要:

  1. 10Hz, 100Hz, 300Hz, 1000Hzの正弦波を足し合わせた波形を生成
  2. 波形のSTFTスペクトログラムを算出
  3. 線形スケールの強度グラフにスペクトログラムを表示
  4. 周波数軸(Y軸)を対数スケールにするために、スペクトログラムデータを補間
    強度グラフのY軸の乗数・オフセットも調整
  5. 対数スケールの強度グラフにスペクトログラムを表示

必要なもの

ソフトウェア

  • LabVIEW 2014以降 (開発システム以上)

VIスニペット(LabVIEW 2015)

TEST - Plot Linear and Log.png

Convert Spectrogram Y axis to Log Scaling.png

NIコミュニティのサンプルコード交換のサンプルコードは、MIT Licenseによりライセンス供与されています。

コメント
coming_soon77
Member
Member

下位のLabVIEW(12.0f3)でも使用できるように変換いただけないでしょうか?

寄稿者