DSP 02 · 複素指数関数とオイラーの公式

Chapter 02

複素指数関数とオイラーの公式

信号処理では正弦波を\(\cos\)や\(\sin\)のままではなく、複素指数関数\(e^{j\omega n}\)(\(j\) は虚数単位、\(\omega\) は 1 サンプルあたりの位相の進み(01 章 2 節)、\(n\) はサンプル番号)で扱う。 「なぜわざわざ複素数を持ち出すのか」を含めて、必要な数学をすべて導出する。複素数そのものの復習から始める(0 節)。

この章のゴールを先に言う. これから「\(e^{j\theta} = \cos\theta + j\sin\theta\)」という、一見おかしな式を扱う。 指数関数と三角関数という、高校では別々に習った関数が、虚数\(j\)を挟むと同じものになる——という主張である。

なぜこんなものを持ち出すのか。理由はたった 1 つ、計算が劇的に楽になるから。

つまり複素数は「難しさを持ち込む道具」ではなく、面倒な三角関数の計算を消すための道具である。 高校数学で \(\log\) を習ったとき「掛け算が足し算になって計算が楽になる」と教わったのと、動機は全く同じ。

この章では ①その便利な式の正体(1 節〜3 節)→ ②それがフィルタ理論でなぜ決定的なのか(4 節)→ ③この先ずっと使う計算道具(5 節)、の順に進む。

0. 複素数の最小限の復習

\(x^2 = -1\) を満たす数は実数の中にはない。そこでそういう数を 1 つ用意して \(j\) と書く(虚数単位、\(j^2 = -1\)。数学では \(i\) と書くが、電気・信号処理では電流の \(i\) と区別するため \(j\) を使う)。 実数 \(a, b\) を使って \(z = a + jb\) の形に書ける数を複素数と呼び、\(a\) を実部 \(\mathrm{Re}(z)\)、\(b\) を虚部 \(\mathrm{Im}(z)\) と呼ぶ。

この章では、\(z\) を「絶対値と偏角」で表す極形式(3 節)と、それを可能にするオイラーの公式(1 節)を導く。

1. オイラーの公式の導出

主張

\[ e^{j\theta} = \cos\theta + j\sin\theta \]

導出(テイラー級数による)

使う道具: テイラー級数(マクローリン展開). これは「関数を、\(x\)のべき乗(\(1, x, x^2, x^3, \dots\))の無限に続く足し算で書き直したもの」である。 なぜそんなことをするかというと、べき乗の足し算なら、指数関数だろうが三角関数だろうが同じ土俵で比べられるから。 今回はまさにそれが狙いで、\(e^x\)・\(\cos\theta\)・\(\sin\theta\)の 3 つを同じ「べき乗の足し算」の形に翻訳し、 並べて見比べると関係が浮かび上がる、という筋書きになっている。

(3 つの展開式の出どころ: 関数 \(f(x)\) が \(f(x) = a_0 + a_1 x + a_2 x^2 + \cdots\) の形に書けると仮定し、両辺を \(k\) 回微分して \(x = 0\) を入れると左辺は \(f^{(k)}(0)\)、右辺は \(k!\,a_k\) だけが残るので \(a_k = f^{(k)}(0)/k!\) と係数が決まる。 \(e^x\) は何回微分しても \(e^x\) で \(x=0\) の値は 1 だから \(a_k = 1/k!\)。\(\cos\) は微分すると \(-\sin, -\cos, \sin, \cos, \dots\) と 4 周期で回り、\(x=0\) での値が \(1, 0, -1, 0, \dots\) なので偶数次だけが符号交互に残る。\(\sin\) も同様に奇数次だけ残る。 「この形に書けること」自体の証明は解析学に譲り、ここでは結果を借りる。「\(x\)が小さいとき\(e^x \approx 1 + x\)」のような近似式を無限に続けたもの、と思えばよい。)

指数関数、余弦、正弦のテイラー級数(マクローリン展開)はそれぞれ:

