Preface
Contents
Preface#
This book is designed to follow the course syllabus of Fundamentals of Digital Signals Theory (I) (MPATE-GE 2599) at New York University. The focus here is on digital signals, meaning discrete time signals as represented in modern computers. Unlike many other books, we do not cover continuous time signals, except insofar as necessary to understand digital sampling. The scope of the book is limited to these general topics:
Signals and systems,
Sampling theory,
Discrete Fourier analysis, and
Discrete-time linear filtering.
While certainly not a comprehensive treatment of signal processing, the topics covered here should provide a solid foundation upon which readers can develop in whichever direction they see fit.
Who is this book for?#
This book is intended for students interested in learning digital signal processing from the ground up, but who may not have much mathematical or engineering training. Because we do not cover the continuous-time case, we will not need differential calculus. In some places we’ll have to gloss over a couple of technical details, but my hope is that students can still gain a sufficiently rich understanding of digital signals with minimal mathematical background.
I’ve tried to make the contents of this book self-contained, and provide supplementary background material in the appendix. That said, we do have to start somewhere, and I generally expect readers to have familiarity with high-school level algebra and geometry.
Why another book?#
Put simply, I wasn’t happy with any of the existing digital signals textbooks that could be used for this class. While many of them are excellent reference books, they often assume a fairly sophisticated technical background, and are aimed at upper-division undergraduate students in engineering programs. After stubbornly trying to make do with existing books, I got frustrated enough to make my own!
Supplemental resources#
This book is meant to be fairly self-contained, but it certainly can’t cover everything. Depending on your background, you may find yourself wanting more foundational material (e.g., on mathematics or programming), or more advanced coverage of certain topics.
Mathematics#
Khan Academy - Algebra is a good resource if you want to brush up on basic algebra.
3Blue1Brown has several excellent videos on topics related to this material:
Programming#
PythonTutor is an excellent resource to learn the basics of program operation.
NumPy for Matlab users is helpful if you have prior experience with Matlab, and want some basic recipes to translate into Python.
The Software Carpentry organization has excellent tutorials for programming in Python:
Further reading#
Mathematics of the Discrete Fourier Transform by Julius O. Smith III.
Understanding Digital Signal Processing (3rd ed.) by Richard Lyons [Lyo04].
Discrete-Time Signal Processing by Alan Oppenheim and Ronald Schafer [Opp10].
Fundamentals of Music Processing by Meinard Müller [Mul15].
Acknowledgments#
I would like to thank several people for providing feedback on early versions of this text: Meinard Müller, Frank Zalkow, Ernesto Valenzuela, Haokun Tian, Katherine Kinnaird, Tanya Clement, and Nancy Rico-Mineros.
This project would not have been possible without the tireless efforts of the open source software developers, especially contributors to the following projects: