なぜFFTのDC成分は大きくなるのか?
- FFTをすると、DC成分(X=0)の値がとても大きくなります。1次元でも2次元でも同様です。エクセルで32行の1次元FFTをすると、DC成分だけ数万という大きな値が現れ、AC成分は数十程度の値になります。この現象の理由について知りたいです。
- 画像の2次元FFTをすると、X軸とY軸がとても白くなります。これは、DC成分が大きい影響です。しかし、この現象が問題となるのは、別の信号と相関を取る場合です。DC成分が大きすぎると、AC成分との相関係数が100%になってしまい、微妙に違うはずの信号でも相関が高くなってしまいます。
- この問題を解決するには、DC成分の大きさによって相関係数を調整する工夫が必要です。しかし、なぜFFTをするとDC成分が大きくなるのか、数学的な理由は分かっていません。DC成分の大きさを抑える方法や、他の信号との相関計算における問題解決方法について知りたいです。
- ベストアンサー
FFTのDC成分って、なんで大きくなるんですか?
2次元に限らず、1次元でも、 FFTをするとDC成分(X=0)の値がとっても大きくなります。 エクセルで32行の1次元FFTをすると DC成分だけ数万で、AC成分が実数も虚数も数十程度の値が出るんですよ~ なぜ? ちょっとした画像の2次元FFTしたものを添付します。 X軸とY軸がとっても白いのは、 DC成分がでかい影響なんです。 どうしてこれが問題かと言うと、別の信号と相関を取るとき、 DC成分だけバカでかいと、それに引っ張られてしまい、 AC成分は微妙に違うのに相関係数=100%!!とか 出力しちゃってどうしよう!ってなる訳です。 工夫のしどころ、とも考えられますが、理由が知りたいのです。 数学的に分かっていることでしょうか~?
- NEW2010
- お礼率100% (113/113)
- 物理学
- 回答数5
- ありがとう数5
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
画像というのはそういうものです。たとえ正負両値のある(つまりsignedの)画像であっても、たいてい低周波に集中し、そしてDCが極大。 理由とか言ったって、画像というか被写体自身の周波数成分がそうなっているものですからしかたありません。むろんDCの無い画像を作ることも出来ますが。 DCに興味が無い場合は、 「いまのところ 除去して対応してるんです」 ということですが、 それでも依然としてDCが巨大ならば、除去できていないと言うことです。 とにかく総和(あるいは平均)がぴったりゼロになるようにバイアス加算してください。 よくやることです。DCの他に一次関数で差し引いたりいろいろやります。専門用語で「トレンド補正」とか「トレンド除去」とか言います。関心があったら検索するなどで調べてみてください。
その他の回答 (4)
- tadys
- ベストアンサー率40% (856/2135)
画像データには負の値は無いんです。 真っ黒より暗い色はありませんから。 ですから、全データの平均値は必ずゼロ以上の値になります。 全データの平均値=DC成分です。 明るい画像であればDC成分は大きくなります。 電気信号の場合はDC成分を含まない信号が多くあります。 この場合には、FFTの結果にDC成分は現れません。
お礼
例として、エクセルで1次元FFTの結果を下に示します。 信号 FFT後 1 10 2 -2+2i 3 -2 4 -2-2i 上記より、信号【1~4】をFFTするとDC成分=10になります。 (別に、信号【1~32】をFFTするとDC成分=528になります。) DC成分が平均値とすると、信号【1~4】は正弦波の下端に位置し、 当該正弦波の上端は【~20】くらいまであるんですよー、 とFFTは教えてくれているのでしょうか? 重ねて質問で誠に申し訳ありません。
- アウストラロ ピテクス(@ngkdddjkk)
- ベストアンサー率21% (283/1290)
No.2です。 信号データ(FFTする前のデータ)の変化に対して、バックグラウンドのオフセットの大きさが大きければ、FFTしたあとのデータでDCが大きくなりすぎるのは当たり前かと思われます。(そのせいで計算精度まで落ちる可能性があります) ですので、FFT前の元データからあらかじめオフセットを引き抜いて計算する必要があります。
お礼
早速のご返信ありがとうございます。 当方の画像を調査しましたが、 バックグラウンドはそんなに大きくないようです。 1000×1000の画像(float)に対し、 バックグラウンドの輝度値 100程度 信号の輝度値 600程度 です。これでFFTすると DC成分 60000程度 AC成分 300程度 になります。うぐぐ
- アウストラロ ピテクス(@ngkdddjkk)
- ベストアンサー率21% (283/1290)
元のデータにオフセットが乗っているとか?
お礼
データにオフセットが乗るって どういうことでしょうか? 重ねて質問でまことに申し訳ありません。
関連するQ&A
- フーリエ変換・逆変換の虚数成分って?
フーリエ変換を用いた論文を読んでいるときに、ある3次元関数f(x,y,z)に対してフーリエ変換・逆変換を行ったとき、逆変換で求められる値は実数成分と虚数成分があり、虚数成分を無視できるという記述を見つけました。 これは対象の関数が実数成分しかもともと持ち合わせていなかったで逆変換しても虚数はゼロである、という解釈でいいのでしょうか? 正直、フーリエ変換・逆変換に関してはほとんど初心者なのですが、気になってしまっています。誰かこの疑問に答えていただけないでしょうか?
- ベストアンサー
- 数学・算数
- matlabでのFFT
matlabで信号処理を学んでいます。現在はFFTを使って信号処理をしているのですが、パワースペクトルを見るとDC成分だけピークがたってしまう状態です。原因としては何が考えるのでしょう。 どなたかご教授願います。
- 締切済み
- その他(プログラミング・開発)
- FFT処理後のデータの変換について
時間-加速度波形を、例えば、EXCELでのFFT処理でもって、 実数+虚数とし、これをIMABSという関数で実数化して (周波数-)パワースペクトル?に変換することができますが、 これを、(周波数-)加速度にさらに変換するにはどうすればよいのでしょうか。 FFTアナライザなどFFTをリアルタイムでかけられる機器はありますが、 FFT処理後、どのような過程(計算)を得て、Y軸はdBそして加速度等に標記されているのでしょうか。 教えていただけないでしょうか。
- 締切済み
- 物理学
- 画像を1次元(X軸)FFTした時の位相特性
画像をFFTで周波数空間に変換するのですが、 2次元ではなく、X軸方向に1次元のみを変換します。 Y軸上のどこか任意の場所を1つです。 出力した1次元の信号、ReとImを得ます。 位相=Im/Reとすると、貼付画像のように 直線位相特性になります。 これって、1次元の画像の場合は位相変化がないと 考えてよろしいでしょうか? というのも、電波などの電気信号処理においては、1次元FFTをすると、 位相変化するので、必ずしもキレイな直線位相特性には ならないのです。 電気信号よりも画像のほうは、素直な信号ということでしょうか~
- ベストアンサー
- 物理学
- 定義とFFTで導出した自己相関が違います
ある離散信号x(t)の自己相関を求める際に 「定義通りにf(τ)=Σx(t)x(t-τ)で求めた結果」と 「xをFFTしてパワースペクトルを求めて,その逆FFTで求めた結果」 が異なるのですが,当たり前のことでしょうか? 自己相関の畳み込みはFFTの掛け算と同じだと理解していたのですが... 御教授のほどお願いします.
- 締切済み
- 数学・算数
- 主成分分析について
主成分分析について 現在、主成分分析の計算方法を勉強をしているのですが、主成分得点の求め方がわかりません。 例をあげて説明させていただくと、 x1 x2 x3 8 9 4 2 5 7 8 5 6 3 5 4 7 4 9 4 3 4 3 6 8 6 8 2 5 4 5 6 7 6 このようなデータを分析するとして、各変数の相関係数(X1X2 X2X3 X1X3)の値はわかりますし、計算方法もわかります。 またここから固有値もわかります。 しかしここからどうやって、主成分得点を求めればよいかわかりません。 どのように計算するのですか?よろしければご回答下さい。
- ベストアンサー
- 数学・算数
- FFTデータ数が少ないと直流成分が大きく変動する?
FFTの振幅スペクトルから実効値算出のために単一正弦波をFFTしてみると、(1)のように計算データ点数が少ない場合、窓関数の位置によって「0Hz直流成分」のFFT結果値が大きく変動してしまいます。((2)(3)は窓関数がどの位置でも問題ありません。) この(1)(1サイクル64点=FFTデータ数64個)のような計算の場合、どのように実効値算出すればよいでしょうか? また、正常な場合でもこれらのサンプル間隔(0、30Hz、60Hz等)の"すき間の部分”は考慮しなくても、全て計算結果に出力されているということでよいでしょうか? 単一正弦波(60Hz) ((最大値5388.9v=実効値3810.5v)、サンプリング3.84KHz=1サイクル64点) (実効値換算式=前半の√(実数^2+虚数^2)の合計/(FFTデータ数/2)/√2) (1)FFTデータ数 64個⇒0Hz(0.00~1905.2)???、60Hz(1905.2),120Hz(952.6)、180Hz(0.0)、 ⇒合計( ??? ) (2)FFTデータ数128個⇒0Hz(0.0), 30Hz(952.6),60Hz(1905.2),90Hz(952.6), 120Hz(0.0)、 ⇒合計(3810.4) ≒実効値 (3)FFTデータ数256個⇒0Hz(0.0),15Hz(0.0),30Hz(0.0)、 45Hz(952.6),60Hz(1905.2),75Hz(952.6), 90Hz(0.0), ⇒合計(3810.4) ≒実効値
- 締切済み
- 電気・電子工学
お礼
「トレンド除去」に目から鱗・・ ありがとうございました!