FIRデジタルフィルタ、オートゲインコントロール、LPCスペクトル、および、シフトマッチングを高速処理するために、本製品のソフトウェアはマルチCPUによる並列処理を実行します。本製品のソフトウェアは自動でCPUの個数を検出し、それぞれのCPUは並列処理を実行して高速計算を実現します。
マルチCPUによる並列処理ソフトウェア
デジタルフィルタとセグメンテーション:
図1のフローチャートは、3時間にわたる連続録音データから鳥の鳴き声の波形を切り出す処理手順を示しています。
●フローチャートのStep 1では、交通騒音を除去するために2000Hz~5600Hzの通過帯域をもつバンドパスフィルタが用いられます。バンドパスフィルタソフトウェアは、マルチCPUによる並列処理を実行します。
●Step 2では、エネルギー曲線が計算されます。
●Step 3では、それぞれの時間区間においてエネルギー曲線が正規化されます。(オートゲインコントロール)
●Step 4-17においてソフトウェアは、3時間にわたる連続録音データから鳥の鳴き声の波形を切り出します。
● Step 2-4において、それぞれのCPUが並列処理を実行します。
図1 デジタルフィルタとセグメンテーションのフローチャート
LPCスペクトログラム:
図2のフローチャートは、ハンマーを用いてコンクリート供試体を打撃した音から2次元スぺクトログラムを算出する処理手順を示しています。
●フローチャートのStep 1では、ハンマーを振り下ろしたときに発生する風雑音を除去するために500Hz~24000Hz(サンプリング周波数=48000Hz)の通過帯域をもつハイパスフィルタが用いられます。ハイパスフィルタソフトウェアは、マルチCPUによる並列処理を実行します。
● Step 2では、マルチCPUによりソフトウェアは自動的に連続録音データから打撃音の波形を切り出します。
● Step 3では、1.062msecのフレーム幅、0.021msecのフレーム周期で打撃音の波形データが切り出され、フレームごとに1次元LPCスペクトル(周波数-パワー)が算出されます。Step 3では、それぞれのCPUが並列処理を実行します。
● Step 4では1個のCPUが、Step 3で算出したフレームごとの1次元LPCスペクトル(周波数-パワー)をマージして2次元スぺクトログラム(時間-周波数-パワー)を出力します。
図2 LPCスペクトルとシフトマッチングのフローチャート
シフトマッチング:
図3の左上の図形は、入力音のスぺクトログラムにおいて周波数軸と時間軸の方向にシフトした入力パターンの典型例を示しています。窓を通してスぺクトログラムを切り出すことにより入力パターンが得られます。
この方法を用いることで、振動周波数が大きく変化したときでも、ソフトウェアは入力パターンと標準パターンを正確にマッチングします。図3の下側の図形は、入力音と異常音が良いマッチングであることをグラフィック表示したものです。
前記の図2のStep 5はシフトマッチングの方法を示しており、それぞれのCPUはStep 5を並列処理で実行します。Step 6において、最適マッチング入力パターン(shift freq. l-shift time m)と最も類似した標準パターンが得られます。
図3 入力パターンのシフトマッチング
複数のCPU(2~18個のコア)が1台のパソコンに搭載されており、これら複数のCPUを1つのソフトウェアが同時に使用することができます。Windows 10では、タスクマネージャがCPUの使用状況をパーセンテージで表示します。本製品のソフトウェアは自動でCPUの個数を検出し、それらCPUによる並列処理を実行します。