• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:FFTのDC成分って、なんで大きくなるんですか?)

なぜFFTのDC成分は大きくなるのか?

このQ&Aのポイント
  • FFTをすると、DC成分(X=0)の値がとても大きくなります。1次元でも2次元でも同様です。エクセルで32行の1次元FFTをすると、DC成分だけ数万という大きな値が現れ、AC成分は数十程度の値になります。この現象の理由について知りたいです。
  • 画像の2次元FFTをすると、X軸とY軸がとても白くなります。これは、DC成分が大きい影響です。しかし、この現象が問題となるのは、別の信号と相関を取る場合です。DC成分が大きすぎると、AC成分との相関係数が100%になってしまい、微妙に違うはずの信号でも相関が高くなってしまいます。
  • この問題を解決するには、DC成分の大きさによって相関係数を調整する工夫が必要です。しかし、なぜFFTをするとDC成分が大きくなるのか、数学的な理由は分かっていません。DC成分の大きさを抑える方法や、他の信号との相関計算における問題解決方法について知りたいです。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.5

画像というのはそういうものです。たとえ正負両値のある(つまりsignedの)画像であっても、たいてい低周波に集中し、そしてDCが極大。 理由とか言ったって、画像というか被写体自身の周波数成分がそうなっているものですからしかたありません。むろんDCの無い画像を作ることも出来ますが。 DCに興味が無い場合は、 「いまのところ 除去して対応してるんです」 ということですが、 それでも依然としてDCが巨大ならば、除去できていないと言うことです。 とにかく総和(あるいは平均)がぴったりゼロになるようにバイアス加算してください。 よくやることです。DCの他に一次関数で差し引いたりいろいろやります。専門用語で「トレンド補正」とか「トレンド除去」とか言います。関心があったら検索するなどで調べてみてください。

NEW2010
質問者

お礼

「トレンド除去」に目から鱗・・ ありがとうございました!

その他の回答 (4)

  • tadys
  • ベストアンサー率40% (856/2135)
回答No.4

画像データには負の値は無いんです。 真っ黒より暗い色はありませんから。 ですから、全データの平均値は必ずゼロ以上の値になります。 全データの平均値=DC成分です。 明るい画像であればDC成分は大きくなります。 電気信号の場合はDC成分を含まない信号が多くあります。 この場合には、FFTの結果にDC成分は現れません。

NEW2010
質問者

お礼

例として、エクセルで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は教えてくれているのでしょうか? 重ねて質問で誠に申し訳ありません。

回答No.3

No.2です。 信号データ(FFTする前のデータ)の変化に対して、バックグラウンドのオフセットの大きさが大きければ、FFTしたあとのデータでDCが大きくなりすぎるのは当たり前かと思われます。(そのせいで計算精度まで落ちる可能性があります) ですので、FFT前の元データからあらかじめオフセットを引き抜いて計算する必要があります。

NEW2010
質問者

お礼

早速のご返信ありがとうございます。 当方の画像を調査しましたが、 バックグラウンドはそんなに大きくないようです。 1000×1000の画像(float)に対し、 バックグラウンドの輝度値 100程度 信号の輝度値 600程度 です。これでFFTすると DC成分 60000程度 AC成分 300程度 になります。うぐぐ

回答No.2

元のデータにオフセットが乗っているとか?

NEW2010
質問者

お礼

データにオフセットが乗るって どういうことでしょうか? 重ねて質問でまことに申し訳ありません。

  • joqr
  • ベストアンサー率18% (742/4026)
回答No.1

DC成分を除去すればいいじゃん

NEW2010
質問者

お礼

そうなんです~ いまのところ 除去して対応してるんです~

関連するQ&A