web-dev-qa-db-ja.com

信号のスペクトル解析を行うときのフーリエ変換(FFT)の単位

私の質問は、信号のスペクトル分析を行った結果の物理的な意味、または適切な数値パッケージを使用して信号をFFTに変換して結果を解釈することに関するものです。

具体的には:

  • 時変電圧v(t)などの信号を取得する
  • fFTにスローします(複素数のシーケンスを取得します)
  • ここでモジュラス(abs)を取得し、結果を2乗します(つまり、| fft(v)| ^ 2)。

これで、y軸に実数ができました。これらのスペクトル係数を呼び出しますか?

  • サンプリング解像度を使用して、クックブックのレシピに従い、スペクトル係数を周波数に関連付けます。
  • この時点で、x軸に周波数を持つ周波数スペクトルg(w)、がy軸に物理ユニットは何ですか?

私の理解では、この周波数スペクトルは、さまざまな周波数のうちどれだけが電圧信号に存在するかを示しているということです-それらは、元の信号を再構成するために必要なさまざまな周波数の正弦および余弦の係数であるという意味でのスペクトル係数です。

最初の質問は、これらのスペクトル係数の単位は何ですか?

これが重要な理由は、スペクトル係数が小さくて巨大になる可能性があるため、dBスケールを使用してそれらを表すことです。

しかし、それを行うには、選択する必要があります。

  • 電圧などのフィールド測定に対応する20log10 dB変換を使用します。
  • または、電力などのエネルギー測定に対応する10log10 dB変換を使用します。

使用するスケーリングは、単位が何であるかによって異なります。

これに光を当てることは大歓迎です!

58
Assad Ebrahim

信号、時変電圧v(t)を取得する

単位は[〜#〜] v [〜#〜]で、値は実数です。

fFTにそれを投げる-わかりました、複素数のシーケンスを取り戻します

単位はまだ[〜#〜] v [〜#〜]で、値は複雑です(V/Hz-FFT a DC =信号は、DCレベルでポイントになり、無限にズームオフするディラックデルタ関数ではありません)

モジュラス(abs)を取る

単位はまだ[〜#〜] v [〜#〜]、値は実数-信号成分の大きさ

そして結果を二乗する、すなわち| fft(v)| ^ 2

単位は現在V2、値は実数-信号成分の大きさの2乗

これらのスペクトル係数を呼び出しますか?

通常のスペクトル係数の使用よりも、電力密度に近いです。シンクが完全な抵抗である場合、それは電力になりますが、シンクが周波数に依存する場合、「入力電圧のFFTの大きさの2乗」になります。

この時点で、周波数スペクトルg(w)があります。x軸の周波数、および... y軸の物理単位は何ですか?

単位はV2

単位が重要であるもう1つの理由は、スペクトル係数が小さくて巨大になる可能性があるため、dBスケールを使用してそれらを表すことです。しかし、それを行うには、選択する必要があります。20log10dB変換(電圧などのフィールド測定に対応)を使用しますか?または、10log10 dB変換(電力などのエネルギー測定に対応)を使用しますか?

すでに電圧値を2乗して、同等の電力を完全な1オームの抵抗器に与えているので、10log10を使用します。

log(x22 log(x)なので、20log10 | fft(v 10log10(| fft(v)|2))==、つまり、値を2乗しなかった場合は、20log10を使用できます。

75
Pete Kirkham

Y軸は(実際とは対照的に)複雑です。大きさは、元のサンプルが何であれ、元の信号の振幅です。角度は、その周波数成分の位相です。

7

ここに私がこれまでに思いついたことがあります:

Y軸は[エネルギー/ Hz]の単位になりそうです!?

これがどのように導出されているのですか(フィードバックを歓迎します!):

  1. 信号v(t)はボルト単位

  2. したがって、フーリエ積分を取得した後:積分e ^ iwt v(t) dt、[ボルト*秒]、または[ボルト/ Hz]の単位が必要です(e ^ iwtは単位なし)

  3. 大きさの2乗を取ると、[ボルト^ 2 * s ^ 2]、または[v ^ 2 * s/Hz]の単位が得られます。

  4. 電力はボルト^ 2に比例することがわかっているため、[電力* s/Hz]になります

  5. ただし、Powerはエネルギーの変化の時間率、つまりpower = energy/sであるため、Energy = power * sと書くこともできます。

  6. これにより、候補の結論[エネルギー/ Hz]が得られます。 (ジュール/ Hz?!)

...これは「Hzあたりのエネルギー含有量」という意味を示唆し、周波数帯域を統合してエネルギー含有量を見る用途として提案します。

続けて...上記が正しいと仮定して、エネルギー測定を扱っているので、20log10ではなく10log10変換を使用してdBスケールにすることをお勧めします...

...

3
Assad Ebrahim

まあ、遅い答えは知っています。しかし、私は別のコンテキストで、このようなことをする理由がありました。私の生データは、ストレージユニットに対するトランザクションのレイテンシ値でした-1msの時間間隔にリサンプリングしました。したがって、元のデータyは「マイクロ秒単位の待機時間」でした。 1msのタイムステップで、2 ^ 18 = 262144個の元のデータポイントがありました。

FFTを実行した後、次のように0番目のコンポーネント(DC)を取得しました。

FFT [0] = 262144 *(すべての入力データの平均)。

したがって、FFT [0]はN *(入力データの平均)のように見えます。そのようなことは理にかなっています-すべてのデータポイントは、そのDC平均の一部であるため、すべてを合計します。

FFTの定義を見ると、それも理にかなっています。他のすべてのコンポーネントにもサインとコサインの項が含まれますが、実際にはFFTは単なる合計です。 cos(0)= 1であるため、すべてのポイントに平等に存在するのは平均のみです。

2
Kip Ingram

抵抗器への電力はv^2/Rワットです。信号の電力x(t)は、1 Ohm抵抗器への電力の抽象化です。したがって、信号の電力x(t)は、x(t)の物理単位に関係なく、x^2(瞬時電力とも呼ばれます)です。

たとえば、x(t)が温度で、x(t)の単位が度Cである場合、x(t)の電力の単位x^2C^2であり、ワットではありません。

x(t)のフーリエ変換を使用してX(jw)を取得する場合、X(jw)の単位はC*secまたはC/Hz(フーリエ変換による)積分)。 (abs(X(jw)))^2を使用する場合、単位はC^2*sec^2=C^2*sec/Hzです。パワー単位はC^2であり、エネルギー単位はC^2*secであるため、abs(X(jw)))^2E/Hzなどのエネルギースペクトル密度を示します。これは、x(t)のエネルギーが(1/2*pi)倍のabs(X(jw)))^2の積分によって与えられるwに関して、つまり(1/2*pi)*int(abs(X(jw)))^2*dw) > (1/2*pi)*(C^2*sec^2)*2*pi*Hz > (1/2*pi)*(C^2*sec/Hz)*2*pi*Hz > E

DB(ログスケール)スケールに変換しても、単位は変更されません。

x(t)と書かれたx(n)のサンプルのFFTを取得してX(k)を取得すると、結果X(k)はフーリエ級数係数の推定値になります。 T0秒の1周期は、サンプリングされたx(t)のセグメントです。 x(t)の単位が度Cの場合、X(k)の単位も度Cです。 abs(X(k))^2の単位はC^2であり、これは電力の単位です。したがって、abs(X(k))^2の周波数に対するプロットは、x(n)のパワースペクトル(パワースペクトル密度ではない)を示します。これは、x(t)の周波数成分のセットの推定パワーです。周波数k/T0 Hzで。

2
Roland Priemer