第3章

フーリエ変換

この章のねらい

  • 「周期→∞」の極限でフーリエ変換が現れる筋道を追う
  • フーリエ変換・逆変換の式を読めるようになる
  • 矩形 ⇄ sinc、デルタ ⇄ 複素指数という基本変換対を覚える

3.1 周期をどんどん長くする

やる夫

フーリエ級数、だいぶ仲良くなれた気がするお。でも不満があるお。周期的な信号にしか使えないんだお? 実験で録った信号なんて、同じ形が繰り返したりしないお。

やらない夫

もっともな不満だ。そこで発想の転換をする。周期的でない信号は「周期が無限に長い信号」だとみなせないか?

やる夫

周期が無限…。一生繰り返さないんだから、まあ、そう言えなくもないお。屁理屈っぽいけど。

やらない夫

屁理屈が数学になる瞬間を見せてやる。幅1の矩形パルスを周期 T0T_0 で繰り返した信号を考えて、T0T_0 をどんどん伸ばしたときに線スペクトルがどうなるか。下のデモで T0T_0 のスライダーを右に動かしてみろ。

PERIOD → CONTINUUM INTERACTIVE
再生で周期 T0 が自動で伸びる(操作・スライダー手動も可)→ 線スペクトルの間隔 ω0=2π/T0 が詰まって棒が密になる一方、棒の先が乗る包絡線(破線)は変わらない(観察)→ T0→∞ の極限で棒は連続曲線に溶け、それがフーリエ変換そのもの(意味)。
やる夫

おお…棒がどんどん密になってくお。それなのに、棒の先っぽが乗っかってる「形」(破線)はずっと同じだお。

やらない夫

そこが急所だ。整理すると

  • 線スペクトルの間隔は ω0=2π/T0\omega_0 = 2\pi/T_0周期を伸ばすほど間隔が詰まる
  • 個々の棒の高さ ckc_k 自体は 1/T01/T_0 で小さくなっていくが、T0ckT_0\, c_k は一定の包絡線の上に乗り続ける

つまり T0T_0 \to \infty の極限では、線スペクトルは間隔ゼロ・連続的に分布するスペクトルになり、残るのはあの包絡線そのものだ。この包絡線を取り出す操作に名前を付けたい。

3.2 フーリエ変換とフーリエ逆変換

やらない夫

式でやろう。複素フーリエ係数の式 (2.6) の両辺に T0T_0 を掛けると

T0ck=T0/2T0/2f(t)ejkω0tdtT_0\, c_k = \int_{-T_0/2}^{T_0/2} f(t)\, e^{-jk\omega_0 t}\, dt

ここで T0T_0 \to \infty とすると、積分区間は実数全体になり、離散的だった周波数 kω0k\omega_0 は連続変数 ω\omega に置き換わる。こうして得られるのがフーリエ変換だ。

F(ω)=f(t)ejωtdt(3.1)F(\omega) = \int_{-\infty}^{\infty} f(t)\, e^{-j\omega t}\, dt \tag{3.1}
やる夫

おお、たしかに ckc_k の式の親玉っぽい見た目だお。「調べたい周波数 ω\omega の波を掛けて、今度は全時間で積分」だお。

やらない夫

その読みで完璧だ。逆に、スペクトル F(ω)F(\omega) から元の信号を組み立て直す式がフーリエ逆変換

f(t)=12πF(ω)ejωtdω(3.2)f(t) = \frac{1}{2\pi} \int_{-\infty}^{\infty} F(\omega)\, e^{j\omega t}\, d\omega \tag{3.2}

フーリエ級数の式 (2.3)「成分を全部足す」の連続版だな。総和が積分になり、1/2π1/2\pi という調整係数が付く。

やる夫

その 1/2π1/2\pi はどこから湧いたんだお。

やらない夫

