Draft of Think DSP: a Python-based introduction to digital signal processing
thinkdsp.blogspot.com