三角波
三角波は、音楽や信号処理でよく使われる基本的な波形の一つで、名前の通り三角形の形をしています。
三角波は直線的に上昇し、最高点に達すると直線的に下降するという特徴を持ちます。
これは、次の特徴を持ちます。
- 周期的: 三角波は一定の周期で繰り返されます。
- 対称性: 上昇部分と下降部分が対称で、鋭い頂点を持ちます。
- 線形変化: 各周期内で直線的に増加し、減少します。
数学的表現
三角波の数学的表現は以下のように定義されます。
$$
\text{tri}(t) = 2 \left| \frac{t}{T} - \left\lfloor \frac{t}{T} + 0.5 \right\rfloor \right|
$$
ここで、$ ( T ) $は周期を表します。
三角波はこの数式により、時間に対して周期的に増減する波形として描かれます。
ソースコード例
三角波をPythonで3Dグラフ化する方法を示します。
1 | import numpy as np |
[実行結果]
ソースコード解説
このPythonソースコードの説明を行います。
1. 必要なライブラリのインポート
1 | import numpy as np |
ここでは、NumPy
、Matplotlib
、および3Dプロットのためのmpl_toolkits.mplot3d
をインポートしています。
NumPy
は数値計算用、Matplotlib
はデータ可視化用のライブラリです。
2. 三角波の定義
1 | def triangle_wave(t, period=1): |
この関数は、指定された周期で三角波を生成します。
数式に基づいて、時間 t
に対する三角波の値を計算します。
period
は波の周期を設定する引数です。
3. データの設定
1 | t = np.linspace(0, 10, 500) |
ここでは、時間軸 t
と空間軸 x
を設定します。
np.linspace
関数は、指定した範囲で等間隔に分割された値を生成します。
np.meshgrid
関数を使用して、2Dグリッドデータ T
と X
を作成し、三角波関数 triangle_wave
を用いて Z
を計算します。
4. 3Dプロットの作成
1 | fig = plt.figure() |
ここでは、3Dプロットを作成します。
fig
は図を生成し、ax
は3Dプロットのための軸を設定します。
ax.plot_surface
は、T
、X
、および Z
を使って表面プロットを作成し、カラーマップ viridis
を適用します。
5. グラフのラベル付け
1 | ax.set_xlabel('Time') |
ここでは、3Dグラフにラベルとタイトルを設定します。
set_xlabel
、set_ylabel
、および set_zlabel
メソッドで各軸にラベルを付け、set_title
メソッドでグラフのタイトルを設定します。
6. グラフの表示
1 | plt.show() |
最後に、plt.show()
を呼び出してグラフを表示します。
これにより、作成した3D三角波グラフが表示されます。
グラフ解説
[実行結果]
1. 時間軸 (Time):
- $( t ) $は時間を表し、三角波の周期的な変化を示します。
- このプロットでは、時間$ ( t ) $が$0$から$10$までの範囲を持ちます。
2. 空間軸 (X):
- $( x ) $は空間を表し、プロットの幅を示します。
- このプロットでは、空間$ ( x ) $が$-5$から$5$までの範囲を持ちます。
3. 振幅 (Amplitude):
- $( z ) $は三角波の振幅を示します。
- 三角波の特徴として、振幅は周期ごとに上下します。
4. 3Dプロット:
plot_surface
関数を使って、時間 $ ( t ) $と空間 $ ( x ) $に対する三角波の振幅を3Dで視覚化します。- カラーマップ
viridis
は、振幅の値に対する色を割り当てます。
この3Dプロットは、時間軸に沿って周期的に変化する三角波を視覚的に表現し、三角波の特性をより直感的に理解するのに役立ちます。