級数のとき ckc_k に付いていた 1/T01/T_0 の生まれ変わりだ。導出を丁寧に追うと、隣り合う周波数の間隔 ω0=2π/T0\omega_0 = 2\pi/T_0 が積分の dωd\omega になる過程で 1/2π1/2\pi が残る。どちらか片方に押し付けるか、両方に 1/2π1/\sqrt{2\pi} ずつ配るか、流儀がいくつかあるが、この教材では式 (3.1)(3.2) の形で統一する。

3.3 重要なフーリエ変換対

3.3.1 矩形関数と sinc 関数

やらない夫

フーリエ変換と言えばまずこれ、という変換対を2組覚えてもらう。1組目は矩形パルスだ。幅 TT・高さ1の矩形 rect(t/T)\mathrm{rect}(t/T) を式 (3.1) に入れると

F(ω)=T/2T/2ejωtdt=2sin(ωT/2)ω(3.3)F(\omega) = \int_{-T/2}^{T/2} e^{-j\omega t} dt = \frac{2\sin(\omega T/2)}{\omega} \tag{3.3}

ここまでは素朴に積分しただけだ。この 2sin(ωT/2)ω\dfrac{2\sin(\omega T/2)}{\omega} を、信号処理で標準の sinc 関数を使って書き直す。本教材では sinc を次の正規化形に統一する。

sinc(x)=sin(πx)πx\mathrm{sinc}(x) = \frac{\sin(\pi x)}{\pi x}
やる夫

分子は sin(πx)\sin(\pi x) なのに、(3.3) の分子は sin(ωT/2)\sin(\omega T/2) だお。中身を合わせるには πx=ωT/2\pi x = \omega T/2、つまり x=ωT2πx = \dfrac{\omega T}{2\pi} と置けばいいんだお?

やらない夫

そのとおり、それが変形の一手だ。x=ωT2πx = \dfrac{\omega T}{2\pi} と置くと、定義より sinc(x)=sin(πx)πx=sin(ωT/2)ωT/2\mathrm{sinc}(x) = \dfrac{\sin(\pi x)}{\pi x} = \dfrac{\sin(\omega T/2)}{\omega T/2}。これを (3.3) の形にするには分子分母に TT を補えばよくて

2sin(ωT/2)ω=Tsin(ωT/2)ωT/2=Tsinc ⁣(ωT2π)\frac{2\sin(\omega T/2)}{\omega} = T \cdot \frac{\sin(\omega T/2)}{\omega T/2} = T\,\mathrm{sinc}\!\left(\frac{\omega T}{2\pi}\right)

と書き直せる(式 (3.3) の右辺はこの正規化 sinc の形だと思っていい)。係数の TTω=0\omega = 0 での高さ(sinc(0)=1\mathrm{sinc}(0) = 1 なので F(0)=TF(0) = T、これは矩形パルスの面積そのものだ)だな。

やる夫

しんく? 山がひとつあって、両側に波打ちながら減衰してくあの形かお。

やらない夫

それだ。信号処理ではこの先も何度も出てくるから、顔と名前を一致させておけ。重要なのは幅の関係だ。下のデモでパルス幅 TT を動かしてみろ。

RECT ⇄ SINC INTERACTIVE
パルス幅 T を狭める(操作)→ 時間側の箱は細くなるのに、周波数側の sinc は横へびよーんと広がる(観察)→ 時間幅と周波数幅は反比例し、短い(鋭い)信号ほど広い周波数成分を含む=不確定性原理の一例(意味)。
やる夫

ほんとだお。時間の幅を狭くすると、スペクトルがびよーんと横に広がるお。

やらない夫

時間的に短い信号ほど、広い周波数成分を含む。これは矩形パルスに限らない普遍的な性質で、不確定性原理と呼ばれる関係の一例だ。「鋭い変化を作るには高い周波数が要る」と言ってもいい。第1章のギブス現象で、角を作るのに高調波が延々と必要だったのも同じ話だ。

3.3.2 デルタ関数と複素指数関数

やらない夫

