Time for action – drawing a square wave
We will initialize t
just like in the previous tutorial. We need to sum a number of terms. The higher the number of terms, the more accurate the result; k
=
99
should be sufficient. In order to draw a square wave, follow these steps:
We will start by initializing
t
andk
. Set initial values for the function to0
:t = np.linspace(-np.pi, np.pi, 201) k = np.arange(1, float(sys.argv[1])) k = 2 * k - 1 f = np.zeros_like(t)
This step should be a straightforward application of the
sin
andsum
functions:for i in range(len(t)): f[i] = np.sum(np.sin(k * t[i])/k) f = (4 / np.pi) * f
The code to plot is almost identical to the one in the previous tutorial:
plot(t, f) show()
The resulting square wave generated with
k
=
99
is as follows:
What just happened?
We generated a square wave or, at least, a fair approximation of it, using the sin
function. The input values were assembled with linspace
and the k
values with the arange
function (see squarewave.py
):
import numpy...