離散フーリエ変換

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

Fourier[{u1,u2,...,un}]離散フーリエ変換
InverseFourier[{v1,v2,...,vn}]逆離散フーリエ変換

離散フーリエ変換と逆変換

矩形波のデータを入力する.
In[1]:=
Click for copyable input
Out[1]=
データを離散フーリエ変換する.結果には複素数が入る.
In[2]:=
Click for copyable input
Out[2]=
逆離散フーリエ変換を行う.
In[3]:=
Click for copyable input
Out[3]=
Fourierはデータの総数が2のベキ乗であるか否かにかかわらず機能する.
In[4]:=
Click for copyable input
Out[4]=
要素数が200で,ランダムノイズを加えた周期信号データを生成する.
In[5]:=
Click for copyable input
このデータを,そのままプロットするとランダムなように見える.
In[6]:=
Click for copyable input
Out[6]=
しかし離散フーリエ変換を施すと,の位置と,それに対称なの位置にピークが示される.これはもとの信号の周波数成分がの近くにあることを反映している.
In[7]:=
Click for copyable input
Out[7]=

Mathematica では長さ のリスト の離散フーリエ変換 のデフォルトの定義は である.ゼロ周波数項は得られたリストの最初の位置にあることに注意する.

長さ のリスト の逆離散フーリエ変換 のデフォルトの定義は である.

科学技術分野では離散フーリエ変換の定義は分野によってさまざまな規約がある.オプションFourierParametersを使用して必要な規約を選択することができる.

一般的な規約
設定
離散フーリエ変換
逆離散フーリエ変換
Mathematica デフォルト{0,1}
データ解析{-1,1}
信号処理{1,-1}
一般の場合{a,b}

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

Fourier[{{u11,u12,...},{u21,u22,...},...}]
二次元離散フーリエ変換

二次元離散フーリエ変換

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

実数データに対する通常の離散フーリエ変換に関する問題のひとつに,結果が複素数値になるというものがある.実数のフーリエ変換で実数の結果を出す種類のものもある.Mathematica には離散余弦変換と離散正弦変換を計算するためのコマンドがある.

FourierDCT[list]実数のリストのフーリエ離散余弦変換
FourierDST[list]実数のリストのフーリエ離散正弦変換

実数の離散フーリエ変換

方形波に対応するデータである.
In[8]:=
Click for copyable input
Out[8]=
次はデータのフーリエ離散余弦変換である.
In[9]:=
Click for copyable input
Out[9]=
以下はデータのフーリエ離散正弦変換である.
In[10]:=
Click for copyable input
Out[10]=

通常使用されるフーリエ離散正弦変換とフーリエ離散余弦変換にはそれぞれ4種類がある.それらは,タイプIIの離散余弦変換をDCTIIというように,数字やローマ数字で表される.

FourierDCT[list,m]タイプ m のフーリエ離散余弦変換
FourierDST[list,m]タイプ m のフーリエ離散正弦変換

異なるタイプの実数の離散フーリエ変換

FourierDCTFourierDSTはどちらもデフォルトはタイプ2である.

Mathematica には関数と関数は必要ない.それはFourierDCTFourierDSTが適切なタイプで使用されると,それ自身の逆関数となるからである.タイプ1,2,3,4の逆変換はそれぞれタイプ1,3,2,4となる.

タイプ3の変換がタイプ2の変換の逆であることを検証する.
In[11]:=
Click for copyable input
Out[11]=

実数の離散フーリエ変換は,データや画像の圧縮に使用するのに便利である.

辺のようなデータである.
In[12]:=
Click for copyable input
Out[12]=
離散余弦変換は,最初の数モードに情報のほとんどがある.
In[13]:=
Click for copyable input
Out[13]=
最初の20モード(最初のデータサイズの10分の1)だけからフロントを再構築する.振動は切取りの結果であり,画像処理アプリケーションでも現れることが分かっている.
In[14]:=
Click for copyable input
Out[14]=
New to Mathematica? Find your learning path »
Have a question? Ask support »