Chapter 9. Differentiation and Integration
This chapter picks up where the previous chapter left off, looking at the relationship between windows in the time domain and filters in the frequency domain.
In particular, we’ll look at the effects of a finite difference window, which approximates differentiation, and the cumulative sum operation, which approximates integration.
In “Smoothing”, we applied a smoothing window to the daily stock price of Facebook and found that a smoothing window in the time domain corresponds to a low-pass filter in the frequency domain.
In this section, we’ll look at daily price changes and see that computing the difference between successive elements, in the time domain, corresponds to a high-pass filter.
Here’s the code to read the data, store it as a wave, and compute its spectrum:
import pandas as pd names = ['date', 'open', 'high', 'low', 'close', 'volume'] df = pd.read_csv('fb.csv', header=0, names=names) ys = df.close.values[::-1] close = thinkdsp.Wave(ys, framerate=1) spectrum = wave.make_spectrum()
This example uses Pandas to read the CSV file; the result is a
df, with columns for the opening price, closing price, and high and low prices. I select the closing prices and save them in a
Wave object. The frame rate is 1 sample per day.
Figure 9-1 shows this time ...