$\text {はじめに}$
この記事はkstm Advent Calendar 2016 17日目の記事です。
http://qiita.com/advent-calendar/2016/kstm
ども、かっちゃんこと、狩野です。普段、kstmのサークル場所を借りて、課題を消化しているだけの狩野です。
私が今、履修している授業の中で、比較的、興味がある科目は信号処理です。ただ、この信号処理、単位習得率が例年低いです。過去五年で平均習得率が五割らしいです。難しいですが頑張りたいです。
k村氏を始め、kstmには有能な(課題について教えてくれる)お兄さんがたくさんいます。優秀なkstmの中で私がブログを書くのは恥ずかしい面もありますが、そこらへんは割り切ってブログを書きたいと思います。
$\text{本題}$
さて、どうでもいい前置きは置いといて本題に入りましょう。
今回は、フーリエ級数展開のイメージについて述べたいと思います。厳密な証明は出来ないしません。
まず、本題のフーリエ級数展開って、なんやねん。
フーリエ級数展開とは、言い換えれば 「どんなに複雑な形をしている周期関数でも、複数の正弦波(sin関数)または余弦波(cos関数)の重ね合わせで表現できる」 ということを示すものであります。
例えば $y_1=sinx$ , $y_2=sin(2x)$ $y_3=sin(3x)$ $-10\leq x\leq10$ の合成波は y4のようになります。
$sinx + sin(2x) +sin(3x) = y_4$
このように、正弦波の足し合わせをすることによって、正弦波以外の、より複雑な波形を作り出すことが出来ます。みたいなイメージです。
フーリエ級数展開=どんな波形でも表現できる関数 の数式は以下です。
$f(t) = \lim_{n\to \infty}\sum_{k=1}^{n}a_k \sin(k\omega t) + \lim_{n\to\infty}\sum_{k=1}^{n}b_k\cos(k\omega t) + b_0$
難しい式ですね。なぜこのような式を導出できたのか。順番に考えていきましょうか。
$\text{1, sin関数のイメージ}$
まず、同じ周波数で振幅が違う二つの波があるとします。例えばsin(x) + 8sin(x)を加算しても、sin(x) + 8sin(x) =9sin(x) となり、振幅しか変化しませんね。
同じ周波数で大きさの違うものを足しても振幅の大きい単純な波にしかなりません。つまり、複雑な波形を正弦波の加算で表現するためには、振幅ではなく、周波数の違う波形を加算する必要があります。よって、正弦波の加算で複雑な波形を作り出した時の式は異なる周波数の成分を加算した以下の式が導出できます。
無限まで加算しているのは、項が無限に続いていても、各項の係数$a_k$を0にしてしまえば、その項は消えます。よって、上式で有限の項までの加算で表現できます。
$P(t) = a_1\sin(1\omega t) +a_2\sin(2\omega t) + a_3\sin(3\omega t) +....$
$=\lim_{n\to\infty}\sum_{k=1}^{n}a_ksin(k\omega t)$
$\text{2.cos関数のイメージ}$
よっしゃ!これで終わりやん!これで、複雑な波形はこの式だけでええやん!って、思っていたら、sin関数の弱点を発見しました。そう、それはsin(0) = 0 なんです。y=0から始まっていない関数はsin波だけで表現できませんね。皆さん、お気づきだと思いますが、0から始まらない関数と言えば、余弦波(cos)です!cos(0)=1ですね。さっきと同じように考えると0以外から始まる複雑な波形は以下の式で表現できます。
$Q(t) = b_1\cos(1\omega t) +b_2\cos(2\omega t) + b_3\cos(3\omega t) +....$
$=\lim_{n\to\infty}\sum_{k=1}^{n}b_k\cos(k\omega t)$
下記のような式とすると、0から始まる波形も、0以外から始まる波形も表現できます。sinとcosが手を組むとめっちゃ守備範囲広いっす!
$R(t)=\lim_{n\to\infty}\sum_{k=1}^{n}a_ksin(k\omega t) + \lim_{n\to\infty}\sum_{k=1}^{n}b_k\cos(k\omega t)$
$\text{3.切片のイメージ}$
だけども、上記式でどんな複雑な波形で表現できるわけでは・・・・・ないのです!
sin関数とcos関数にしても、0を中心に振動する波形ですね。上図のようなx軸から浮いている波形は表現できません。
もう難しい数式を見るのは嫌だと思ったあなた!あともうちょっとの辛抱をお願いします!
ある波形を縦方向にずらす、ということは縦軸方向に一定距離だけ平行移動すれば良い。ということになります。
y=x → y=x +B
中学校数学で学んだy=ax+b の式です。切片とか言うやつ。一定距離を縦軸方向に動かすことは、定数を式に加算するということです。
よって、どんなに複雑な波形でも表せる式は!
$f(t) = \lim_{n\to \infty}\sum_{k=1}^{n}a_k \sin(k\omega t) + \lim_{n\to\infty}\sum_{k=1}^{n}b_k\cos(k\omega t) + b_0$
です!
もちろん今回の記事は、厳密な数学の証明とは、かけ離れています。間違いなどあると思いますので、ご注意ください。
無機質な数式だけだと公式とかも覚えられないですよね。数式のイメージを持っていれば、公式も覚えやすいはずですね。
あと、高校数学の範囲でどんな複雑な波形でも表現できるって、おもしろいですね。それではっ!!!
$\text{参考文献}$
応用解析の基礎 培風館 大野弘道、加藤幹雄、河辺淳、鈴木彰斗
よくわかる信号処理 オーム社 浜田望
これでワカッタ!信号処理入門 オーム社 大伴洋祐