アプリ版:「スタンプのみでお礼する」機能のリリースについて

2次元に限らず、1次元でも、
FFTをするとDC成分(X=0)の値がとっても大きくなります。
エクセルで32行の1次元FFTをすると
DC成分だけ数万で、AC成分が実数も虚数も数十程度の値が出るんですよ~
なぜ?

ちょっとした画像の2次元FFTしたものを添付します。
X軸とY軸がとっても白いのは、
DC成分がでかい影響なんです。

どうしてこれが問題かと言うと、別の信号と相関を取るとき、
DC成分だけバカでかいと、それに引っ張られてしまい、
AC成分は微妙に違うのに相関係数=100%!!とか
出力しちゃってどうしよう!ってなる訳です。
工夫のしどころ、とも考えられますが、理由が知りたいのです。

数学的に分かっていることでしょうか~?

「FFTのDC成分って、なんで大きくなるん」の質問画像

A 回答 (5件)

画像というのはそういうものです。

たとえ正負両値のある(つまりsignedの)画像であっても、たいてい低周波に集中し、そしてDCが極大。
理由とか言ったって、画像というか被写体自身の周波数成分がそうなっているものですからしかたありません。むろんDCの無い画像を作ることも出来ますが。

DCに興味が無い場合は、
「いまのところ
除去して対応してるんです」
ということですが、
それでも依然としてDCが巨大ならば、除去できていないと言うことです。
とにかく総和(あるいは平均)がぴったりゼロになるようにバイアス加算してください。
よくやることです。DCの他に一次関数で差し引いたりいろいろやります。専門用語で「トレンド補正」とか「トレンド除去」とか言います。関心があったら検索するなどで調べてみてください。
    • good
    • 0
この回答へのお礼

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

お礼日時:2012/08/08 13:21

画像データには負の値は無いんです。


真っ黒より暗い色はありませんから。
ですから、全データの平均値は必ずゼロ以上の値になります。
全データの平均値=DC成分です。
明るい画像であればDC成分は大きくなります。

電気信号の場合はDC成分を含まない信号が多くあります。
この場合には、FFTの結果にDC成分は現れません。
    • good
    • 0
この回答へのお礼

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

お礼日時:2012/08/08 09:28

No.2です。



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

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

お礼日時:2012/08/08 09:20

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

    • good
    • 0
この回答へのお礼

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

お礼日時:2012/08/07 23:03

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

    • good
    • 0
この回答へのお礼

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

お礼日時:2012/08/07 23:02

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています