フーリエ変換のイメージ

フーリエ級数はあらゆる信号形状を三角関数の合成で近似できることを表しています.
本プログラムでは, 離散 フーリエ変換 により周波数成分(スペクトル=振幅&位相)を求め, それらの成分の
合成(フーリエ級数)を実行します. 数式には触れず, フーリエ変換そのものを体感しましょう.

原信の選択

定数 頂点
2頂点 3頂点
台形 傾斜
ランダム

離散フーリエ変換の実行


DC(0th)
1st 2nd
3rd 4th

スペクトルの合成

矩形
0 ⇒

解説

本プログラムでは8点の離散フーリエ変換を実行します. ここで暗黙の前提があります.
本プログラムの原信では\(y\left(0\right)\)〜\(y\left(7\right)\)のデータ系列ですが, \(y\left(0\right)\)=\(y\left(8\right)\) として始点に戻る周期波形とみなします.
この点, 数値計算ライブラリの多くのユーザーが認知できてないように思います. なお, 整数の離散空間では始点と
終点の両側に0.5の広がりがあると考えることもできます(当サイト「 範囲の写像」参照).
次に離散フーリエ変換で得られるスペクトルは横軸が周波数, 縦軸がスペクトル強度(複素数)です. 本プログラム
ではスペクトル(振幅&位相)を変換前の信号成分として表示しています. 周波数は低次からDC(直流成分),
基本周波数, 基本周波数の2倍, 3倍...と高周波に向かいます. 8点のデータ系列では4倍が最大の周波数となります.
これは1周期分の正弦波あるいは余弦波を表現できる最小サンプル点数が2点であるためです. 一般に, スペクトル
は低次ほど振幅が大きく高次になるほど振幅は小さくなります. 本プログラムからも, 全体的な包絡は低次に集中
しており, 高次成分は微細な構造を与えるのみ, であることがみてとれます. 他に, 不連続点ではオーバーシュート
(ギブズの現象)が確認できます. データ系列の両端では不連続となることもしばしばで, そのような場面では窓関数
を乗じて緩和する手法があります.
本プログラムでは, 三角関数の代わりに矩形波でおきかえて合成する様子も確認できます. 「頂点」あるいは
「傾斜」では合成のイメージが明確になるかと思います. 矩形の直交変換としては ウォルシュ・アダマール変換
があります.
さて, 本プログラムをフーリエ級数で表すと(1)です.

\(\large{y\left(t\right) = DC + \displaystyle \sum_{i=1}^{n/2} \left(u_i \cos \left(2\pi\frac{it}{n}\right) + v_i \sin \left(2\pi\frac{it}{n}\right) \right)} \qquad \left(n=8\right) \qquad (1)\)
\(DC\): 全データの平均値(直流成分)
\(u_i\): スペクトルの実数成分 \(v_i\): スペクトルの虚数成分

これは一般に表記される数式ですが, 三角関数の合成公式より変形できて(2)とできます.

\(\large{y\left(t\right) = DC + \displaystyle \sum_{i=1}^{n/2} A_i \sin \left(2\pi\frac{it}{n} + \varphi_i \right)} \qquad (2)\)
\(A_i=\sqrt{u_i^2 + v_i^2}\): パワースペクトル \(\varphi_i = \arctan {\left(v_i, u_i\right)}\): 位相スペクトル

筆者としては, こちらの表記の方が振幅と位相が明確で, 解りやすいのではないかと思います.
直交基底としてはフーリエ変換, ウォルシュ・アダマール変換 のような定式化された変換のほかに基底を生成する
こともできます. 主成分分析(無相関)による直交系の生成に関しては当サイト「 白色化」をご覧ください. フーリエ
変換では既述の通り低周波の振幅が大きくなる傾向があり, これは主成分が低次に集中するということでもあります.