|
3.8.4 フーリエ変換
データ解析でよく使われる標準的な解析手法に,フーリエ(Fourier)変換,またはスペクトル解析がある.フーリエ変換の基本は,特定の周波数点や帯域においてデータがどのような強度の信号成分を持つかを調べることにある.

フーリエ変換と逆変換
矩形波のデータを入力する.
In[1]:= {-1, -1, -1, -1, 1, 1, 1, 1}
Out[1]= 
データをフーリエ変換する.結果には複素数が入る.
In[2]:= Fourier[%]
Out[2]= 
逆フーリエ変換を行う.
In[3]:= InverseFourier[%]
Out[3]= 
Fourierはデータの総数が2のベキ乗であるか否かにかかわらず機能する.
In[4]:= Fourier[{1, -1, 1}]
Out[4]= 
データ数が200で,ランダムノイズを加えた周期信号データを生成する.
In[5]:= data = Table[ N[Sin[30 2 Pi n/200] + (Random[ ] - 1/2)], {n, 200} ] ;
このデータを,そのままプロットするとランダムなように見える.
In[6]:= ListPlot[ data, PlotJoined -> True ]

Out[6]= 
しかしフーリエ変換を施すと, の位置と,それに対称な の位置にピークが示される.これはもとの信号の周波数成分が の近くにあることを反映している.
In[7]:= ListPlot[ Abs[Fourier[data]], PlotJoined -> True, PlotRange -> All ]

Out[7]= 
Mathematicaでは長さ のリスト の離散フーリエ変換 のデフォルトの定義は である.ゼロ周波数項は得られたリストの最初の位置にあることに注意する.
長さ のリスト の逆離散フーリエ変換 のデフォルトの定義は である.
科学技術分野では離散フーリエ変換の定義は分野によってさまざまな規約がある.MathematicaのオプションFourierParametersを使用して必要な規約を選択することができる.

さまざまな規約でのFourierParametersの典型的な設定

2次元フーリエ変換
Mathematicaでは,任意次元のデータのフーリエ変換が可能である. 次元のデータは,深さが レベルでネストされたリストで指定する.2次元フーリエ変換は画像処理でよく使われる.
|