FFT時間領域平均と周波数ビン平均


12

生理学的データの複数の試行があります。特定の周波数のパワー(振幅)を分析するために、周波数ベースの分析を行っています。等しい長さの複数の試行を平均化してから、平均化された信号の単一のFFTを取得するのと、各試行のFFTを計算してから、同じ周波数ビンを平均化するのですか?実際には、これが事実ではないことを発見しています。

具体的には、信号には自然に強力な1 / f成分が含まれており、個々の試行のFFTを計算し、各周波数ビンの振幅(実数部)を平均すると、これが強調されます。2つは同等ですか?物事を行う正しい方法はありますか?または、時間領域の平均化と周波数ビンの平均化のどちらを選択する必要があるのでしょうか?

fft 

回答:


8

明確にさせてください。

  • フーリエ変換ではありません、信号のヒストグラムを表し。フーリエ変換は、信号を時間領域(複素関数)から周波数領域(別の複素関数)に変換する線形変換です。複雑な関数を別の複雑な関数に取ります。
  • 上記のポスターが指摘したように、フーリエ変換線形です。
  • 上記で指摘したように、サンプルのフェーズは重要です。試行ごとのデータの位相が異なる場合、フーリエ変換を実行する前に平均化する必要はありませんが、フーリエ変換後に平均化する必要はありません。フーリエ変換とノルムの後に平均化します。正確に何をする必要があるかについて、以下で詳しく説明します。

ここでの主な問題は、質問が間違っていることです。「平均化の前または平均化後にフーリエ変換を行うべきではありません」。なぜなら、フーリエ変換の線形性によって違いは生じないからです。

問うべき正しい質問は、「平均化の前または平均化の後にフーリエ変換の振幅を取得すべきか」です。この質問に対する答えは以前です。

詳細はこちらです。

サンプリングされたデータがシーケンスで表されると仮定します。

d1=d1[n1],d1[n2],...d1[nN]

d2=d2[n1],d2[n2],...d2[nN]

d3=d3[n1],d3[n2],...d3[nN]

...

dM=dM[n1],dM[n2],...dM[nN]

どこ Mの試験からのデータであるN 1n Nはサンプリングされた時点であり、その後:d1,...dMn1,...nN

F1=j=1M|F{dj}||F{j=1Mdj}|=F2

だから、変換しながら、、線形であります| F | ではありません。F|F|

さらに、すべてのi jについては実数ですが、F { d j }は実数ではありませんが、| F { d j } | です。dj[ni]i,jF{dj}|F{dj}|

何をすべきかについては、個々の試行のフーリエ変換(FFT経由)を行い、個々の試行の振幅を取得し、それらを一緒に平均化する必要があります。

最後に、とは何ですか1 / fは、「自然な」信号の周波数スペクトルの短い用語です(通常、人々は画像を思い浮かべます)。1/f1/f

人々が大きな成分があると言うとき、それは周波数の関数としての振幅が1 / fのように見えることを意味します。それは完全に手波状です...おそらく生物学者から来ています:p1/f1/f

の逆フーリエ変換は符号関数ですが、それは役に立ちません。虚数符号関数です!実関数は対称フーリエ変換を生成します。1/f

実際、スペクトルがであると言うことは、信号について何かを伝えますが、信号を回復させることはできません。知っていることはそれだけです| F { x t } | = | 1 / f | 。これにより、すべての位相情報がなくなったため、x t を一意に決定できません。また、信号の構造はその位相に大きく依存していることがわかります。1/f|F{x(t)}|=|1/f|x(t)

何がわかりますか?単純に、多くの低周波数と少し高い周波数が含まれているということです。1/f

同様に重要な質問ですが、平均化によって何が得られますか?より重要なのは、結果の解釈方法ですか?より詳細な議論のために明日を調整してください:p


1
+1明確にしていただきありがとうございます。私は質問の背後にある根底にある問題を誤解していると感じており、これはそれの中心にもっと来ると思います。
jstarr

2

まず、FFTはアルゴリズムです。変換はフーリエ変換と呼ばれます!信号のヒストグラムを表します。ディスクリートの場合、周波数ドメインでの読み取り値が高いということは、その周波数で大量のエネルギーが発生していることを意味します。

位相情報によってデータに大きな変化が生じるため、FFTの前にデータを平均化しないでください。

それぞれが純粋なコサインからなる2つのサンプルを想像してください。現実の世界では、まったく同じ開始点でこのコサインをキャプチャすることはありません。1つのコサインは他のコサインにシフトしてシフトされます(または両方とも開始に対して異なるシフトを持っています。数学的には、これはy1 = cos(wt-A)y2 = cos(wt-B)です。少し計算すれば、y2-y1 = 0になるようにこれらの値を選択できます。ゼロの平均はゼロであり、完全にあなたが望むものではありません。これが位相の問題です。

スペクトル全体で平均化する必要がある平均スペクトルを見つけることが目標である場合は、信号を平均化しないでください!


ありがとう。確かに、試行ごとにちょうど良い位相差のノイズがある場合、すべての周波数または対象の周波数の信号がキャンセルされるという懸念がありました。時間領域平均化とそれに続くFFTの代わりに、周波数ビン平均化によって1 / fが強調される理由はまだ明確ではありません。

@ user1487551強力な1 / fコンポーネントとはどういう意味ですか?1 / fの逆フーリエ変換は符号関数であり、システムが安定しているときにデータに大きなチャンクが含まれていることを示唆する場合があります。おそらく、プロットまたはデータを表示する必要があります。
ミハイル

1
データキャプチャを同期できる位相参照がある場合は時間平均行うことができ、これはノイズフロアを減らすのに非常に効果的ですが、そうでない場合は周波数ドメインでアンサンブル平均を行う必要があることに注意してください。
ポールR

2

私が完全に根拠がないか、あなたの質問を誤解しない限り、答えはイエスです:DFTの線形性により、信号を時間内に平均してからDFTを取ることは、信号のDFTを平均することと同等です。

これを示すために、いくつかの変数を定義しましょう:

  • xn[]thn
  • Xk[]thk

時間領域の「平均」信号はで与えられます1L=0Lバツn[]

n=0N11LLバツn[]e2πkn/N

合計の順序を切り替えると、次のように記述できます

1L=0Ln=0N1バツn[]e2πkn/N

しかし、これはと同じです

1L=0Lバツk[l]

これは、各trivalのDFTの平均化と同じです。これは私たちが見せたかったものです。


時間領域で平均化するには、同期可能な何らかの位相参照が必要です。これはあなたが時々主として量子化などの影響で減少し、周波数領域でのアンサンブル平均よりも良い結果を得ることができますが利用可能な場合
ポール・R
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.