› フーリエ級数シミュレーター 戻る
信号処理 / 数学

フーリエ級数シミュレーター

方形波・三角波・のこぎり波を高調波成分N=1〜50で合成。ギブス現象と周波数スペクトルをリアルタイムで観察できる。

パラメータ設定
波形の種類
高調波次数 N
振幅 A
アニメーション速度
ギブス現象: 約 9.0% オーバーシュート
計算結果
次数 N
10
最大振幅
—
RMS 誤差
—
波形合成(リアルタイムアニメーション)

高調波振幅・直流成分
スペクトル
理論・主要公式

$$f(t) = \frac{a_0}{2}+ \sum_{n=1}^{N}\!\left(a_n\cos\frac{2\pi nt}{T}+ b_n\sin\frac{2\pi nt}{T}\right)$$

方形波: $b_n = \tfrac{4A}{n\pi}$(奇数 $n$ のみ)
三角波: $b_n = \tfrac{8A}{n^2\pi^2}\sin\!\tfrac{n\pi}{2}$
のこぎり波: $b_n = -\tfrac{2A}{n\pi}(-1)^n$
半波整流波: $a_0/2=A/\pi$, $b_1=A/2$, $a_n=-2A/[\pi(n^2-1)]$(偶数 $n\ge2$)。その他の係数は0。

周期を1に正規化し、Nは非ゼロ項の数ではなく最大高調波次数です。のこぎり波は0から上昇し、半周期で+Aから−Aへ跳びます。不連続点は左右の平均値です。RMS誤差は1周期の積分をParsevalの関係で計算します。最大振幅は4096点の数値推定で、オーバーシュート率は有限Nでの超過量を跳び幅2Aで割った値です。スペクトルは√(aₙ²+bₙ²)、DCはa₀/2を別表示します。

フーリエ級数シミュレーターとは

🙋
このシミュレーターで「方形波」を選んでNを増やすと、ギザギザが細かくなるけど、角のところはいつも尖ったままですね。これが「ギブス現象」ってやつですか?
🎓
その通り!不連続点(角)の近くで、高調波を何十項も足しても約9%のオーバーシュートが消えない現象だ。上の「高調波次数 N」のスライダーを1から50まで動かしてみて。角の上と下にできる小さな山が、ずっと残るのがわかるよね。
🙋
え、そうなんですか?でも「三角波」に切り替えると、角は滑らかになっていきますね。同じフーリエ級数なのに、なぜ違うんですか?
🎓
良いところに気づいたね。方形波は値がジャンプする「不連続点」があるからギブス現象が起きる。一方、三角波は連続だから、Nを増やすと元の形にスムーズに近づくんだ。右のスペクトル表示を見ると、方形波は高次成分がゆっくり減衰するのも特徴だよ。
🙋
実務では、この「有限項で打ち切る」ことが影響するんですか?例えば、全部の波を足しきれない場合とか。
🎓
まさにそこがCAEでは重要だ。現実の計算では無限項は計算できないから、どこかで打ち切る。この「打ち切り誤差」が数値解析の精度を決める。例えば自動車の振動シミュレーションでFFTを使う時、高周波成分をどこまで考慮するかは、計算時間と精度のトレードオフになるんだ。

よくある質問

Nは最大高調波次数です。増やすと1周期のRMS誤差は減少します。方形波・のこぎり波の跳躍点付近では、超過量は跳び幅2Aの約9%へ漸近し、山の幅が狭まります。三角波は連続で、この値の跳躍によるギブス現象はありません。
横軸は高調波次数nで、Hzではありません。棒の高さは正弦・余弦成分を合わせた振幅√(aₙ²+bₙ²)です。DCは平均値a₀/2の絶対値を別に表示します。方形波は奇数次だけで振幅が1/nに比例します。電力や実測FFTではありません。
跳躍のある周期波形を有限個の滑らかな成分で近似すると、跳躍近傍に振動が残ります。級数は跳躍点そのものでは左右極限の平均に収束します。ここでの約9%は波形振幅Aではなく跳び幅2Aを基準にした漸近値で、有限Nの実測超過率とは区別します。
高調波を打ち切ったときの波形・誤差・スペクトルの違いを学ぶための正規化モデルです。実例ボタンで同じ条件を再現し、一時停止して比較できます。測定データのFFT、実回路のフィルタ性能、帯域、規格適合を評価する機能はありません。

