フーリエ級数展開

信州大学工学部  井澤裕司


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

1. 定義(その1)

はじめに、フーリエ級数展開の定義を示しましょう。 

周期関数を x(t) とします。ここで時間T0  は周期を表します
この関数が、ディリクレの条件を満たすとき、T0 の整数倍の周期をもつ sincos重ね合せにより表すことが
できます。
すなわち、以下の式が成立します。

ここで、ω0   は基本となる角速度であり、基本となる周期 T0 に対応する基本周波数をf0 とすると、
ω = 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つ選び、マウスでクリックして下さい。
指定した関数が、低い次数から段階的に生成されてゆく過程がアニメーションで表示されます。
上の波形は次数が ncos基本波(振幅=1)、中央の波形はsin基本波です。
次のステップで、それらに係数  an , bn をかけた波形が表示されます。
最後にこれらを加算した波形が、下側に表示されます。
cosは周期関数の偶対称成分sin奇対称成分に対応することは、容易に理解できると思います。
 
このように、適切な係数 an , bn を選び、これに対応する正弦波を低い次数から段階的に加えてゆくと、
目的の関数に収束することがわかります。

[問]

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


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

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


 

[問]

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

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

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

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

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

三角関数の sincos直交関数系を構成します。

たとえば、整数 mn について以下の関係式が成立します。

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


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

この三角関数直交性について、次の図を用いて補足しましょう。

図の左上は、次数 ncos, sin の波形を示しています。
 
また左下は、次数 m の波形です。これら2つの関数の積は4通りあり、それらの波形を右側に示しています。
 
中央に次数の n, m の値が表示されています。
ボタンのをクリックすることにより、任意の値にセットすることができます。
デフォルト値は、それぞれ n = 2m = 3 です。
 
右の波形の平均値(0 〜 T0 における積分値)を緑色の線で示しています。
ほとんどの場合、この値は 0 になっています。
n, m の値を変化させて、平均値が 0 以外の値になる組み合せを求め、その条件を検討してみて下さい。



直交性に関する結果は、以下のようになります。

(1) cos×cos の平均値

(2) sin×sin の平均値

(3) cos×sinsin×cos の平均値

(1) において、 n = m = 0 の積分値が n = m ≠ 02倍になっています。
フーリエ級数展開の定義において、係数 a0  の場合にのみ、1/2 という補正係数が付くことを説明しましたが、
これがその根拠になっています。

(2) より b0 = 0 となり、b0 の項は存在しません。

これが直交性という条件です。この特性は極めて有用で、信号をある基本的な関数の重ね合せに
分解したり、逆に合成して元の信号を復元したりすることができます。
三角関数はその代表的なものですが、直交関数については、ウェーブレット関数をはじめとして、
各方面で研究が進められています。

この関係を三角関数の数式で表すと、次のようになります。


4. 重ね合せの原理

三角関数直交性については、理解できたと思います。この性質を用いると、周期関数 x(t) から
フーリエ級数の係数 an , bn を求めることができます。

その前に重ね合せの原理について整理しておきましょう。

周期関数x1(t), x2(t) とし、それらをフーリエ級数展開した係数をそれぞれ、a1n, b1na2n, b2n とします。
このとき以下の関係式が成立します。

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

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

ここでは、係数  an , bn の求め方について補足します。この求め方については、直交性より明らかですので、
既に理解している人は次のステップに進んで下さい。

次の式は最初に示したフーリエ級数展開の定義です。(ただし、整数の変数 nm に変更しています。 )

この 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つの座標軸で観測したものが、三角関数に対応します。
 
逆に、三角関数の cossin をペアにして拡張すると、2次元上の回転に対応させることができます。
すなわち、実数と虚数の複素平面上の1点に対応させる方法です。
 
具体的には、フーリエ係数の  an を実部、係数  bn を虚部に対応させ、Zn = an + j bn とおくと、
これが回転成分に対応します(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つ回転方向のそれぞれに正と負の周波数を割り当て、区別する必要があります。

なお、これらの手法を用いるためには、
「重ね合せの原理」が成立することが条件となります。
その内容については、この後の
「線形システム」で解説します。


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

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



6. まとめ

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

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