Book Image

NumPy: Beginner's Guide

By : Ivan Idris
Book Image

NumPy: Beginner's Guide

By: Ivan Idris

Overview of this book

Table of Contents (21 chapters)
NumPy Beginner's Guide Third Edition
Credits
About the Author
About the Reviewers
www.PacktPub.com
Preface
NumPy Functions' References
Index

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 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 the linspace() function and the k values with the arange() function...