\[ e^{x} = \sum_{k=0}^{\infty} \frac{x^k}{k!} = 1 + x + \frac{x^2}{2!} + \frac{x^3}{3!} + \frac{x^4}{4!} + \cdots \]
\[ \cos\theta = \sum_{m=0}^{\infty} \frac{(-1)^m \theta^{2m}}{(2m)!} = 1 - \frac{\theta^2}{2!} + \frac{\theta^4}{4!} - \cdots \]
\[ \sin\theta = \sum_{m=0}^{\infty} \frac{(-1)^m \theta^{2m+1}}{(2m+1)!} = \theta - \frac{\theta^3}{3!} + \frac{\theta^5}{5!} - \cdots \]

\(e^x\)の級数に\(x = j\theta\)を代入する(この級数は複素数を入れても絶対収束する——各項の絶対値 \(|\theta|^k/k!\) の和が有限——ので、項を実部と虚部に分けたり並べ替えたりしても和が変わらない。この事実を使って代入を正当化する):

\[ e^{j\theta} = 1 + j\theta + \frac{(j\theta)^2}{2!} + \frac{(j\theta)^3}{3!} + \frac{(j\theta)^4}{4!} + \frac{(j\theta)^5}{5!} + \cdots \]

\(j\)のべき乗は 4 周期で循環する:\(j^0=1, j^1=j, j^2=-1, j^3=-j, j^4=1,\dots\)。これを使って各項を整理:

\[ e^{j\theta} = 1 + j\theta - \frac{\theta^2}{2!} - j\frac{\theta^3}{3!} + \frac{\theta^4}{4!} + j\frac{\theta^5}{5!} - \cdots \]

実部と虚部に分けてまとめる:

\[ e^{j\theta} = \underbrace{\left(1 - \frac{\theta^2}{2!} + \frac{\theta^4}{4!} - \cdots\right)}_{=\cos\theta} + j\underbrace{\left(\theta - \frac{\theta^3}{3!} + \frac{\theta^5}{5!} - \cdots\right)}_{=\sin\theta} \]

よって

\[ e^{j\theta} = \cos\theta + j\sin\theta \qquad \blacksquare \]

直感

\(e^{j\theta}\)は複素平面上の単位円周上の点であり、\(\theta\)はその角度。 \(\theta\)を時間とともに増やすと、点は単位円上を反時計回りにぐるぐる回る。

正弦波は「回転する点の影」: 単位円上を回る点を実軸に射影すると\(\cos\theta\)、虚軸に射影すると\(\sin\theta\)が得られる。 観覧車のゴンドラに横から光を当てたときの影が上下に単振動するのと同じ。

2. cos と sin を複素指数で表す(逆向きの公式)

オイラーの公式で\(\theta \to -\theta\)とすると、\(\cos(-\theta)=\cos\theta\)、\(\sin(-\theta)=-\sin\theta\)より:

\[ e^{-j\theta} = \cos\theta - j\sin\theta \]

2 式を足す:

\[ e^{j\theta} + e^{-j\theta} = 2\cos\theta \quad\Longrightarrow\quad \boxed{\cos\theta = \frac{e^{j\theta} + e^{-j\theta}}{2}} \]

2 式を引く:

\[ e^{j\theta} - e^{-j\theta} = 2j\sin\theta \quad\Longrightarrow\quad \boxed{\sin\theta = \frac{e^{j\theta} - e^{-j\theta}}{2j}} \]

直感: 実信号の\(\cos\)は「右回りの回転と左回りの回転を半分ずつ足したもの」。 だから実信号のスペクトルには必ず正負両方の周波数が対で現れる(負の周波数 = 逆回転)。

オイラーの公式と負の周波数
図: 左は\(e^{j\theta}\)が単位円上の点であり cos/sin がその射影であること。右は\(\cos\theta\)が逆回転する 2 本のベクトルの和で、虚部が常に打ち消し合うこと(=「負の周波数」の正体)。

3. 複素数の極形式と演算

複素数\(z = a + jb\)(0 節)は、絶対値 \(r\) と偏角 \(\phi\) を使った極形式で書ける:

\[ z = r e^{j\phi}, \qquad r = |z| = \sqrt{a^2 + b^2}, \qquad \phi = \angle z = \arctan\frac{b}{a} \]