2組目はもっと極端な相手、デルタ関数 δ(t)\delta(t) だ。幅ゼロ・高さ無限大・面積1の「瞬間的な衝撃」を表す理想化された関数で、本質的な性質はこれ1本で言える。

δ(tt0)g(t)dt=g(t0)(3.4)\int_{-\infty}^{\infty} \delta(t - t_0)\, g(t)\, dt = g(t_0) \tag{3.4}
やる夫

積分すると、デルタが立ってる場所の値をつまみ出すのかお。

やらない夫

そう、そのつまみ出し性質がデルタ関数のすべてだ。これを使うとフーリエ変換は即座に計算できて

δ(t)    1(3.5)\delta(t) \;\longleftrightarrow\; 1 \tag{3.5}

瞬間的な衝撃は、すべての周波数を均等に含む。さっきの「短いほど広い」の極限だな。逆に時間側が定数1(無限に長い「変化しない信号」)なら

1    2πδ(ω)(3.6)1 \;\longleftrightarrow\; 2\pi\,\delta(\omega) \tag{3.6}

スペクトルは ω=0\omega = 0 の1点に集中する。さらに回転する複素指数なら

ejω0t    2πδ(ωω0)(3.7)e^{j\omega_0 t} \;\longleftrightarrow\; 2\pi\,\delta(\omega - \omega_0) \tag{3.7}
やる夫

ふむふむ。「ずっと一定速度で回り続けるきれいな波」は、スペクトルで見ると ω0\omega_0 の場所に1本だけピンと立つ…。あれ? それって線スペクトルの棒と同じじゃないかお?

やらない夫

鋭いぞ。その直感が次の節の主役だ。

3.4 フーリエ級数とフーリエ変換の関係

やらない夫

周期信号はフーリエ級数 (2.3) で書けた。この両辺を、式 (3.7) を使ってフーリエ変換してみると

f(t)=k=ckejkω0tF(ω)=2πk=ckδ(ωkω0)(3.8)f(t) = \sum_{k=-\infty}^{\infty} c_k e^{jk\omega_0 t} \quad\longleftrightarrow\quad F(\omega) = 2\pi \sum_{k=-\infty}^{\infty} c_k\, \delta(\omega - k\omega_0) \tag{3.8}

つまり周期信号のフーリエ変換は、間隔 ω0\omega_0 で並んだデルタ関数の列になる。各デルタの重みがフーリエ係数 ckc_k だ。

やる夫

線スペクトルの棒グラフの正体は、デルタ関数の行列だったのかお。

やらない夫

そうだ。これでフーリエ級数はフーリエ変換に完全に吸収された。周期信号も非周期信号も、これからは「フーリエ変換」という一つの道具で扱える。

  • 非周期信号 → 連続的に広がったスペクトル
  • 周期信号 → とびとびに立つ線スペクトル(デルタ列)

この対応、「時間側が周期的だと、周波数側は離散的になる」という形で覚えておけ。第6章と第10章で、これの鏡写しのような法則と再会することになる。

やる夫

意味深な予告だお…。

この章のまとめ
  • フーリエ変換は「周期 → ∞」の極限。F(ω)=f(t)ejωtdtF(\omega) = \int f(t) e^{-j\omega t} dt、逆変換は f(t)=12πF(ω)ejωtdωf(t) = \frac{1}{2\pi}\int F(\omega) e^{j\omega t} d\omega
  • 矩形パルス ⇄ sinc 関数。時間幅と周波数幅は反比例する(短い信号ほど広いスペクトル)
  • デルタ関数 ⇄ 定数1。デルタ関数の本質は「つまみ出し性質」
  • ejω0t2πδ(ωω0)e^{j\omega_0 t} \leftrightarrow 2\pi\delta(\omega - \omega_0)。周期信号のフーリエ変換はデルタ関数の列=線スペクトル
  • 時間側が周期的 ⇔ 周波数側が離散的、という対応はこの先も繰り返し現れる