Excelで離散フーリエ変換(DFT)を行う方法

Nです.今回はExcelで離散フーリエ変換を行う方法と図を表示するまでの手順について紹介します.あまりExcelで行う必要性はないのですが一般的なソフトでフーリエ変換を体験できるという利点があります.まずExcelで離散フーリエ変換を行う方法を紹介し, そのあと離散フーリエ変換のイメージを少し説明します.

スポンサーリンク

Excelで離散フーリエ変換を行う方法

1. データ分析が使用できるようにする

デフォルトの設定ではフーリエ変換を含むデータ分析の計算が使用できない設定になっているので”ファイル>オプション>アドイン”と進み”Excelのオプション”ウインドウの下のほうの管理Excelアドインの隣の設定をクリックする.するとアドインが有効化できるウインドウが現れるので分析ツールにチェックをつけOKボタンを押す.

2. 離散フーリエ変換を行う

データタブ内の一番右にデータ分析ボタンが現れるのでおすとデータ分析ウインドウが現れる.そこでフーリエ解析を選択しOKをおすとフーリエ解析ウインドウが現れる.そこでフーリエ変換を行う時系列と出力先を選択しOKを押すことでフーリエ変換が行われる.注意点としてはデータ長はちょうど2のn乗(2, 4, 8, 16, 32…)かつ4096(2^12)以下でないと計算できないみたいです(おそらくFFTのため).

3. 絶対値や規格化をしてプロット

フーリエ変換後の時系列は複素数になっているのでIMABS関数を使って絶対値を計算し横軸を\(\frac{sf \times k}{N} \),(ここでsfはサンプリング周波数)としてプロットするとフーリエ変換した時系列の周波数領域の図が書けます.以下の結果は確認のために\(\sin 2\pi n \)を10Hzでサンプリングした時系列のフーリエ変換を行った結果です.周波数が1のところにピークがたっており正しく計算できていることがわかります.

スポンサーリンク

離散フーリエ変換(DFT)のイメージ

まず離散フーリエ変換(discreat Fourier transform, DFT)は以下の式で表されます.

\[ F[k] = \sum_{n=0}^{N-1}f[n]e^{-i\frac{2\pi k n}{N}} \]

イメージだけで話すとこの式は離散的な信号\(f[n]\)と\(e^{-i\frac{2\pi k n}{N}} \)がどのくらい似ているかを計算しています.(このとき直交性の概念が重要な役割を果たします.)

例えば\(x=\{1,1,0\}\)と\(y=\{1,-1,0\}\)の似ていない2つの時系列で同じような計算を行うと

$$
\begin{align}
F[k] &= \sum_{n=0}^{N-1}x[n]y[n]\\
&= 1 \times 1 + 1 \times (-1) + 0 \times 0\\
&= 1-1+0\\
&= 0
\end{align}
$$

0になりますし,似ているというか全く同じ\(y\)同士で計算すると

$$
\begin{align}
F[k] &= \sum_{n=0}^{N-1}y[n]y[n]\\
&= 1 \times 1 + (-1) \times (-1) + 0 \times 0\\
&= 1+1+0\\
&= 2
\end{align}
$$

で大きな値になります.このような形で同じ時間の値を足していく計算を行うと似ていれば大きな値になりますし,全く関係なければ0に近い値になることがわかります.

離散フーリエ変換では離散時系列 \(f[n]\)と\(e^{-i\frac{2\pi k n}{N}} \) の類似度を調べていますが,オイラーの公式から

$$
\begin{align}
e^{-i\frac{2\pi k n}{N}} &= \cos( \frac{2\pi k}{N}n ) – i \sin( \frac{2\pi k}{N}n )
\end{align}
$$

となるので\( \frac{2\pi k}{N} \)の周波数を持つ\(\sin\)や\(\cos\)といった三角関数との類似度を測っていることになります. そのため\(f[n]\)がどのような周波数の三角関数と似ているかを調べることができ,周波数ごとの類似度を時系列 \(f[n]\) の周波数成分として表示することができるわけです.

コメント

タイトルとURLをコピーしました