フーリエ級数展開

信州大学工学部  井澤裕司


フーリエ級数展開 は、 信号 スペクトル の関係を理解する上で最も重要な概念です。
その内容が把握できれば、 フーリエ変換 離散フーリエ変換 サンプリング の物理的な意味や、
それらの相互関係を理解することも容易です。
ここでは、数学的手法に基く厳密な解説は避け、より 直観的 に理解できるような ツール をいくつか用意しました。
図中の ボタン 操作 することにより、 関数の 波形 フーリエ係数 等の数値を インタラクティブ 変更 することが可能です。
これらを活用して、 信号の対称性 フーリエ係数 の関係や、 直交関数 のイメージについて、理解を深めて下さい。

1. 定義(その1)

はじめに、 フーリエ級数展開の定義 を示しましょう。
周期関数を x(t) とします。ここで 時間 T0  は 周期 を表します。
この関数が、 ディリクレの条件 を満たすとき、 T0  の整数倍の周期をもつ sin cos 重ね合せ により表すことが
できます。
すなわち、以下の式が成立します。

ここで、 ω0 は基本となる 角速度 であり、基本となる 周期 T0 に対応する基本周波数を f 0 とすると、
ω = 2πf0 = 2π/T0 の関係が成立します。
この an , bn という係数は、それぞれ x(t) に含まれる cos 成分 sin 成分 の大きさを表しており、
x(t) が定まれば これらの値は一義的に確定します。
逆に、係数 an , bn を用いて、 x(t) を表現することができます。
詳しくは後ほど説明しますが、この an , bn を拡張すると、 x(t) の周波数成分、すなわち スペクトル になります。
なお、係数 a0  1/2 は、直流と正弦波の平均電力を一致させるための 補正係数 です。
その意味は後で説明しますので、ここでは気にしないで下さい。

[確かめてみよう]  −重ね合せの原理−

実際に、「様々な周期関数が、cos sin の重ね合せで表すことができるのか?」 疑問に
感じる人もいるでしょう。
以下、 方形波 三角波 全波整流 等、代表的な関数について確認してみましょう。
 
左の 関数 ボタン を1つ選び、 マウスでクリック して下さい。
指定した関数が、低い次数から段階的に生成されてゆく過程が アニメーション で表示されます。
上の波形は次数が n cos 基本波 (振幅=1)、中央の波形は sin 基本波 です。
次のステップで、それらに係数  a n , b n をかけた波形が表示されます。
最後にこれらを加算した波形が、下側に表示されます。
cos は周期関数の 偶対称成分 sin 奇対称成分 に対応することは、容易に理解できると思います。

このように、適切な係数 a n , b n を選び、これに対応する正弦波を低い次数から段階的に加えてゆくと、
目的の関数に収束することがわかります。

