フーリエ級数
矩形波: $\dfrac{4A}{\pi}\sum_{n=1,3,5...}\dfrac{1}{n}\sin(n\omega t)$三角波: $\dfrac{8A}{\pi^2}\sum_{n=0}^{\infty}\dfrac{(-1)^n}{(2n+1)^2}\sin((2n+1)\omega t)$
のこぎり波: $\dfrac{2A}{\pi}\sum_{n=1}^{\infty}\dfrac{(-1)^{n+1}}{n}\sin(n\omega t)$
正弦波・矩形波・三角波・のこぎり波を最大4成分まで合成。RMS・ピーク・クレストファクター・THD と 512点 DFT スペクトルをリアルタイムに確認できます。
合成波形は、各成分波形の瞬時値を単純に加算することで計算されます。成分は最大4つまで設定可能です。
$$y(t) = \sum_{i=1}^{4}y_i(A_i, f_i, \phi_i, \text{type}_i, t)$$$y(t)$: 時刻 $t$ における合成波形の値
$y_i$: 第 $i$ 成分の波形関数(正弦・矩形・三角・のこぎり)
$A_i$: 第 $i$ 成分の振幅(ピーク値)
$f_i$: 第 $i$ 成分の周波数 (Hz)
$\phi_i$: 第 $i$ 成分の位相 (度)
波形の品質を評価する重要な指標であるRMS(実効値)とTHD(全高調波歪み率)は以下の式で定義されます。
$$V_{\text{rms}}= \sqrt{\frac{1}{T}\int_{0}^{T} [y(t)]^2 dt}$$ $$\text{THD}= \frac{\sqrt{\sum_{n=2}^{\infty} V_n^2}}{V_1}\times 100\%$$$V_{\text{rms}}$: 実効値(発熱効果などに等価な直流値)
$T$: 波形の周期
$V_1$: 基本波(第1高調波)の実効値
$V_n$: 第 $n$ 高調波の実効値
THDが0%に近いほど正弦波に近く、大きいほど歪みが大きい波形です。
オーディオ・楽器合成:シンセサイザーは、まさにこのシミュレーターのように基本波と高調波を合成して、バイオリンやフルートなど様々な楽器の音色を人工的に作り出します。矩形波やのこぎり波は電子音楽でよく使われる特徴的な音です。
電力品質解析:工場のモーターやインバーター制御機器は、電源に高調波歪み(THDの原因)を発生させます。この歪みが大きいと、変圧器の過熱や精密機器の誤動作を引き起こすため、波形を測定・分析して対策することが重要です。
通信信号処理:デジタル通信で用いられる矩形波パルスは、無限の高調波成分を含みます。このままでは周波数帯域が広すぎるため、フィルタで波形を整形(高調波を削る)して、隣接チャネルへの干渉を防ぎます。
振動・騒音解析:エンジンやギアの振動波形を測定し、その周波数スペクトルを分析することで、どの部分(例えば特定の回転数の倍数)から異常振動や騒音が発生しているかを特定し、設計改良に役立てます。
このツールを使い始めるとき、いくつかハマりやすいポイントがあるから気をつけてね。まず「振幅」の解釈だ。正弦波では振幅Aがそのままピーク値だけど、矩形波や三角波では話が違う。例えば、振幅1Vの矩形波のピーク値は1Vだけど、その実効値(RMS)は約1Vになる(理想的な矩形波の場合)。一方、振幅1Vの正弦波の実効値は約0.707Vだ。同じ「振幅1V」設定でも波形の種類で実効値が変わるから、電力やエネルギーを考える時は要注意だよ。
次に「位相」の影響を見落とすこと。位相を0度と180度で変えると、波形が上下反転するのは直感的だけど、90度や270度のずれはもっと微妙な影響を与える。例えば、基本波と3倍高調波を合成する時、位相を変えるだけで合成波形の形(ピークの鋭さや対称性)が大きく変わることがある。音響なら音色のニュアンスが、制御系なら過渡応答が変わってくるんだ。
最後に「周波数スペクトルの解釈」。FFTで出てくるスパイクが、設定した成分の周波数と完全に一致しないことがあるよね。これは周波数分解能の問題だ。例えば、基本周波数が1Hzで分析時間が1秒の場合、分解能は1Hzだから、1.5Hzの成分は1Hzと2Hzの間に広がって表示されてしまう。シミュレーションでは理論値がわかっているから気づきにくいけど、実測データを扱う時はこの「漏れ」現象を常に頭に入れておこう。
この波形合成シミュレーターの背後にある考え方は、実は様々な工学分野の根幹で活躍しているんだ。まず挙げるのは振動工学だ。複雑な機械の振動は、複数の単純な振動モードの合成として理解できる。例えば、自動車のエンジン振動や橋梁の風による振動を解析する時、このツールで学んだ周波数スペクトル分解の考え方がそのまま使える。
画像処理も深く関連しているよ。画像の濃淡パターンを「空間周波数」の異なる波形の重ね合わせと考えると、ノイズ除去(高周波成分カット)や輪郭強調(特定周波数成分の増幅)が、このシミュレーターでフィルターをかける操作と本質的に同じなんだ。JPEG圧縮だって、画像を周波数成分に分解して重要な成分だけを残す技術だ。
さらに制御工学では、システムの応答を周波数領域で評価するボード線図が重要だ。これはシステムに入力した正弦波(基本波)が、どのくらいの振幅で、どのくらい位相がずれて出力されるかを周波数ごとにプロットしたもの。ツールで位相をいじって波形がどう変わるかを体験しておくと、位相遅れがシステムの安定性に与える影響をイメージしやすくなるはずだ。
ここまでできたら、次は「分解」の側面にも挑戦してみよう。このツールは合成がメインだけど、実務では既存の複雑な波形から成分を抽出する「逆の作業」の方が多い。そのための第一歩は、フーリエ級数展開の式の意味を紐解くことだ。ツールで矩形波を作ると奇数倍の高調波が出てくるけど、なぜそうなるのか? それはフーリエ係数を求める積分公式 $$a_n = \frac{2}{T}\int_{0}^{T} f(t) \cos(n\omega t) dt$$ から導かれる必然の結果なんだ。数式を見て怖がらずに、まずは矩形波の式を代入してみると「cosの積分で偶数次が0になる」ことが体感できるよ。
実践的な次のステップとしては、フィルタリングの概念を学ぶのがおすすめだ。合成した波形に、例えば「高周波成分だけをカットするローパスフィルター」をかけるとどうなるか? 矩形波の角が丸まって三角波に近づくだろう? これはオーディオのイコライザーや通信の帯域制限そのものだ。ツールで意図的に高調波を含む波形を作り、頭の中でそれをフィルターにかけた結果を予想する練習をすると、直感が磨かれる。
最終的には、離散的なデータを扱うディジタル信号処理(DSP)への橋渡しを意識しよう。このシミュレーターのFFTは、連続的な理想波形を処理しているが、現実のマイコンでは離散的なサンプル点しか扱えない。その時に生じるエイリアシング(折り返し歪み)や量子化誤差について調べてみると、シミュレーションと実装のギャップが理解できて、より深い学びになるはずだ。