第2章

複素指数関数型のフーリエ級数

この章のねらい

  • sin と cos の重ね合わせが「振幅と位相」の表現だと理解する
  • オイラーの公式で複素指数関数型のフーリエ級数を導けるようになる
  • 負の周波数と回転ベクトル(フェーザ)のイメージを持つ

2.1 sin と cos を重ねることの意味

やる夫

第1章から疑問だったんだお。なんで同じ周波数なのに cos\cossin\sin2人がかりなんだお? akcoskω0t+bksinkω0ta_k \cos k\omega_0 t + b_k \sin k\omega_0 t って、1人にまとめられないのかお。

やらない夫

いい着眼点だ。実はまとめられる。三角関数の合成、高校でやっただろ。

akcoskω0t+bksinkω0t=Akcos(kω0tϕk)a_k \cos k\omega_0 t + b_k \sin k\omega_0 t = A_k \cos(k\omega_0 t - \phi_k)

ここで Ak=ak2+bk2A_k = \sqrt{a_k^2 + b_k^2}tanϕk=bk/ak\tan \phi_k = b_k / a_k だ。

やる夫

あー、あったお、そんなの。つまり同じ周波数の cos と sin の混ぜ具合ってのは、結局「振幅 AkA_k と位相 ϕk\phi_k の cos 1本」と同じことなのかお。

やらない夫

そうだ。フーリエ級数とは「各周波数成分の振幅位相を決めること」だと言い換えられる。cos と sin の係数のペア (ak,bk)(a_k, b_k) は、振幅と位相 (Ak,ϕk)(A_k, \phi_k) を直交座標で持っているだけだ。

やる夫

直交座標…。ペアの数を平面の点とみなすってことかお。なんか複素数っぽい話になってきたお。

やらない夫

その勘は当たってる。というわけでこの章の主役、複素数の登場だ。

2.2 複素指数関数型のフーリエ級数

やらない夫

鍵になるのはオイラーの公式だ。

ejθ=cosθ+jsinθ(2.1)e^{j\theta} = \cos\theta + j\sin\theta \tag{2.1}

ここで jj は虚数単位だ。数学では ii と書くが、電気系では電流と紛らわしいので jj を使う。

やる夫

それ、名前だけは知ってるお。「世界一美しい式」とかいうやつの親戚だお。でも、指数関数の肩に虚数が乗ってるって、何が起きてるのか想像できないお。

やらない夫

想像の仕方はこうだ。複素平面上で、ejθe^{j\theta}原点中心・半径1の円周上の、角度 θ\theta の点だ。θ=ωt\theta = \omega t のように時間で増やしてやれば、反時計回りにぐるぐる回る点になる。回る点を実軸に射影すれば cos\cos、虚軸に射影すれば sin\sin が出てくる。

やる夫

回転を横から見たら振動、ってことかお。観覧車を真横から見たらゴンドラが上下してるみたいな話だお。

やらない夫

その例えでいい。さて、オイラーの公式を逆に解くと cos と sin を指数関数で書ける。

cosθ=ejθ+ejθ2,sinθ=ejθejθ2j(2.2)\cos\theta = \frac{e^{j\theta} + e^{-j\theta}}{2}, \qquad \sin\theta = \frac{e^{j\theta} - e^{-j\theta}}{2j} \tag{2.2}

これを第1章のフーリエ級数 (1.1) の各項に代入していく。いきなり総和を相手にすると見失うから、まず k=1k=1 の項 a1cosω0t+b1sinω0ta_1 \cos \omega_0 t + b_1 \sin \omega_0 t だけを (2.2) で開いてみせる。

a1ejω0t+ejω0t2+b1ejω0tejω0t2ja_1 \frac{e^{j\omega_0 t} + e^{-j\omega_0 t}}{2} + b_1 \frac{e^{j\omega_0 t} - e^{-j\omega_0 t}}{2j}
やる夫

分母の 2j2j が邪魔だお。1/j1/j ってどう料理するんだお。

やらない夫

