第5章
離散時間フーリエ変換
この章のねらい
- 離散時間信号をデルタ列とみなして DTFT の式 X(e^{jω})=Σx[n]e^{-jωn} を導ける
- スペクトルが必ず 2π 周期になる理由を n が整数であることから説明できる
- 逆変換が [-π, π] の1周期分の積分で済む理由を理解する
5.1 離散時間信号をフーリエ変換する
第4章で、信号がコンピュータの中では っていう数列になるって分かったお。で、第1〜3章では波を周波数に分解する道具(フーリエ変換)を手に入れたお。次にやることは…合体だお? 数列をフーリエ変換するんだお。
その通りだ。話の流れが読めてきたな。離散時間信号 のスペクトルを求めたい。だがここで素直な疑問がある。フーリエ変換の式 (3.1) は
と、 で積分していた。 はとびとびの数列で、積分する連続関数が無い。どうする?
うーん…。積分は「連続的に足す」ことだったお。数列なら、ふつうに「とびとびを足す」、つまり和でいいんじゃないかお?
直感は正しい。だが、なぜ和でいいのかをきちんと納得しておきたい。そのために、離散時間信号を一度だけ連続信号の言葉に翻訳してみる。 は時刻 の値だったな。これを「時刻 に重み のデルタ関数を立てたもの」だと考える。
デルタ関数、第3章で出てきた「幅ゼロ・面積1のトゲ」だお。数列の各値を、その重さのトゲに化けさせたわけかお。
そうだ。トゲの列なら連続時間の関数として扱えるから、式 (3.1) にそのまま放り込める。デルタ関数の「つまみ出し性質」(3.4) が効いて、
積分とデルタ関数が握手して、きれいに和が残った。やる夫の直感どおりだろ。
おお、ちゃんと和になったお。デルタ関数って、連続と離散の橋渡し役なんだお。
いい言い方だ。式 (5.2) の指数の肩には、まだ連続時間角周波数 (ここでは式 (3.1) の連続側の意味)と が残っている。だがここで第4章の主役を思い出せ。 はいつもセットで現れて、正規化角周波数になるんだったな。
、「1サンプルあたりに進む位相」だお。…あ、肩の が、正規化角周波数を使えば にまとまるお!
その通り。記号を整理する。これ以降、肩に乗っているのは正規化角周波数(小文字 、単位 rad/サンプル)だと約束する。すると は表から消えて、純粋に数列 だけで書ける式になる。
5.2 離散時間フーリエ変換
整理した式に名前を付ける。これが離散時間フーリエ変換(Discrete-Time Fourier Transform、略して DTFT)だ。
数列 に、調べたい周波数 の複素正弦波 を掛けて、全サンプルにわたって足し合わせる。フーリエ変換 (3.1) の積分が和に変わっただけで、心は完全に同じだ。
待つお。左辺の書き方が変だお。 じゃなくて ってなってるお。なんでわざわざ を変数みたいに書くんだお? の関数なんだから でよくないかお?
鋭い。これはわざとだ。式 (5.3) の右辺をよく見ろ。 は必ず 、つまり という形でしか出てこない。スペクトルは「 そのもの」より「 という単位円上の点」の関数だと見るほうが本質に近い。 と置けば右辺は で、これは後の章でやる 変換そのものだ。 という書き方は、その伏線を兼ねている。
なるほど…。 の表記には「これは単位円上の話で、いずれ円の外も考えるぞ」って予告が込められてるのかお。手が込んでるお。
さて、この式には離散時間ならではの大事な性質が1つ宿っている。式 (5.3) の を に置き換えてみろ。
やってみるお。 だお。で、 は整数だから は…ちょうど何周か回って だお! また消えたお!
そうだ。だから
DTFT は必ず 周期になる。これは特別な信号だけの話ではなく、 が整数でありさえすればどんな でも成り立つ、DTFT の宿命だ。
第4章の「 と は同じ信号」(4.5) と同じ理屈だお。時間が離散だと周波数が で繰り返す、と。
まさにそれだ。そして第3章の最後の予告 (3.8) を覚えているか。「時間側が周期的だと、周波数側は離散的になる」。今その鏡写しが起きている。
- 時間が連続・非周期(普通の信号)→ 周波数も連続・非周期(フーリエ変換)
- 時間が離散(数列)→ 周波数が周期的(DTFT、周期 )
「離散」と「周期的」が時間軸と周波数軸の間で入れ替わって対応する。この双対は、この先のサンプリング定理(第10章)でも DFT(次章)でも、形を変えて何度も顔を出す。下のデモで、いくつかの信号の振幅スペクトル を見てみろ。
ほんとだお。インパルス を選ぶとスペクトルが真っ平ら(全周波数が等しく )。これ、第3章の「デルタ ⇄ 定数1」(3.5) の離散版だお。で、どの信号でも緑の山が ごとにコピーされて並んでるお。
よく観察した。矩形パルスを選んで長さ を変えると、 の比でできた山がうねる。指数減衰 なら で一番高くてなだらかに落ちる。中身は信号ごとに違うが、 周期だけは全員に共通だ。だから DTFT を見るときは、無限に続く繰り返しのうち の1周期だけ見れば十分なんだ。
5.3 離散時間フーリエ逆変換
順方向 (5.3) で数列からスペクトルを作った。逆に、スペクトル から元の数列 を取り戻す式が離散時間フーリエ逆変換だ。
第3章の逆変換 (3.2) と似てるけど、違いが2つあるお。積分範囲が全実数じゃなくて から までだお。それと、こっちは左辺が で和じゃなくて積分なのが、なんか逆な感じだお。
両方とも本質を突いている。1つ目から。なぜ積分が の1周期で済むか。 は 周期で、その外は同じ形の繰り返しだったな。同じ情報を何周分も積分しても無駄なだけだ。元の数列を復元するのに必要な情報は1周期分にすべて入っているから、1周期 を積分すれば足りる。
なるほど。 周期だから、わざわざ全部見なくても1周ぶんで用が足りるんだお。第3章では時間が非周期だったから全時間を積分するしかなかったけど、こっちは周期的になったぶん範囲が有限で済む、と。
その対比のつかみ方がいい。2つ目の「順が和・逆が積分」というねじれも、まさに今の双対の表れだ。順方向は離散な時間 で和を取り、逆方向は連続な周波数 で積分する。時間と周波数で「離散↔連続」が入れ替わっているから、足し方も「和↔積分」で入れ替わる。
確かめたいお。式 (5.5) で本当に元に戻るのかお? なんとなく信じきれないお。
簡単な場合で確かめてみよう。( だけ 、あとは )なら、DTFT は (5.3) より 。これを逆変換 (5.5) に入れると
なら被積分関数は で、積分は 、 を掛けて 。 なら を で積分すると、 が端でぴったり打ち消し合って 。ちゃんと に戻った。 という係数は、この帳尻を合わせるために付いている。
おお、 だけ生き残って、ほかは消えるお。係数の にもちゃんと役目があったんだお。納得したお。
ここまでで「数列のフーリエ変換」は完成したお。でも1つ気になるお。 の は連続変数だお。コンピュータに、連続的な 全部の値なんて持てないんじゃないかお? 第4章で「連続信号は持てない」って言ってたのと同じことが、周波数側で起きてる気がするお。
…とてもいいところに気づいた。それがまさに次章の出発点だ。DTFT は理論としては完璧だが、 が連続なせいでそのままではコンピュータに乗らない。時間を離散化したのと同じ手口を、今度は周波数に対してやる。そうして生まれるのが離散フーリエ変換(DFT)、実際の計算で使う本命だ。
- 離散時間信号 をデルタ列 とみなしてフーリエ変換すると、積分が和になり DTFT が得られる
- 表記 は「単位円 上の値」を意味し、 変換への伏線でもある
- が整数なので 。DTFT は必ず 周期
- 第3章の「時間が周期的⇔周波数が離散」の鏡写し=「時間が離散⇔周波数が周期的」が成り立つ
- 逆変換は 。 周期なので積分は1周期分で足りる
- 残る問題: が連続なので DTFT はそのままではコンピュータに乗らない(次章 DFT へ)