フーリエ級数展開@射影と直交

参考文献及びWEB

参考文献

(1)「ディジタル信号処理技術」玉井徳みち、長島厚、藤田泰弘、若井修造著 日経BP社
(2)「ディジタル信号処理の基礎」三上直樹著 CQ出版
(3)「C言語によるディジタル信号処理入門」三上直樹著 CQ出版
(4)「アナログ&ディジタルフィルタ入門」小野浩司著 日刊工業
(5)「フーリエの冒険」ヒッポファミリークラブ

あわせて読む

フーリエ級数展開

フーリエ級数展開の式はこうでした。

 f( t+T) = f(t)

 f(t) = a_0+  \sum_{n=1}^{\infty}(a_n \cos n\omega t + b_n \sin n\omega t)

ここで、

 a_{0} = \frac{1}{T}\int_0^{T} f(t) dt

 a_{n} = \frac{2}{T}\int_0^{T} f(t)\cos n\omega t dt n=1,2,\cdots

 b_{n} = \frac{2}{T}\int_0^{T} f(t)\sin n\omega t dt n=1,2,\cdots

ベクトルについて

ベクトルの基本

ベクトルは、方向と大きさを表す。
位置は関係ない。

ベクトルの内積

 \bf{A} \bullet \bf{B} = A_x B_x + A_y B_y
             = |A||B|\cos\theta

 |\bf{A}|^2 = A_{x}^2 + A_{y}^2
 |\bf{B}|^2 = B_{x}^2 + B_{y}^2

フーリエ級数展開

ベクトルの合成


図1-1

波というものは各々の正弦波と余弦波の足し合わせで表現できることが分かりました。
ここでちょっと寄り道してみます。
図1-1を見てください。

今複雑な波を各々の成分の合成ということでベクトル\bf{B}で表すことを考えてみます。

全体の波\bf{B}は各々の成分の波\bf{P_1}\bf{P_2}の合成によって

 \bf{B}=\bf{P_1}+\bf{P_2}

として表すことができます。

では\bf{P_1},\bf{P_2}\bf{A_1},\bf{A_2}で表すにはどうしたら良いのでしょうか?

これには射影という考えかたを導入することで解決できます。

今ベクトル\bf{B}から\bf{A_1}に垂線を下ろしますと紫の線は \bf{P_1}-\bf{B} と表すことができます。

ここで内積を考えてみます。
内積は2つの直線が垂直かどうかを調べるときに使います。

ベクトル\bf{A_1} \bf{P_1}-\bf{B} は垂直なので

 \bf{A_1} \bullet (\bf{P_1}-\bf{B}) = 0

になります。
ところで\bf{P_1}はベクトル\bf{A_1}をx倍したものと考えることができますので

 \bf{A_1} \bullet (\bf{P_1}-\bf{B}) = \bf{A_1} \bullet (x\bf{A_1}-\bf{B}) = x\bf{A_1} \bullet \bf{A_1} - \bf{A_1} \bullet \bf{B} = 0

となりxは

 x=\frac{\bf{A_1} \bullet \bf{B} }{ \bf{A_1} \bullet \bf{A_1} }

となる。これから

 \bf{P_1} = x\bf{A_1} = \frac{\bf{A_1} \bullet \bf{B} }{ \bf{A_1} \bullet \bf{A_1} }\bf{A_1}

と成分を抽出することができます。

\bf{A_1}をsin波,\bf{A_2}をcos波で表したベクトルとして\bf{B}を表す

\bf{A_1}をsin波,\bf{A_2}をcos波で表したベクトルとします。

\sin(\omega t) \times \cos(\omega t)の一周期の総和を計算してみる

正弦波と余弦波をかけて一周期分の総和を取る
正弦波と余弦波をかけて一周期分の総和を取るプログラム

