フーリエ変換 メモ3 -フーリエ変換で得られるデータの意味とスペクトルを用いた逆変換-

【5】逆フーリエ変換について
まずは逆フーリエ変換の定義式です

f:id:akikanR:20170605205109p:plain

これを離散フーリエ変換の時と同様に展開していきます
※F (t) を前回離散フーリエ変換した実数部と虚数部が足し合わせたものだとして実数部をR[t] 虚数部をI[t]とします

f:id:akikanR:20170605205120p:plain


となります
ここで注意して欲しいのが「現実の音には虚数は存在しない」ということです
つまり虚数は無視します
すると上記の逆離散フーリエ変換の展開の式は

f:id:akikanR:20170605205136p:plain


ということになります

虚数が扱えないプログラミング言語の場合はこの式を用いていくことになります


【6】フーリエ変換で得られるデータ
フーリエ変換では様々なデータを得られると思うのですが、ここでは特に振幅スペクトルと位相スペクトルについて求め方を記述します

その前に離散フーリエ変換の定義式を思い出してください
Σの中身はcosとisinで記述されていましたね?
ここでcosとsinの幾何的な意味を見てみましょう

f:id:akikanR:20170605205224p:plain


k*cosθは原点から伸びるθ度に傾いた長さkの直線と半径kの円周の交点のX座標を示します
sinθの場合はcosθと同じ点のY座標を示しています


では求め方を説明します
フーリエ変換で得られた値は何かというとF(t)でした
もう少し厳密に言うと実数(=R [t]) と 虚数(=I [t])の和であるF (t) でしたね
この時のR[t] がcosθ、 I[t]がisinθに対応しており、θが位相スペクトル、半径が振幅スペクトルです
あとは単純な計算ですね
上の図の円周と直線kの交点から垂線をおろすと直角三角形が得られます
つまり振幅スペクトルは
三平方の定理より
直角三角形の斜辺の二乗 = 高さの二乗 + 底辺の二乗
よって
周波数 t の振幅スペクトル = √(R[t]の二乗 + I[t]の二乗)

次は位相スペクトルです
手始めにtanθを求め、その後アークtanで角度を求めます
周波数 t の位相スペクトル = arctan ( I[t] / R[t] )

以上で振幅スペクトルと位相スペクトルは求められました

以下これらスペクトルが示す意味です
興味の無い人は見なくても問題ありません

振幅スペクトルと位相スペクトルとはなんなのかを説明しましょう
先ほどの図に時間変化を加えてみます

f:id:akikanR:20170605205249p:plain


歪な図ですみません
この図のθが位相スペクトル、時間経過を加える前の図の円の半径が振幅スペクトルになります
位相スペクトルは周波数(時間経過を加えた時の緑の線)の位相差
振幅スペクトルは周波数(時間経過を加えた時の緑の線)の振幅を表しています
名前通りですね
まとめるとフーリエ変換で得られた各周波数に関する情報が位相スペクトルと振幅スペクトルなのです
また、含まれる周波数に関する情報があるのですから当然足し合わせて元のデータを得ることもできます

 

【7】スペクトルを用いた逆変換
このスペクトルを用いて
周波数 t の振幅スペクトル * e^周波数 t の位相スペクトル という式を立てます
これは F( t )を極座標で表現したものです
つまりは
F( t ) = 周波数 t の振幅スペクトル * e^周波数 t の位相スペクトル
という式が成り立ちます
これを逆離散フーリエ変換の式に当てはめれば無事元のデータになるというわけです
※展開するときに i がついた項は無視することを忘れないでください