DIAdemの2チャンネルFFTの伝達関数はどのように計算されていますか?

更新しました Feb 22, 2023

使用製品

ソフトウェア

  • DIAdem

問題

プログラミング言語によってFFTの伝達関数から得られる結果が異なります。DIAdem ANALYSISの2チャンネルFFT の伝達関数 (スペクトラムH0, スペクトラムH1, スペクトラムH2)はそれぞれどのように計算されていますか?

2chFFT - transfer function.png
 

解決策

伝達関数から得られる結果は平均を取るタイミングや順番によって計算結果が異なります。DIAdem ANALYSISの2チャンネルFFTの伝達関数のそれぞれの数式は以下のようになります。

スペクトラムH0の場合

SpectrumH0_equation.PNG
DIAdem ANALYSIS で上記数式を確認するには、それぞれの入力信号および出力信号に対して1チャンネルFFTを行います。その際、インターバルを設定する場合は、平均を取らずに実行する必要があります。平均を取らずに実行することでインターバル毎の結果データがデータポータルへ出力されます。最後にインターバル毎の結果データを割り、足し合わせた結果をインターバルの数で割ることで2チャンネルFFTの伝達関数 スペクトラムH0と同一の結果になります。
 

スペクトラムH1とスペクトラムH2の場合

SpectrumH1_equation.PNG

SpectrumH2_equation.PNG

クロススペクトラムの解析結果は虚数と実数で出力されるため、例えばインターバルを2と設定した場合、合計4チャンネル作成されます。その作成された4つのチャンネルに対し、まず実数のみの平均と虚数のみの平均を取る必要があります。上記数式の Cross Spectrum Real AverageCross Spectrum Imaginary Averageになります。そのあとに、実数と虚数を合わせた平均値を取得します。数式は上記数式の Cross Spectrum Average (A,E) になります。

オートスペクトラムはインターバルごとに1つのチャンネルが作成されるため、インターバルを2と設定した場合、2つのチャンネルが作成されます。オートスペクトラムの平均は2つのチャンネルを足し合わせ、2(インターバルの数)で割る形となります。

最後に実数と虚数を合わせたクロススペクトラムの平均値 Cross Spectrum Average(E, A)をオートスペクトラムの平均 Auto Spectrum Average (A)で割った値がDIAdem上で伝達関数 スペクトラムH1を使用した際の解析結果と一致します。スペクトラムH2は同様に取得できますが、オートスペクトラムやクロススペクトラムの平均を計算する対象の信号が逆になるので、最後はオートスペクトラムの平均をクロススペクトラムの平均で割ります。