Time for action – drawing sawtooth and triangle waves
We will initialize t
just like in the previous section. Again, k
=
99
should be sufficient. In order to draw sawtooth and triangle waves, follow these steps:
- Set initial values for the function to
zero
:t = np.linspace(-np.pi, np.pi, 201) k = np.arange(1, 99) f = np.zeros_like(t)
- Compute the function values with the
sin()
andsum()
functions:for i, ti in enumerate(t): f[i] = np.sum(np.sin(2 * np.pi * k * ti)/k) f = (-2 / np.pi) * f
- It's easy to plot the sawtooth and triangle waves since the value of the triangle wave should be equal to the absolute value of the sawtooth wave. Plot the waves as shown in the following:
plt.plot(t, f, lw=1.0, label='Sawtooth') plt.plot(t, np.abs(f), '--', lw=2.0, label='Triangle') plt.title('Triangle and sawtooth waves') plt.grid() plt.legend(loc='best') plt.show()
In the following figure, the triangle wave is the one with the dashed line: