NOBのArduino日記!

NOBのArduino日記!

趣味は車・バイク・自転車・ラジコン・電子工作です。

EXCELで作る正弦波・のこぎり波・矩形波・三角波!(フーリエ編)

イメージ 4
 
ジョゼフ・フーリエ(Joseph Fourier 1768年3月21日 - 1830年5月16日)
 ジョゼフ・フーリエは、1802年1月2日ナポレオンよりフランスのイーゼル県(図1)知事に任命された。幼少時代から続けていた数学の勉強・研究を知事になってからも精力的に続けていた。
 1807年 熱伝導に関する論文を発表した。内容は数学的厳密性に難があったが、熱の解析的理論としてみると、その内容は革新的であった事から学会から注目を集めた。
 その有望さから論文の内容を熱の解析的理論として大幅に加筆・修正したものを1812年に発表、その重要性が認められアカデミー賞を受賞した。
 この論文が元になり解析学におけるフーリエ級数という一分野が確立された。
電気の基礎であるオームの法則フーリエ級数によって証明されるなど、他の分野へ与えた影響も多大なものとなっている。 
イメージ 1
図1:フランス イーゼル県(Wikipediaより引用)

 
  20代の時にフランスのパリとニースに行って来ましたが、やはり歴史有る凄い国ですね。まさか画期的なフーリエ解析を200年前のフランス人が作ったとは!恐れ入ります。※ナポレオンが出てくるとは思いませんでした。
 学生時代にはフーリエ級数ラプラス変換はなんとか勉強したものです。
 当時のイメージとしては難しそうだけどなんかスゴい!でした。
 信号の解析学として見た場合その威力は凄まじく、ほとんど全ての関数が周期関数(三角関数のsin等)の和で表せると言う一見信じがたいものです。
 今回の記事では、この200年前に発見された画期的(現代の私が見ても凄い!)な手法を用いて得られた電気・電子回路ではおなじみの「正弦波・のこぎり波・矩形波(くけいは、方形波とも言う)・三角波」の関数を使って、EXCELで波形を作ってみたいと思います。
※この記事は、どど○波・かめ○め波・波○拳とは一切関係はございません。

1. フーリエ級数の威力!

1.1 実回路の波形
 はじめに電子回路でおなじみのスイッチをON・OFFする動作を例に見てみたいと思います。スイッチングを電圧の波形で表すと図2の様に5Vと0Vが交互に出てきます。(図2はiCircuitで60Hzの波形を作ったものです)
 この様な波形を矩形波(くけいは・または方形波)と言います。
 
イメージ 2
図2:5V電源を60Hzでスイッチング
 
1.2 実回路の矩形波を関数で表す
 いきなり答えですが、フーリエ先生が確立されたフーリエ級数で図2の矩形波を数式で表すと、図3の様な感じになります。(色々すっ飛んですみません)

イメージ 3
図3:矩形波の関数
 
表1:図3関数内の変数補足
項目 内容
f(t) t秒後の電圧
π 円周率(3.14…)
sin 三角関数(図10参照)
ω 周波数(今回は60Hzで計算)
t 経過時間(sec)
 
 内容的には係数を1,3,5,7,9…と変え、微妙に周波数を変えたものをいっぱいつくり、全部足しただけです。
 言うと簡単ですが、コンピュータの無い時代に「とりあえず係数500個分手計算でやってみようか、2波長分ね~」って言われたらシビレますね!
※図4-6以降は全て係数500個、2波長を212点に分け計算しグラフ化した結果です。
 
1.3 矩形波をsin関数「1個」で表すと
 ただのsin波です。
 
イメージ 5
図4-1:基本波形、関数1個目
 
1.4 矩形波sin関数「2個」で表すと
 2つの異なるsin波が干渉(足し合わされる)することで、富士山みたいになりました。
 
イメージ 6
図4-2:関数2個目
 
1.5 矩形波sin関数「3個」で表すと
 それっぽい雰囲気になりました。
 
イメージ 7
図4-3:関数3個目
 
1.6 矩形波sin関数「4個」で表すと
 良い感じになりました。
 
イメージ 8
図4-4:関数4個目
 
1.7 矩形波sin関数「1~33個」連続で表すと
 sin関数の数をどんどん増やすと図4-5の様にsin波から矩形波に近づきます。
イメージ 10
図4-5:関数1~33個連続表示(2018年1月11日追記)
 
1.8 矩形波sin関数「500個」で表すと
 これぞ矩形波!と言う感じになりました。
 
イメージ 9
図4-6:関数500個目
 
 この様に波の干渉を利用してあらゆる波形を作り出すのがフーリエ級数です。

2. Excelで各種波形の作り方

 Excelを使った各種波形の作り方をご紹介します。
 正弦波を図5に、のこぎり波を図6に、矩形波を図7に、三角波を図8に示します。
 図5~8の青いセル中に書かれている数式を、矢印の先のセルに入れ、同じ色の字のセル方向に好きなだけオートフィルします。
 次にA2セルにお好みの周波数を入力し、最後にAB列で散布図を作るだけです。
 
2.1 正弦波!
イメージ 11
図5:Excelで「正弦波」の作り方
 
2.2 のこぎり波!
イメージ 12
図6:Excelで「のこぎり波」の作り方
 
2.3 矩形波
イメージ 13
図7:Excelで「矩形波」の作り方
 
2.4 三角波
イメージ 14
図8:Excelで「三角波」の作り方
※図をクリックすれば拡大出来ます

3. まとめ

 はじめブログに貼るPWMの波形をEXCELで簡単に作れるだろうという事ではじめましたが、なんだかんだで5時間位掛かりました…。(VBAで作った方が早かった)
 今後何かに使えるだろうと言う事で、メモ書きでした。(^_^)v
 
〇2018年1月11日追記
 EXCELの計算式に誤りが見つかりましたので図1~3以外全て差し替えました。
 
表2:正誤表
誤:sin(ω*t)
正:sin(ω*t*2*pi())
 
 EXCELのsin関数は「度」ではなく「ラジアン」計算でした大変失礼致しました。
 にこちゃんさんご指摘下さいまして誠に有難う御座いました。
 

以下補足です
「円の半径に等しい長さの弧の中心に対する角度」と定義されています。
 参考に円をラジアン単位で区切ると図9左円グラフの様になり、ラジアンに円周率パイ(以下π)を掛けた単位で区切ると図9右円グラフの様になります。
 ラジアンと度の関係を表したものを表3に示します。

図9:ラジアンによる円周上の角度(単位:rad)
 
表3:ラジアンと度
ラジアン(rad) 度(°)
0 0
1 57.296…
π 180
360
※π=3.14159…
 
 三角関数(さんかくかんすう、英: trigonometric function)とは、平面三角法における、角の大きさと線分の長さの関係を記述する関数です。
 全部で6種類{sin(正弦),sec(正割),tan(正接),cos(余弦),csc(余割),cot(余接)三角関数が有り、主に使われるsin,cos,tanの詳細は図10,11の通りです。

sinθ=Y/r
cosθ=X/r
tanθ=Y/X

θ=Asin(Y/r)
θ=Acos(X/r)
θ=Atan(Y/X)
 
 
 
 
 
 
 
 
図10:三角関数
 
図11:角度別三角関数戻り値
 
 
イメージ 1 イメージ 3
励みになりますのでよければクリック下さい(^o^)/

↩【NOBのArduino日記!】目次に戻る