実世界での応用

振動・音響解析:エンジンや車体の振動データをFFT(高速フーリエ変換)で周波数スペクトルに変換し、どの周波数(=どの部品の振動)が支配的かを同定します。騒音の原因特定にも不可欠です。

信号処理・通信:デジタル信号は方形波の集まりとみなせるため、フーリエ解析が基礎理論となります。ノイズ除去やデータ圧縮(JPEG, MP3)にも応用されています。

熱伝導・流体解析:偏微分方程式で記述される非定常熱伝導問題などで、境界条件を周期関数で表現し、フーリエ級数展開を用いて解析解を得る手法が用いられます。

画像処理:画像の濃淡パターンを2次元のフーリエ級数(フーリエ変換)で表現し、エッジ検出や画像圧縮、パターン認識に活用されています。

よくある誤解と注意点

まず、「Nを大きくすればするほど、常に精度が上がる」と思いがちですが、実はそう単純ではありません。確かに滑らかな三角波ではそうですが、方形波のように不連続点を持つ波形では、ギブス現象による約9%のオーバーシュートはNを100にしても1000にしても消えません。これは数学的に証明された収束の性質です。実務では、「どこまで項数を増やすべきか」は、許容できる誤差と計算コストのバランスで決めます。例えば、音声信号の再現で9%の歪みが致命的なら、方形波近似自体が不適切かもしれません。

次に、シミュレーターで見ている「スペクトル」は、あくまで理想的な周期波形のものだという点。実際のCAEデータ(例えば、時間歴の振動データ)をFFTして得るスペクトルは、ノイズや非定常成分が混ざり、こんなに綺麗な離散線にはなりません。例えば、エンジンの振動データをFFTすると、回転数に対応したピークは見えますが、背景にブロードなノイズが必ず存在します。ツールの綺麗なスペクトルをそのまま現実と同一視しないことが重要です。

最後に、係数の減衰速度 $1/n$ や $1/n^2$ が物語る「波形の性質」を理解しましょう 。減衰が遅い(方形波の$1/n$)ほど高周波成分が多く、急峻な変化を含みます。逆に減衰が速い(三角波の$1/n^2$)波形は滑らかです。これは実務でのメッシュ分割や時間刻み設定に直結します。衝撃波のような急峻な現象をシミュレートするには、高速な減衰を仮定できないため、非常に細かいメッシュや高いサンプリング周波数が必要になる、というわけです。

使い方ガイド

  1. 方形波・三角波・のこぎり波・半波整流波から選び、最大高調波次数Nを1~50に設定します。Nは非ゼロ項の数ではありません。
  2. 振幅Aは0.5~2.0です。この図は周期1の正規化モデルで、HzやVを指定する入力はありません。
  3. 再生は波形の位相を移動させます。次数を自動で増やす処理ではありません。速度は0.1~3.0で、一時停止して比較できます。
  4. RMS誤差は1周期全体の差、最大振幅は4096点の推定値です。動画の再生速度を変えても、この2つの値は変わりません。

具体的な計算例

各ボタンはA=1、速度=1、位相=0で一時停止して実例を再現します。

実務での注意点

  1. ここでのスペクトルは振幅であり、電力やFFTの測定結果ではありません。のこぎり波の第n次振幅は2A/(nπ)です。
  2. RMS誤差の低下は、跳躍点付近の最大誤差が同じ割合で低下することを意味しません。不連続点は左右極限の平均へ収束します。
  3. 実回路の帯域、立上り時間、標本化、規格適合はこのモデルの対象外です。用途ごとの必要次数やフィルタ性能を、この図だけで断定できません。

出典:Mathematics for Quantum Physics:フーリエ係数と半波整流波、UC Davis:のこぎり波・Parsevalの演習。出典の位相・周期の定義は、このページの正規化に合わせて読み替えています。

🎬 動画で見る

フーリエ級数|回る円だけで絵を描く機械 #Shorts
フーリエ級数|回る円だけで絵を描く機械 #Shorts
フーリエ合成|サイン波だけで角を作る #Shorts
フーリエ合成|サイン波だけで角を作る #Shorts
回転する円だけで星を描く…フーリエ級数 #Shorts
回転する円だけで星を描く…フーリエ級数 #Shorts