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 – filtering a detrended signal


We learned in the previous Time for action section how to detrend a signal. This detrended signal could have a cyclical component. Let's try to visualize this. Some of the steps are a repetition of steps in the previous Time for action section, such as downloading the data and setting up matplotlib objects. These steps are omitted here.

  1. Apply the Fourier transform, giving us the frequency spectrum:

    amps = np.abs(fftpack.fftshift(fftpack.rfft(y)))
  2. Filter out the noise. Let's say, if the magnitude of a frequency component is below 10 percent of the strongest component, throw it out:

    amps[amps < 0.1 * amps.max()] = 0
  3. Transform the filtered signal back to the original domain and plot it together with the detrended signal:

    plt.plot(dates, y, 'o', label="detrended")
    plt.plot(dates, -fftpack.irfft(fftpack.ifftshift(amps)), label="filtered")
  4. Format the x-axis labels as dates and add a legend with extra large size:

    fig.autofmt_xdate()
    plt.legend(prop={'size...