Open3

離散フーリエ変換を心の底からわかりたい

nrnrknrnrk

前提

かなり個人メモの位置付けが強いので、省略したりすることも多くなります。自信がついたり、ニーズを感じれば整理して記事にします。

出発点

離散フーリエ変換を通常の(連続)フーリエ変換の離散化バージョンというなんとなくの理解はあった。ただし、関数空間などの数学的な位置付けはわかっていないし、それどころか久々にやると計算もままならない。

個人的なゴール

  • 離散フーリエ変換を三角関数を習ったことのある人に熱量を持って30分くらい語れるようになる

構想

  1. まずは具体的な計算や大枠を捉える
  2. その次に可視化などを踏まえて直観的な理解を目指す
  3. ある程度把握してきたら、数学的な部分もできるだけ整理したい
Hidden comment
nrnrknrnrk

用語

(連続)フーリエ変換をFT(Fourier Transform)とし、離散フーリエ変換をDFT(Discrete Fourier Transform)と呼ぶことにする。

MATHEMATICS OF THE DISCRETE FOURIER TRANSFORM (DFT) WITH AUDIO APPLICATIONS

MATHEMATICS OF THE DISCRETE FOURIER TRANSFORM (DFT) WITH AUDIO APPLICATIONS から大枠を把握したい

定義

厳密ではないが、FTを出発点としてDFTの定義を与える。

FT は以下のように定義されている。 x(t) は連続時間で定義された信号(関数)で X(\omega) はそのスペクトル。周波数を角度に換算した、\omegaは角周波数。

X(\omega) = \int_{-\infty}^{\infty} x(t) e^{-i \omega t} dt

これを離散化した以下がDFTと定義する。

X(\omega_k) \equiv \Sigma_{n=0}^{N-1} x(t_n) e^{-i \omega_k t_n} \quad (k = 0, 1, 2, \cdots, N - 1)

大事なポイントは、積分 -> 総和という変換が起きていること。これはリーマン積分 の考えからすると違和感はない。

t\omega の両方 が離散化されているのは注意しておきたい。(多分当たり前なのだけど)
変数の整理を以下にしておく。

T をサンプリングの時間、 N をサンプル数とする。

変数 説明
T サンプリングの間隔の時間 ( \frac{1}{T} が周波数)
N サンプル数
\Omega = \frac{2 \pi}{N T} 角周波数の最小単位[1]
t_n n 番目のサンプル時間 = nT
\omega_k k 番目のサンプル周波数 = k \Omega

nk で使い分けていることからもわかるように、サンプル時間とサンプル周波数は個々に対応関係にはない。単に、離散化したときの時間の各点と離散化したときの周波数の各点を表す座標くらいの認識で考えると誤解がなさそう。

脚注
  1. 書籍では radian-frequency sampling interval とあり、直訳するとサンプリング間隔の角周波数ということだが、意味がわかりやすいように表現を変えている。離散フーリエ変換では、サンプリング間隔に対応するこの角周波数が最小の角周波数単位で、\omega_N = \frac{2 \pi}{N T} が最大の角周波数として扱うと考えることができそう。最小の方は自然だし、最大の方も"サンプリングしている範囲以上の周期性なんてわかりっこない"と思うと自然に感じられる。 ↩︎