(理由: 複素平面で点 \(z\) を原点からの距離 \(r\) と角度 \(\phi\) で表すと \(a = r\cos\phi, b = r\sin\phi\) なので、オイラーの公式より \(z = r(\cos\phi + j\sin\phi) = re^{j\phi}\)。 \(r\) は 0 節 のとおり \(|z|^2 = z z^* = a^2 + b^2\) から。\(\arctan\) は \(-\pi/2\) から \(\pi/2\) の値しか返さないので、象限は\(a, b\)の符号で補正する: \(a > 0\) ならそのまま、\(a < 0\) なら \(\pi\) を足す(または引く)、\(a = 0\) なら \(b\) の符号に応じて \(\pm\pi/2\)。)

掛け算は「大きさを掛けて、角度を足す」:

\[ z_1 z_2 = r_1 e^{j\phi_1} \cdot r_2 e^{j\phi_2} = r_1 r_2 e^{j(\phi_1 + \phi_2)} \]

これは指数法則\(e^{A}e^{B} = e^{A+B}\)から直ちに従う。 (指数法則自体の確認: 2 つの級数の積を「添字の和 \(m = k + l\) が等しい項ごとにまとめ直す」(この並べ替えをコーシー積と呼ぶ)と \(\left(\sum_k \frac{A^k}{k!}\right)\left(\sum_l \frac{B^l}{l!}\right) = \sum_m \frac{1}{m!}\sum_{k=0}^{m}\binom{m}{k}A^k B^{m-k} = \sum_m \frac{(A+B)^m}{m!}\)、 最後の等号は二項定理。\(A, B\)が可換な複素数なら成立する。)

この「掛け算 = 回転と伸縮」という見方が、後の極・零点によるフィルタ特性の図形的解釈(06 章)の土台になる。

4. なぜ信号処理は複素指数を使うのか — LTI システムの固有関数

ここで LTI システムとは「線形性と時不変性を持つシステム」のことで、実用的なフィルタはすべてこれに当たる(正確な定義は 03 章。この章では「フィルタ」と読んでよい)。 これが最重要ポイント。答えを先に言うと:

複素指数\(e^{j\omega n}\)を LTI システム(フィルタ)に入れると、出てくるのは同じ\(e^{j\omega n}\)の定数倍。 つまり複素指数はフィルタを通しても「形が変わらない」唯一の信号族である。

なぜこれがそんなに嬉しいのか. フィルタに一般の信号を入れると、出てくる波形は入力とは似ても似つかない形に変わる(それがフィルタの仕事なので当然)。 ところが複素指数だけは例外で、入れたものと同じ形が、大きさと位相だけ変えられて出てくる。

これの何が嬉しいか——「どんな信号も複素指数の寄せ集めで書ける」(これがフーリエ変換の主張、04 章)ので、 入力を複素指数にバラす → 各成分に倍率を掛ける → 足し戻す、という 3 手順で任意の入力への出力が出せる。 フィルタの働きが「周波数ごとの倍率表」1 枚に要約されてしまう。イコライザーのスライダーがまさにこれで、 あの「低音を +3dB、高音を −5dB」というつまみは、この倍率表を直接いじっている。

導出

インパルス応答\(h[k]\)(1 発のインパルスを入れたときの出力)を持つ LTI システムでは、入力 \(x[n]\) に対する出力が \(y[n] = \sum_{k} h[k] x[n-k]\)で与えられる(この式は 03 章で証明する。ここでは結果だけ借りる)。これに\(x[n] = e^{j\omega n}\)を入力する:

\[ y[n] = \sum_{k=-\infty}^{\infty} h[k] e^{j\omega (n-k)} = \sum_{k=-\infty}^{\infty} h[k] e^{j\omega n} e^{-j\omega k} \]

\(e^{j\omega n}\)は\(k\)に依存しないので和の外に出せる:

\[ y[n] = e^{j\omega n} \underbrace{\sum_{k=-\infty}^{\infty} h[k] e^{-j\omega k}}_{\displaystyle H(e^{j\omega})} = H(e^{j\omega}) e^{j\omega n} \qquad \blacksquare \]

実信号での確認(導出)

