2012年12月20日木曜日

FFT関連①

Matlabで周波数解析をやりたいときがたまにある.y=fft(x)って書くんだけど,書いた後にいつもいくつかの疑問を持つ.

①出力されるyは複素数.絶対値をとったのが周波数ごとの強さなのは知ってるけど,そもそもなんでx実数なのに複素数なんだっけ?
②引数ってxだけでいいの?
③出力yの刻みってなんだっけ?

毎回調べて解決はするんだけど,僕は記憶力が残念なのですぐ忘れてしまうのです.
で,調べるのにいろんなサイト回るのが大変なのでここに答えをまとめておきます.

①フーリエ変換で得られる複素数の意味

\begin{equation}
F(ω) = \int_{-∞}^{∞} f(t)\exp(-j\omega t)dt
\end{equation}

定義式.
ある信号を周期無限大とみなしてフーリエ級数展開したときのフーリエ級数として導出される.ということで,周期$T_0$の信号$f(t)$複素フーリエ級数展開が次式.


\begin{equation}
f(t) = \sum_{k=-∞}^{∞}F_k \exp({jkω_0t}) \ \ \ \ \ ω_0 = 2\pi / T_0
\end{equation}

$F_k$がフーリエ変換に対応する.定義式はどうせ覚えられない書かないけど,共役かければ対応する周波数以外全部消えるから導出できます.

こっから大事.

フーリエ変換後に得られる信号の,複素数としての解釈.式(2)より,$F_k$の振幅と位相が各周波数成分の振幅と位相に対応していることが分かる.ここで,位相は初期位相$(t=0)$のこと.

フーリエ変換で得られる複素数信号の振幅,位相は,変換前の信号に含まれる各周波数成分の振幅・位相に対応する

正負の周波数成分の意味

負の周波数の解釈.
式(2)を見ると,負の周波数成分が存在する.これは,上図の時計回り成分を示している訳だが,フーリエ級数展開では $F_k \exp({jkω_0t})$の成分と$F_{-k} \exp({-jkω_0t})$の和を取ると虚部が打ち消しあうような関係になっている.もちろんy(t)が実数ならだけど.

負の周波数は,虚部を打ち消すために存在していると考えることができる

これを踏まえると,$F_k$の意味,複素数としてのフーリエ変換の特性が見えてくる.
$F_k \exp({jkω_0t})$の成分と$F_{-k} \exp({-jkω_0t})$が打ち消しあうための条件を考える.
一つは,絶対値が等しいこと.次に,逆位相であること.これらの関係は,当然フーリエ変換でも満たされる.よって,振幅スペクトルは偶関数に,位相スペクトルは奇関数になる.

以上.②③は次回.

参考文献
http://www.ic.is.tohoku.ac.jp/~swk/lecture/yaruodsp/fs_comp.html




0 件のコメント:

コメントを投稿