[問]
関数の形状により、 収束 する 速度 が大きく異なります。
どのような関数で収束が遅くなるか、検討して下さい。 (

[確かめてみよう]   -周期関数の波形と係数の関係-

ここで、実際にフーリエ係数 an , bn を操作して、それらを重ね合わせた関数 x(t) がどのように変化するか、
観察してみましょう。
図には3つの波形が表示されています。
上の波形は、次数が 9次 までの cos sin の総和 x(t) を表しています。
中央は cos のみ、下は sin のみの 総和 に対応しています。
言うまでもなく、中央と下の波形を合わせると上の波形に一致します。
一方、下の棒グラフは、フーリエ係数 an , bn の値を表しています。
左が cos 成分 a 〜 a9 、右半分は sin 成分 b 〜 b9 を表しています。
の四角の部分をクリックすると、それらの値が調整できるようになっています。
例えば、係数 a0  をクリックして下さい。 cos 0次成分 、すなわち 直流値(平均値) が少しずつ
増えてゆきます。逆に をクリックすると、 減少 します。
また、左の関数のボタンを繰り返しクリックすると、 周期関数 位相 がずれてゆきます。
位相の変化により、係数 an , bn がどのように 変化するか、観察して下さい。

[問]
関数 x(t) が中央で折り返した形となる 偶対称 のとき、係数 a n , b n の値がどのようになるか、検討して下さい。
また、中央で上下、左右が点対称となる 奇対称 の場合についても、調べて下さい。(

2. 定義(その2)   −係数 an , bn の求め方−

周期関数    x(t) が定まったとき、係数 an , bn をどのように求めるかが問題となります。 結果を以下に示します。

an を求める場合は、 x(t) cos(nω0t) を乗じ、時間 t 1周期 の範囲を 積分 します。
bn の場合は sin(nω0t) となります。
「なぜ、このような方法でこれらの係数の値が求まるのか?」  
その理由を理解するためには、 三角関数( cos, sin ) 直交性 について説明する必要があります。  

3. 三角関数の直交性について

三角関数の sin cos 直交関数系 を構成します。
たとえば、整数 m n について以下の関係式が成立します。

この積分の形は、内積 と呼ばれます。

[確かめてみよう]  - 三角関数の直交性について -

この 三角関数 直交性 について、次の図を用いて補足しましょう。
図の左上は、次数 n cos , sin の波形を示しています。

また左下は、次数 m の波形です。これら2つの関数の積は4通りあり、それらの波形を右側に示しています。

中央に次数の n , m の値が表示されています。
ボタンの をクリックすることにより、 任意 の値にセットすることができます。
デフォルト 値は、それぞれ n = 2 m = 3 です。

右の波形の 平均値 (0 〜 T0 における積分値)を 緑色の線 で示しています。
ほとんどの場合、この値は 0 になっています。
n , m の値を変化させて、平均値が 0 以外 の値になる 組み合せを求め、その条件を検討してみて下さい。

直交性に関する結果は、以下のようになります。
(1) cos×cos の平均値
(2) sin×sin の平均値
(3) cos×sin sin×cos の平均値
(1) において、 n = m = 0 の積分値が n = m ≠ 0 2倍 になっています。
フーリエ級数展開 の定義において、係数 a0  の場合にのみ、 1/2 という 補正係数 が付くことを説明しましたが、
これがその根拠になっています。
(2) より b0 = 0 となり、 b0 の項は存在しません。
これが 直交性 という条件です。この特性は極めて有用で、信号をある基本的な関数の重ね合せに
分解したり、逆に合成して元の信号を復元したりすることができます。
三角関数はその代表的なものですが、 直交関数 については、 ウェーブレット関数 をはじめとして、
各方面で研究が進められています。
この関係を三角関数の数式で表すと、次のようになります。


4. 重ね合せの原理

三角関数 直交性 については、理解できたと思います。この性質を用いると、周期関数 x(t) から
フーリエ級数の係数 an , bn を求めることができます。
その前に 重ね合せの原理 について整理しておきましょう。
周期関数 x1(t) , x2(t) とし、それらを フーリエ級数展開 した係数をそれぞれ、 a1n , b1n a2n , b2n とします。
このとき以下の関係式が成立します。

すなわち、周期信号を 複数 の信号の 分解 したとき、その周期信号の フーリエ係数 は、分解した信号の
フーリエ係数の和になります。

[補足] −係数 an , bn の求め方−

ここでは、係数   an , bn の求め方について補足します。この求め方については、 直交性 より明らかですので、
既に理解している人は次のステップに進んで下さい。
次の式は最初に示した フーリエ級数展開 の定義です。(ただし、整数の変数 n m に変更しています。 )

この x(t) の右辺を、次の  an , bn に代入します。

上で述べた 重ね合せの原理 を用いて分解し、 直交性の条件 を用いて整理します。
その結果、三角関数の 直交性 より m = n 以外の項はすべて 0 となり、最終的に an = ‥ = an, bn = ‥ = bn
いう関係が導かれ、 係数 an, bn の値が得られることがわかります。
以上の計算が正しいことを、 シミュレーション により確かめてみましょう。
次の図に、3つの波形が表示されています。上の波形がもとの周期関数 x(t) です。
この関数をフーリエ級数展開し、その係数 an , bn を求めます。
はじめに、求める係数を cos 成分の a〜 a9 sin 成分の b〜 b9 の中から選択します。
の四角の部分をクリックして下さい。
例えば、 a4 を選択すると、その部分が濃いグレーで表示され、対応する基本波(振幅1)が中央に表示されます。
また、下には、周期関数 x(t) 基本波の積 が表示されます。その積を1周期で積分した値
(すなわち1周期の平均値)を 緑色の線 で表しています。
この値を、 2/T0 倍した値が、求める係数 a4 に相当します。
左のボタンで関数を切り替えたり、他の係数をクリックして、 フーリエ係数 が求まることを感覚的につかんで下さい。


5. 複素フーリエ級数展開

フーリエ級数展開 では、周期関数を三角関数の 成分 分解 し、最終的にいくつかの係数 an , bn に変換します。
係数の an は周期関数の 偶対称成分 (cos) に、 bn 奇対称成分 (sin) に対応しています。
これらの関数や係数はすべて実数です。
本節では、これらを 複素数 を用いてエレガントに拡張した 「複素フーリエ級数展開」 について説明します。
この概念は、次章以降で述べる 「フーリエ変換」 「離散フーリエ変換」 に密接に関連していますので、
十分理解するようにして下さい。
たとえば x = cos(θ) y = sin(θ) とおくと、 xy 平面上での 単位円周上 の1点に対応します。
すなわち、2次元の直交座標における回転を1次元の2つの座標軸で観測したものが、三角関数に対応します。
逆に、三角関数の cos sin をペアにして拡張すると、 2次元 上の 回転 に対応させることができます。
すなわち、実数と虚数の 複素平面 上の1点に対応させる方法です。
具体的には、フーリエ係数の an を実部、係数 bn を虚部に対応させ、 Zn = an + jbn とおくと、
これが 回転成分 に対応します( j 虚数単位 )。
この 複素数 スペクトル と名付けます。
それでは、通常の 「フーリエ級数展開」 から 「複素フーリエ級数展開」 を導く準備として、
複素数の基本となる オイラーの公式 について説明しましょう。

[補足] Euler(オイラー)の公式について

複素平面 における 半径1 単位円 を考えます。
この円上の点を、角度 θ を用いて、以下のように表すことができます。ここで、 j 虚数単位です。

これを 「オイラーの公式」 と言います。
この e は自然対数の底で、微分してはじめてその意味がわかる不思議な数です。
オイラー自身、「真の数学者は、 θ π を代入した ejπ=-1  という式の意味がわかる。」という言葉を残しています。

e π はともに 無理数 で、この式は不思議といえば不思議です。
元気のある人は、挑戦して下さい。(ヒント。 ejθ θ で微分し、 j の解釈に一工夫必要です。)
この式を変形すると、次のようになります。

ここで、 an bn を用いて、次の複素数 cn を定義します。ここで、整数 n の値を取り得ることに注意して下さい。

これらの式を用いて、 フーリエ級数展開 の式を変形すると、次の式が得られます。

上が複素フーリエ係数 cn を用いて 周期関数 x(t) を表す式、下が周期関数 x(t) から 複素フーリエ係数 cn
求める式になります。
この cn のことを スペクトル と言います。
x(t) 実数 のとき、任意の整数 n について cn の虚部の符号を反転したものが c-n に等しくなります。
すなわち、これらは 複素共役 の関係にあります。

[補足] −複素数とは何か? (回転と振動について)−

ここで、 複素数を導入する意義・目的 について考えてみましょう。
皆さんの中には、 複素数 、あるいは 純虚数 j をつかみところのない存在だと感じている方がいるのではないでしょうか。
しかし、 複素数 振動現象 単純明快 に表すという明確な目的があって導入された数学的な道具 であり、物理的な
意味付けも可能です。
ここで、身の回りにある機械、例えばあなたが使用しているコンピュータを例に挙げて考えてみましょう。
コンピュータの中には、様々な メカニズム(運動機構) が使われています。
電子回路の動作は直接目にすることはできませんが、 CPUの冷却用ファンをはじめとするモータが目に入ります。
ハードディスク等の記録用ドライブからもモータの回転する音が聞こえてきます。
CDドライブやDVDドライブのトレイは往復運動をしますが、これも内部のモータの 回転 を歯車を用いて 往復運動 に変えています。
すなわち、機械類には、 往復運動 ではなく 回転運動 が圧倒的に多く使用されていることがわかります。
その理由は何でしょうか? それは 単純だから です。
往復運動 は一種の 振動 であり、数学的には 正弦波 などの関数を用いて表すことが可能です。
一方の回転運動 を数学的に表そうとすると、 奥行き方向 の次元(すなわち 虚数軸 )が1つ増えてしまいます。
しかし、このように次元が増えたとしても、 回転 は振動よりはるかに 単純 な運動であり、数学的にも 回転(複素数) の方が、
振動(正弦波などの実関数) より 単純・明快に表現 できるのです。(後半の章で実感できると思います。)
具体的な例を示しましょう。
下のアニメーションで、 の線は、進行方向に向かって 時計方向 半時計方向 回転運動 を表しています。
2つの回転速度は等しく、位相も揃えてあります。
これらの回転を 横方向 から眺めると(すなわち虚数部を無視すると)、単純な1つの 正弦波 振動 に見えます。

ここで、 「虚数部を無視すると‥」  という文章は極めてあいまいな表現です。
また、 「振動運動を回転とみなす」  という部分が気になる方もいるでしょう。
このとき、物理的には次のように解釈すればいいでしょう。
上のアニメーションにおいて、 2つの回転運動 )の 重ね合せ(ベクトル和) をとると、 虚数部 = 0 となり、実数の平面内の
振動運動 に等しくなります。 空色 (シアン) の正弦波がこれに相当します。
(ちなみに2つの回転運動の積は1、すなわち静止状態となるので、注意して下さい。)
この2つの 回転運動 振幅 位相 は等しく、回転の 方向 だけが 反転 しており、いわゆる 共役(複素数) の関係にあります。
すなわち、 振動現象 を回転方向だけが異なる2つの 回転運動 ベクトル和(重ね合せ) と考えて、それらの成分( 複素数 )の
各々について、必要な計算処理を行い、最後にその ベクトル和 をとれば、振動現象に戻るわけです。
正弦波 の周波数は周期の逆数となるので、 負の周波数 は定義できませんでした。
しかし、回転の場合、 2つ 回転方向 のそれぞれに 正と負の周波数 を割り当て、区別する必要があります。
なお、これらの手法を用いるためには、 「重ね合せの原理」 が成立することが条件となります。

[参考] −コイルばねの重ね合せ−

この章の前半で、ディリクレの条件を満たす 周期信号 は、 その整数倍の角周波数をもつ
cos sin 、すなわち 重ね合せ により、表現できることを学びました。
また、先ほど cos sin などの 正弦波 は、 時計方向 反時計方向 回転 する
2種類の 螺旋(らせん) すなわち コイルばね 重ね合せ により、表わされることを示しました。
これらを組み合わせると、ディリクレ条件を満たす 周期波形 は、いくつかの 角周波数 (nω) をもつ
コイルばね ( cn , c-n ) の 、すなわち 重ね合せ により、表現できることが分かります。
 
これが、先に示した 複素フーリエ級数展開 の最初の式の意味です。
これらの関係を、 次の図 に示します。
ここで、整数 n > 0 のとき cn 時計方向に n 回転、 c-n 反時計方向に n 回転する成分を表しています。
これらは フーリエ変換 の基礎になりますので、 その イメージ をしっかり把握して下さい。


[参考] −時計の秒針を静止させて観察するには?−

時計の 秒針 静止 させて観察するには、どのような方法があるでしょうか?
下の図を見て考えてみましょう。
答えは簡単です。
秒針 同じ速度 逆方向(反時計方向) 回転する台 に乗せて観測すればよいのです。
このとき 秒針 は静止しますが、 時針 分針 は、1周期すなわち12時間で 整数回だけ回転 します。
この回転成分は 上と下 右と左 のような、 原点(0) を中心とする 対称性 があり、
その 重心 原点(0) に一致します。
すなわち、1周期分積分すると完全に 0 となり、実質的に無視することができます。


[参考] −回転台を用い、コイルばねを静止させて観測する−

秒針の回転 と、先ほどの コイルばね 回転 という 同じ現象を表しています。
それぞれ異なる 回転数 や、回転の 向き をもつ コイルばね 静止 させて観測するため、
逆方向 同じ速度 回転 する台に載せます。
先に示した 周期関数 x(t) から 複素フーリエ係数 cn 求める式が、 この操作に対応することに注意してください。
この式の 指数関数 e-jnωt マイナス は、 反対方向 への回転を表しています。
このように 複素数 を導入することにより、 フーリエ級数展開 をエレガントに表現することができます。
これが スペクトル を用いた表現法です。
図の コイルばね 半径 スペクトル 絶対値 、その 向き スペクトル 位相 に相当します。


[確認してみよう] −複素フーリエ級数展開−

下に示すツールで、 複素フーリエ級数展開 のイメージをつかんで下さい。
操作法はこれまでのものと同じです。
x(t) 実数 なので、 スペクトル cn c-n 複素共役 の関係になっていることに注意して下さい。


6. まとめ

本章では、フーリエ級数展開とその拡張方法について解説しました。
また、三角関数と指数関数(Eulerの法則)の関係や、複素数を導入する目的についても整理しました。
 
フーリエ級数展開は連続周期信号を対象としており、そのスペクトルは離散非周期スペクトルです。
このことを十分理解して下さい。

 ⇒ ディジタル信号処理(基礎編)に戻る