1/j=j1/j = -jj(j)=1j \cdot (-j) = 1 だからな)を使って、ejω0te^{j\omega_0 t} の係数と ejω0te^{-j\omega_0 t} の係数でまとめ直すだけだ。

=a1jb12c1ejω0t+a1+jb12c1ejω0t= \underbrace{\frac{a_1 - j b_1}{2}}_{c_1}\, e^{j\omega_0 t} + \underbrace{\frac{a_1 + j b_1}{2}}_{c_{-1}}\, e^{-j\omega_0 t}

ほら、e+jω0te^{+j\omega_0 t} の前に c1=(a1jb1)/2c_1 = (a_1 - jb_1)/2ejω0te^{-j\omega_0 t} の前に c1=(a1+jb1)/2c_{-1} = (a_1 + jb_1)/2 が自然に現れた。同じ操作を k=2,3,k=2,3,\dots の各項にやれば、ejkω0te^{jk\omega_0 t}ejkω0te^{-jk\omega_0 t} の係数として ckc_kckc_{-k} が次々に出てくる。直流の a0a_0 はそのまま c0c_0 だ。全部の項を ejkω0te^{jk\omega_0 t} (kk は負も含む整数) で並べ直すと、こうまとまる。

f(t)=k=ckejkω0t(2.3)f(t) = \sum_{k=-\infty}^{\infty} c_k\, e^{jk\omega_0 t} \tag{2.3}

ここで係数は、いま k=1k=1 で見たとおり

c0=a0,ck=akjbk2,ck=ak+jbk2(k1)(2.4)c_0 = a_0, \qquad c_k = \frac{a_k - j b_k}{2}, \qquad c_{-k} = \frac{a_k + j b_k}{2} \quad (k \ge 1) \tag{2.4}
やる夫

ちょっと待つお! 総和が k=k = -\infty からになってるお! マイナスの周波数ってなんだお!? 1秒間にマイナス3回振動とか、ホラーだお!

やらない夫

全員そこで一度引っかかるから安心しろ。さっきの回転のイメージを使え。ejkω0te^{jk\omega_0 t} は反時計回りに回る点だった。なら ejkω0te^{-jk\omega_0 t} は?

やる夫

肩の符号が逆だから…回る向きが逆? 時計回りかお。

やらない夫

そうだ。負の周波数とは「逆向きの回転」のことだ。ホラーでも何でもない。そして式 (2.2) を見ろ。実数の cosθ\cos\theta を作るには、反時計回り ejθe^{j\theta} と時計回り ejθe^{-j\theta}ペアで足す必要がある。互いの虚部がちょうど打ち消し合って、実軸上の振動だけが残るからだ。

やる夫

なるほどだお。実数の信号を複素指数で表そうとすると、正負の回転をセットで使う羽目になる。だから総和が両側に伸びてるのかお。

やらない夫

そういうことだ。実際、f(t)f(t) が実数なら必ず ck=ckc_{-k} = c_k^*(複素共役)になる。式 (2.4) を見れば確認できるな。これを共役対称性という。負の周波数側の係数は正の側の鏡写しだから、情報が増えているわけではない。

2.3 フーリエ係数の計算

やる夫

で、ckc_k はどうやって求めるんだお。また「同じものを掛けて積分」かお?

やらない夫

話が早いな。複素版の直交性はこうだ。klk \neq l のとき

T0/2T0/2ejkω0t(ejlω0t)dt=T0/2T0/2ej(kl)ω0tdt=0(2.5)\int_{-T_0/2}^{T_0/2} e^{jk\omega_0 t} \left( e^{jl\omega_0 t} \right)^* dt = \int_{-T_0/2}^{T_0/2} e^{j(k-l)\omega_0 t} \, dt = 0 \tag{2.5}

k=lk = l のときは被積分関数が e0=1e^{0} = 1 になるから、積分値は T0T_0 だ。

やる夫

複素数の「同じものを掛ける」は共役を掛けるんだお? 肩の符号がマイナスになってるお。

やらない夫

よく気づいた。複素数の内積は片方を共役にするのが流儀だ。実数のときは共役を取っても変わらないから意識しなかっただけで、第1章でやっていたことの自然な拡張になっている。で、この直交性を使うと、式 (2.3) の両辺に ejkω0te^{-jk\omega_0 t} を掛けて1周期積分することで