ここでは、
正弦波と余弦波の各々の要素をすべて足し合わせると0になることを確認します。
今、サンプリング時間0.004[s]で5[Hz]の正弦波と余弦波の一周期分の総和を求めます。
周波数5[Hz]は、周期0.2[s]ですので、1周期は、0.2/0.004=50点となり、
正弦波、余弦波は50個の要素で表されることが分かります。
いま、 \Delta t = 0.004 とし、
ベクトル\bf{A}にあたるものを a(t)=\sin(\omega t)
ベクトル\bf{B}にあたるものを b(t)=\cos(\omega t)
とします。

n=1のとき
 \sin(\omega \Delta{t})
 \cos(\omega \Delta{t})
 \sin(\omega \Delta{t}) \cdot  \cos(\omega \Delta{t}) (2-1a)

n=2のとき
 \sin(\omega 2\Delta{t})
 \cos(\omega 2\Delta{t})
 \sin(\omega 2\Delta{t}) \cdot  \cos(\omega 2\Delta{t}) (2-1b)

n=3のとき
 \sin(\omega 3\Delta{t}) ~  \cos(\omega 3\Delta{t})
 \sin(\omega 3\Delta{t}) \cdot  \cos(\omega 3\Delta{t}) (2-1c)

のように各々の要素同士をかけあわせ、それを足し算していきます。
(2-1a)+(2-1b)+(2-1c)+ ....
のようにです。

数式で表すと

 \int^{T}_{0} \sin(\omega t) \cdot  \cos(\omega t) dt(2-2)

になります。
プログラムの結果をみると分かりますように(2番目のグラフの一周期後の緑のバー)
1周期足すと0になることが分かります。

各々の要素をかけて足す動作は、内積 \bf{A} \bullet \bf{B} = A_x B_x + A_y B_y
の動作と同じですので、(2-2)式は、

 \bf{A} \bullet \bf{B} = \int^{T}_{0} \sin(\omega t) \cdot  \cos(\omega t) dt = 0(2-3)

自分以外の波形との内積は全て0となります。
各自確かめてみてください。つまり全ての波はお互いに直交しています。

内積を取ることと積の積分は同じです。

f_1(t)を求める

ここから\bf{P_1},\bf{P_2}を求めてf_1(t)を求めてみます。

今フーリエ級数でいうところのn=1の時の
各成分a_1,b_1を求めてみようということです。

いまちょうど\bf{P_1}b_1に当たると考えることができます。

 \bf{P_1} = x\bf{A_1} = \frac{\bf{A_1} \bullet \bf{B} }{ \bf{A_1} \bullet \bf{A_1} }\bf{A_1}

に代入すると

 \bf{P_1} = x\bf{A_1} = \frac{\bf{A_1} \bullet \bf{B} }{ \bf{A_1} \bullet \bf{A_1} }\bf{A_1}
 = \frac{ \int^{T}_{0} \sin(\omega t) \cdot f(t) dt}{\int^{T}_{0} \sin(\omega t) \cdot \sin(\omega t) dt}\bf{A_1}
 = \frac{ \int^{T}_{0} \sin(\omega t) \cdot f(t) dt}{\frac{T}{2}}\bf{A_1}
 = \frac{2}{T} \int^{T}_{0} \sin(\omega t) \cdot f(t) dt \bf{A_1}
 = \frac{2}{T} \int^{T}_{0} \sin(\omega t) \cdot f(t) dt \sin(\omega t)
 = b_1 \sin(\omega t) (2-4)

となりn=1のときのb_1\sin(\omega t)の式と同じになりました。

ここで
フーリエ級数展開における4式
 f(t) = a_0+  \sum_{n=1}^{\infty}(a_n \cos n\omega t + b_n \sin n\omega t)(1-1)

 a_{0} = \frac{1}{T}\int_0^{T} f(t) dt(1-2)
 a_{n} = \frac{2}{T}\int_0^{T} f(t)\cos n\omega t dt n=1,2,\cdots(1-3)
 b_{n} = \frac{2}{T}\int_0^{T} f(t)\sin n\omega t dt n=1,2,\cdots(1-4)

と比較すると同じになっていることが分かります。

これが射影の考え方です。
波の成分を各々のベクトルに投影する考えです。