Time for action – drawing a square wave

We will initialize t just as in the previous section. 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:

  1. We will start by initializing t and k. Set the initial values for the function to 0:
    t = np.linspace(-np.pi, np.pi, 201)
    k = np.arange(1, 99)
    k = 2 * k - 1
    f = np.zeros_like(t)
  2. Compute the function values with the sin() and sum() functions:
    for i, ti in enumerate(t):
       f[i] = np.sum(np.sin(k * ti)/k)
    
    f = (4 / np.pi) * f
  3. The code to plot is almost identical to the one in the previous section:
    plt.plot(t, f)
    plt.title('Square wave')
    plt.grid()
    plt.show()

    The resulting square wave generated ...

Get NumPy : Beginner's Guide - Third Edition now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.