ck=1T0T0/2T0/2f(t)ejkω0tdt(2.6)c_k = \frac{1}{T_0} \int_{-T_0/2}^{T_0/2} f(t)\, e^{-jk\omega_0 t}\, dt \tag{2.6}

が得られる。第1章の式 (1.8) と見比べてみろ。

やる夫

ほとんど同じ形だお。「調べたい周波数の波を掛けて1周期積分」…。あ、しかもcos 用と sin 用の2本あった式が1本になってるお。

やらない夫

それが複素表記のご利益だ。ejkω0t=coskω0tjsinkω0te^{-jk\omega_0 t} = \cos k\omega_0 t - j \sin k\omega_0 t だから、1回の積分で cos との照合(実部)と sin との照合(虚部)を同時にやっていることになる。

2.4 フーリエ級数のイメージ

やらない夫

仕上げに、複素フーリエ級数の「絵」を2つ渡しておく。1つ目は回転ベクトルの連結だ。式 (2.3) は「半径 ck|c_k| のベクトルが角速度 kω0k\omega_0 で回っていて、その全部をしっぽとあたまで繋いだ鎖の先端が f(t)f(t) を描く」と読める。

ROTATING PHASORS INTERACTIVE
再生してから項数のスライダーを上げる(操作)→ 速く回る小さなベクトルが鎖の先に足され、先端が描く右の波形が矩形波に近づく(観察)→ 各 $c_k e^{jk\omega_0 t}$ は回転ベクトルで、大きく遅い項が波形の大枠を、小さく速い項が細部を担う(意味)。
やる夫

おー! ぐるぐる回ってる鎖の先っぽが、ちゃんと右側でカクカクの波を描いてるお! 速く回る小さいベクトルが細かいギザギザを作ってるんだお!

やらない夫

そういうことだ。大きくゆっくり回るベクトルが波形の大づかみな形を、小さく速く回るベクトルが細部を担当する。この「役割分担」の感覚は、この先ずっと役に立つ。

2つ目の絵が線スペクトルだ。横軸に周波数(kk)、縦軸に ck|c_k| を立てたグラフで、信号を「周波数の世界から」眺めたものだ。

TWO-SIDED LINE SPECTRUM INTERACTIVE
波形を矩形波→三角波と切り替える(操作)→ 下段の線スペクトルで、滑らかな三角波ほど高い周波数(外側)の棒が速く小さくなる(観察)→ スペクトルは信号の「周波数の世界の顔」で、$\\pm k$ 対称に棒が立つのは実信号の共役対称 $c_{-k}=c_k^*$ の現れ(意味)。
やる夫

スペクトルって言葉、ニュースの音声分析とかで聞いたことあるお。これだったのかお。…たしかに三角波にすると、遠くの棒がすぐ消えるお。第1章でやった「滑らかな信号ほど高調波が速く減衰する」だお!

やらない夫

つながってきたな。時間の世界で波形を見るか、周波数の世界でスペクトルを見るか。同じ信号の2つの顔だ。次章では、この見方を周期的でない信号にまで広げる。それがフーリエ変換だ。

この章のまとめ
  • 同じ周波数の cos と sin の重ね合わせは「振幅と位相を持つ1本の波」と同じこと
  • オイラーの公式 ejθ=cosθ+jsinθe^{j\theta} = \cos\theta + j\sin\theta で、フーリエ級数は f(t)=k=ckejkω0tf(t) = \sum_{k=-\infty}^{\infty} c_k e^{jk\omega_0 t} と1本化できる
  • 負の周波数は逆向きの回転。実信号では ck=ckc_{-k} = c_k^*(共役対称)で、正負はペアで実数の振動を作る
  • 係数は ck=1T0f(t)ejkω0tdtc_k = \frac{1}{T_0}\int f(t) e^{-jk\omega_0 t} dt。「調べたい周波数を掛けて積分」は変わらない
  • イメージは「回転ベクトルの鎖」と「線スペクトル」