5. 離散時間フーリエ変換

5.1 離散時間信号をそのままフーリエ変換するとどうなるか

やらない夫
さて,離散時間信号ってのがどんなものだかわかったところで,その周波数スペクトルがどうなるかを考えていこう.

やる夫
要するにフーリエ変換すればいいんだお? 何か難しいのかお?

やらない夫
ん? 難しくないと思うか.たのもしいじゃないか.

やる夫
だって,普通にフーリエ変換の公式に入れればいいんじゃないかお?

やらない夫
連続時間のフーリエ変換の式をそのまま使えばいいって意味か? じゃあ,そうすると何が起きるかって点から議論を始めるか.対象とする離散時間信号を $ f[n]$ と書こう. $ n$ は整数だ.これを無理やり連続時間信号だとみなしてフーリエ変換するわけだ.ということでいいか?

やる夫
そうだお.それだと何か問題があるのかお?

やらない夫
無理やり連続時間信号にしたものを $ f(t)$ と書こう. $ f(t)$$ f[n]$ は,同じ $ f$ という記号だが,基本的には別物だと考えてくれ.で,$ f(t)$$ f[n]$ の関係は

$\displaystyle f(t)$ $\displaystyle = \left\{\begin{array}{ll} f[n], & t = n 0, & \text{otherwise} \end{array}\right.$ (5.1)

だと決めることにする.少し丁寧にグラフに描くとこうなるかな.白抜きの丸は値がないところだ.


\includegraphics[scale=0.5]{fig_dtft/fn_ft.eps}

やる夫
えーと,$ t$ が整数のときは $ f[n]$ と同じ値で,整数以外のときは 0 ってことだお.グラフは気持ち悪いけど,自然な決め方だと思うお.

やらない夫
で,その $ f(t)$ をフーリエ変換するわけだ.フーリエ変換の公式に入れる.

$\displaystyle F(\omega)$ $\displaystyle = \int_{-\infty}^{\infty} f(t) e^{-j\omega t} dt$ (5.2)

やる夫
あれ? 連続時間なのに $ \omega$ は小文字でいいのかお?

やらない夫
ああ,この場合は正規化角周波数で考えるのが正解だ.連続時間にはしたものの,この場合の時間の単位は「秒」ではないからな.「単位時間」は,離散時間だったときの「1 サンプル時刻」に一致する.つまり正規化された時間で考えているわけだ.

やる夫
そっか,連続時間だからといって必ずしも非正規化周波数で考えるわけではないんだお.あくまで,時間が正規化されているかどうかが問題なんだお.

やらない夫
そういうことだ.話を戻そう.さっきの式のフーリエ変換を計算するとどうなるかという話だ.

やる夫
$ f(t)$ $ e^{-j\omega t}$ をかけて積分するんだお.…あれ? でも $ f(t)e^{-j\omega t}$$ t$ が整数のとき以外は 0 だから,積分しても 0 になるんだお….これじゃダメだお.何かどこかで聞いた話だお.

やらない夫
そうだな.もとの離散時間信号 $ f[n]$ がどんなものだったとしても,今のように連続信号とみなしてフーリエ変換する方法では必ず 0 になってしまうので意味がない.別の方法が必要となる.

5.2 離散時間フーリエ変換

やらない夫
というわけで,別の方法を考えよう.ひとつの考え方はこうだ. $ t$ が整数のところ以外で $ f(t)e^{-j\omega t}$ が値を持たないのが問題なので,値を持たせてやる.どんな値を持たせるかというと, $ t = n - 1/2$ $ t = n + 1/2$ の間は,$ t = n$ のときの値,つまり $ f[n] e^{-j\omega n}$ と等しい考えよう.こんな階段状のグラフを積分するわけだ.これなら積分が値を持つことができる.


\includegraphics[scale=0.5]{fig_dtft/fn_e-jwn.eps}

やる夫
でも,こんなガタガタのグラフを積分するのは面倒くさそうだお.

やらない夫
そんなことないぞ.要するにこの短冊それぞれの面積の合計を計算すればいいんだろ.だから総和を使って書き換えることができる.短冊の横幅は 1 なので,


となるわけだ.これを離散時間フーリエ変換 (Discrete-Time Fourier Transform; DTFT) と呼んでいる.

やる夫
あれ,あっさり結論に達したお.

やらない夫
簡単だろ.フーリエ変換の公式 (3.11) と見比べても,その離散時間版として違和感のない形になっているんじゃないかと思う.

やる夫
積分が総和に変わった程度だお.自然だと思うお.

やらない夫
というわけで,これで話を終わってもいいんだが,同じ式を別の見方で導いてみようと思う.

やる夫
えー,もう結論にたどり着いたんだから,これ以上面倒な話はいらないお.

やらない夫
そう言うな.こっちの考え方も重要なので知っておいた方がいい.話を少し巻き戻して,離散時間信号 $ f[n]$ を連続時間化するところに戻ろう.$ t$ が整数のところで $ f[n]$ の値をそのまま持ってきただけでは,面積がないので積分して 0 になってしまってまずかったわけだ.

やる夫
そうだったお.

やらない夫
そこで,各整数時刻の値を,積分しても値が残るようにしておくことにする.どういうことかというと,デルタ関数をかけておくということだ.


\includegraphics[scale=0.5]{fig_dtft/ft_delta.eps}

式で書くならこうなる.

$\displaystyle f(t)$ $\displaystyle = \sum_{n = -\infty}^{\infty} f[n]\delta(t - n)$ (5.4)

やる夫
えーと,ある 1 個の $ n$ について考えると,デルタ関数を時刻 $ n$ だけシフトして,その高さを $ f[n]$ 倍するわけだお.それを無数の $ n$ について足し合わせるから,各整数時刻の値 $ f[n]$ のそれぞれにデルタ関数をかけ合わせたようなものになるんだお.

やらない夫
あとはこれを,フーリエ変換の公式 (3.11) につっこんでやるわけだ.

$\displaystyle F(\omega)$ $\displaystyle = \int_{-\infty}^{\infty} \left\{ \sum_{n = -\infty}^{\infty} f[n]\delta(t - n) \right\} e^{-j\omega t} dt$ (5.5)
  $\displaystyle = \sum_{n = -\infty}^{\infty} f[n] \int_{-\infty}^{\infty} \delta(t - n) e^{-j\omega t} dt$ (5.6)
  $\displaystyle = \sum_{n = -\infty}^{\infty} f[n] e^{-j\omega n}$ (5.7)

やる夫
あっ,式 (5.3) と同じになったお.

やらない夫
というのが,離散時間フーリエ変換の定義のもうひとつの考え方だ.「もうひとつの」と言ったが,よく考えてみると,どちらの考え方も同じことを意味している.被積分関数を短冊状に拡張するにしろ,被積分関数にデルタ関数をかけるにしろ, $ [n - 1/2, n + 1/2]$ の区間での積分,つまり面積が $ f[n] e^{-j\omega n}$ になるような操作を行っている点は同じだ.短冊のひとつひとつを,面積を保ったままギュッと幅のない線に押しつぶした結果,高さが無限大になるイメージだ.

やる夫
うーん,ていうか,その辺も含めてやっぱりどっかで聞いたような話だお.

やらない夫
ああ.どこで聞いた話だったか覚えているか?

やる夫
えーと,確か 周期信号をフーリエ変換したらどうなるかの話をしていたときの一番最後だお.あのときは周波数領域で,フーリエ係数にデルタ関数をかけたものを考えて,逆フーリエ変換が計算できるようにしたんだったお.


\includegraphics[scale=0.5]{fig_dtft/periodic_ft.eps}

やらない夫
そう.今回の話は,あのときの話と本質的に同じだ.ただし,時間領域と周波数領域が逆になっている.フーリエ変換も逆フーリエ変換も計算上はほとんど同じだったからな.時間と周波数を逆に見たときに同じようなことが起きるのは当然のことだ.

やる夫
あのときは時間領域で周期的な関数を考えていて,そういう関数は周波数領域では離散的なスペクトルになったんだったお.今回は逆で,時間領域が離散的なんだお.

やらない夫
お,すごく大事な点に足を踏み込んだな.

やる夫
な,なんだお?

やらない夫
離散的な周波数スペクトルを持つ関数は,時間領域では周期的だったわけだ.じゃあ,離散的な時間信号は,周波数領域ではどうなっていると思う?

やる夫
えっと…,その流れでいうと周期的ってことになるお.

やらない夫
だよな.その周期はどうなる?

やる夫
えっ,どうなるんだお.周期時間関数のスペクトルの場合,周波数成分が $ \Omega_0$ ごとに値を持っているんだとすると,時間領域での周期は $ T_0 =
2\pi / \Omega_0$ だったんだお.今回の話に当てはめると,時間領域で 1 ごとに値を持つような離散時間関数なんだから,周波数領域での周期は… $ 2\pi
/ 1$ つまり,$ 2\pi$ ってことかお?

やらない夫
その通り.つまり,離散時間信号の周波数スペクトルは常に周期的になって,その周期は $ 2\pi$ だ.同じスペクトルの形状が角周波数 $ 2\pi$ ごとに繰り返し現れることになる.


\includegraphics[scale=0.5]{fig_dtft/discrete_ft.eps}

やる夫
$ 2\pi$ ごとに繰り返す…あれ? この話もどこかで聞いた気がするお.

やらない夫
ああ,今回の話は伏線回収ポイントだらけだ.どこで聞いた話だった?

やる夫
えーと,離散時間の三角関数とか複素指数関数は, 角周波数が $ 2\pi$ 増えると元に戻るんだお.そのまま角周波数を増やしていっても,同じ信号が繰り返し現れるだけなんだったお.

やらない夫
そうだったな.周波数スペクトルってのは,いろんな周波数の複素指数関数が,それぞれどういう割合で含まれているかを表しているものだっただろ.ところが,離散時間の複素指数関数は角周波数を $ 2\pi$ 増やすと同じものに戻って,以下繰り返しになるんだった.てことは,周波数成分の含まれている割合を表示してみたときに $ 2\pi$ ごとの繰り返しになるのは当然の帰結だろ.常識的に考えて…

やる夫
ああ,そりゃそうだお.例えば角周波数が $ 0.5\pi$$ 2.5\pi$$ 4.5\pi$ …の複素指数関数ってのは全部同じものなんだお.だからそれらの成分が元の信号に含まれている割合は同じじゃなきゃおかしいお.

5.3 離散時間フーリエ逆変換

やらない夫
じゃあ次は逆変換だ.$ F(\omega)$ から $ f[n]$ に戻す処理だな.まず,逆フーリエ変換の公式 (3.10) でそのまま戻すとどうなると思う?

やる夫
ええと,$ F(\omega)$ はそもそも,$ f[n]$ の各時刻にデルタ関数をかけてからフーリエ変換したものだったお.だから普通に逆フーリエ変換すると,デルタ関数倍された $ f[n]$ に戻るんだお.

やらない夫
正解だ.じゃあ,$ f[n]$ まで戻すためにはどうしたらいいと思う?

やる夫
ん? それもどこかで聞いた気がするお.…ああ,これも フーリエ級数とフーリエ変換の関係について聞いたときだお.あのときは,周期的な時間関数をフーリエ変換すると無限大になってデルタ関数が出てきちゃうから,積分範囲を 1 周期分だけにしたんだったお.今回は周期的な周波数スペクトルを逆フーリエ変換するんだから,やっぱりその積分範囲を 1 周期分だけにすればよいってことかお?

やらない夫
おお,いい推測だ.つまり


こういうことになるな.

やる夫
そう思うお.でも本当にそれでいいのかは自信ないお.

やらない夫
そうだな.特に,今の説明だと「定数倍」の部分がこのままでいいのか,別の係数に変える必要があるのかはよくわからない.念のため,$ f[n]$ を式 (5.3) で $ F(\omega)$ に変換して,それをにさらに式 (5.8) で変換したときにちゃんと $ f[n]$ に戻ることを計算で確かめておこうか.

  $\displaystyle \frac{1}{2\pi}\int_{-\pi}^{\pi} F(\omega) e^{j\omega n} d\omega$ (5.9)
$\displaystyle =$ $\displaystyle \frac{1}{2\pi}\int_{-\pi}^{\pi} \left\{ \sum_{m = -\infty}^{\infty} f[m] e^{-j\omega m} \right\} e^{j\omega n} d\omega$ (5.10)

式 (5.8) の右辺に式 (5.3) を代入しただけだ.

やる夫
んーと,代入される式 (5.8) に $ n$ が出てくるから,代入する方は $ n$ をあらかじめ $ m$ に書き換えているんだお.

やらない夫
計算を続けよう.積分と総和を入れ替える.

$\displaystyle \cdots =$ $\displaystyle \frac{1}{2\pi} \sum_{m = -\infty}^{\infty} f[m] \int_{-\pi}^{\pi} e^{j\omega (n - m)} d\omega$ (5.11)
$\displaystyle =$ $\displaystyle \frac{1}{2\pi} \sum_{m = -\infty}^{\infty} f[m] \cdot 2\pi \delta_{m,n}$ (5.12)
$\displaystyle =$ $\displaystyle f[n]$ (5.13)

というわけで $ f[n]$ に一致した.

やる夫
ちょっと待って欲しいお.着いていけてないお.クロネッカーのデルタがどうして出てくるんだお?

やらない夫
前に同じような計算をしたから,途中は省略してある.式 (2.21) 〜 (2.25) の辺りでやった計算と全く同じなので,ゆっくり計算してみればいい.

やる夫
ふーん,じゃあ後でやっとくお.で,クロネッカーのデルタが出てくるから総和のうち $ m = n$ の項だけが残って,$ f[n]$ に戻るんだお.

やらない夫
というわけで,晴れて式 (5.8) を離散時間フーリエ逆変換 と呼ぶことにする.

まとめよう.

  • 離散時間 $ n$ (整数) で定義された関数 $ f[n]$ (のうち実用上重要なものの多く) に対して,式 (5.3) で計算される $ F(\omega)$$ f[n]$ の離散時間フーリエ変換と呼ぶ.(あるいはこの計算をすること自体を離散時間フーリエ変換と呼ぶ)
  • $ F(\omega)$ から,式 (5.8) によって元の $ f[n]$ が復元できる.この計算を離散時間フーリエ逆変換と呼ぶ.(あるいは「$ f[n]$$ F(\omega)$の離散時間フーリエ逆変換である」という言い方もする)
  • $ \omega$ は正規化角周波数を表す連続変数である.$ F(\omega)$$ f[n]$ に含まれる正規化角周波数 $ \omega$ の振動成分の量 (振幅・位相) を表す.
  • $ F(\omega)$ は周期 $ 2\pi$ で周期的である.通常 $ -\pi < \omega <
\pi$ の範囲のみを考える.
  • $ \vert F(\omega)\vert$ $ \angle F(\omega)$ $ \vert F(\omega)\vert^2$ をそれぞれ,離散時間信号 $ f[n]$ の振幅スペクトル,位相スペクトル,パワースペクトルと呼ぶ.

やる夫
フーリエ変換のときの $ {\cal F}[f(t)] = F(\Omega)$ みたいな表し方はないのかお?

やらない夫
万人に広く受け入れられている書き方はないようだな.以降では,こんな風に書くことと約束しよう.

$\displaystyle f[n]$ $\displaystyle \stackrel{\text{DTFT}}{\rightarrow} F(\omega)$ (5.14)
$\displaystyle F(\omega)$ $\displaystyle \stackrel{{\text{DTFT}}^{-1}}{\rightarrow} f[n]$ (5.15)
$\displaystyle f[n]$ $\displaystyle \leftrightarrow F(\omega)$ (5.16)
$\displaystyle {\text{DTFT}}[f(t)]$ $\displaystyle = F(\omega)$ (5.17)
$\displaystyle {\text{DTFT}^{-1}}[F(\omega)]$ $\displaystyle = f(t)$ (5.18)

やる夫
あれ? $ \leftrightarrow$ がフーリエ変換のときと区別されてないお.

やらない夫
ああ,どっちを表しているかは空気読んで判断しろ.

やる夫
ひどいお.

やらない夫
まあ実際混乱することも多いから注意してくれ.時間領域については,時間変数が実数か整数かで見分けることになる.丸括弧か角括弧で見分ける手もあるな.ただし教科書によっては括弧の種類を区別していない場合もあるので注意だ.

周波数領域では,我々は $ \Omega$ みたいに大文字の変数を使う場合は非正規化周波数,$ \omega$ のような小文字の場合は正規化周波数ということにしているので,まあそれである程度判断できるかな.もっとはっきり区別したいときに,離散時間フーリエ変換 $ F(\omega)$


と書くこともある.

やる夫
な,何なんだお,そのややこしいのは.

やらない夫
どうしてこういう書き方をするかは,後から出てくる z 変換ってのがわからないと説明できない.今のところは,こういう書き方をすることがあるという約束だと思ってくれればいい.ついでに言うと,フーリエ変換 $ F(\Omega)$ の方も


と書くことがある.こっちの書き方はラプラス変換に由来している.

やる夫
混乱してきたお.

やらない夫
まあ,以降では基本的に $ F(\omega)$$ F(\Omega)$ という書き方を使うことにする.一部の議論で,あるいは他の教科書でこういう表示が出てきても驚かないように,そういう記法があることだけ知っておいてくれ.後でラプラス変換や z 変換が出てきたときにまた説明しよう.

swk(at)ic.is.tohoku.ac.jp
2016.01.08