実際の入力\(x[n] = \cos(\omega n)\)に対する出力を、上の結果から導く。 \(\cos(\omega n) = \frac{1}{2}(e^{j\omega n} + e^{-j\omega n})\)と線形性(入力の和の応答は各応答の和、03 章 2 節)より:

\[ y[n] = \frac{1}{2}\left[H(e^{j\omega}) e^{j\omega n} + H(e^{-j\omega}) e^{-j\omega n}\right] \]

\(h[k]\)が実数なら、共役は和と積に分配でき(\((z_1 + z_2)^* = z_1^* + z_2^*\)、\((z_1 z_2)^* = z_1^* z_2^*\))、\(h[k]^* = h[k]\)、\((e^{-j\omega k})^* = e^{j\omega k}\) なので

\[ \left(\sum_k h[k] e^{-j\omega k}\right)^* = \sum_k h[k]^* (e^{-j\omega k})^* = \sum_k h[k] e^{j\omega k} = H(e^{-j\omega}) \]

すなわち \(H(e^{-j\omega}) = H(e^{j\omega})^*\)。この性質を共役対称性と呼ぶ。 \(H(e^{j\omega}) = A e^{j\phi}\)(\(A = |H|\),\(\phi = \angle H\))とおくと:

\[ y[n] = \frac{1}{2}\left[A e^{j\phi} e^{j\omega n} + A e^{-j\phi} e^{-j\omega n}\right] = \frac{A}{2}\left[e^{j(\omega n + \phi)} + e^{-j(\omega n + \phi)}\right] = A\cos(\omega n + \phi) \]

つまり 「\(\cos\)を入れると、振幅が\(|H|\)倍、位相が\(\angle H\)ずれた\(\cos\)が出てくる」。∎

直感のまとめ

5. 等比級数の和(今後頻繁に使う公式)

なぜ今これをやるのか. 本シリーズの主題である IIR(Infinite Impulse Response、無限インパルス応答)フィルタは「前の出力を少し混ぜて次の出力を作る」という仕掛けなので、 一発の入力の影響が\(a, a^2, a^3, \dots\)と掛け算で薄まりながら永遠に残る(07 章)。 その総量を知るには\(1 + a + a^2 + a^3 + \cdots\)という「等比級数」の和が要る。 そして「この和が有限か無限か」がそのままフィルタが安定か暴走かの分かれ目になる。 この先 05 章・06 章・07 章で繰り返し出てくる主役なので、ここで公式にしておく。

有限和:\(S_N = \sum_{k=0}^{N-1} r^k = 1 + r + r^2 + \cdots + r^{N-1}\)とおく。

\[ S_N - r S_N = (1 + r + \cdots + r^{N-1}) - (r + r^2 + \cdots + r^{N}) = 1 - r^N \]

(中間の項がすべて打ち消し合う)。\(r \neq 1\)で割って:

\[ \boxed{\sum_{k=0}^{N-1} r^k = \frac{1 - r^N}{1 - r}} \qquad (r \neq 1) \]

無限和:\(|r| < 1\)のとき\(N \to \infty\)で\(|r^N| = |r|^N \to 0\)なので:

\[ \boxed{\sum_{k=0}^{\infty} r^k = \frac{1}{1 - r}} \qquad (|r| < 1) \]

\(|r| \geq 1\)では項が 0 に収束しないため級数は発散する。 「\(|r|<1\)でのみ収束」という条件が、後の Z 変換(05 章で導入する、DTFT を拡張した変換)の収束領域(ROC: その級数が収束する \(z\) の範囲)と IIR の安定条件の正体である。

この 1 行が後で効いてくる場面. 「\(|r| < 1\)なら和は有限、\(|r| \geq 1\)なら発散」——この当たり前に見える境目が、 06 章では「極が単位円の内側なら安定、外なら発振」という、IIR 理論で最も重要な定理そのものになる。 極\(p\)(06 章で定義する、伝達関数の分母が 0 になる点)とは、いま言う\(r\)の正体であり、「単位円」とは複素平面で原点を中心とする半径 1 の円、すなわち\(|r| = 1\)という境界線のこと。 つまり本章のこの公式は、フィルタが暴走するかどうかを決める判定条件を、先に数学の形で用意していることになる。