A Digital Signal Processing Primer: With Applications to Digital Audio and Computer Music
Using computer technology to store, change, and manufacture sounds  and pictures -- digital signal processing -- is one of the most  significant achievements of the late twentieth century.  This book  is an informal, and I hope friendly, introduction to the field, emphasizing digital audio and applications to computer music.  It will tell you how DSP works, how to use it, and what the intuition is behind its basic ideas.    By keeping the mathematics simple and selecting topics carefully, I hope to reach a broad audience, including:beginning students of signal processing in engineering and computer science courses;  composers of computer music and others who work with digital sound;  World Wide Web and internet practitioners, who will be needing DSP more and more for multimedia applications;  general readers with a background in science who want an introduction to the key ideas of modern digital signal processing.     We'll start with sine waves. They are found everywhere in our world  and for a good reason: they arise in the very simplest vibrating  physical systems. We'll see, in Chapter 1, that a sine wave can be  viewed as a phasor, a point moving in a circle. This representation  is used throughout the book, and makes it much easier to understand the frequency response of digital filters, aliasing, and other  important frequency-domain concepts.    In the second chapter we'll see how sine waves also arise very naturally in more complicated systems -- vibrating strings and organ pipes, for example -- governed by the fundamental wave  equation. This leads to the cornerstone of signal processing:  the idea that all signals can be expressed as sums of sine waves.  From there we take up sampling and the simplest digital filters, then continue to Fourier series, the FFT algorithm, practical spectrum  measurement, the z-transform, and the basics of the most useful digital filter design algorithms.    The final chapter is a tour of some important applications, including the CD player, FM synthesis, and the phase vocoder.    At several points I return to ideas to develop them more fully. For example, the important problem of aliasing is treated first in  Chapter 3, then in greater depth in Chapter 11. Similarly, digital filtering is reexamined several times with increasing sophistication. This is why you should read this book from the  beginning to the end. Not all books are meant to be read that way,  but this one definitely is.    Some comments about mechanics: All references to figures and  equations refer to the current chapter unless stated otherwise.  Absolutely fundamental results are enclosed in boxes. Each chapter  ends with a Notes section, which includes historical comments and  references to more advanced books and papers, and a set of problems.    Read the problems over, even if you don't work  them the first time around. They aren't drill exercises,  but instead mention generalizations, improvements, and wrinkles you will encounter in practice or in more advanced work. A few problems suggest computer experiments. If you have access to a practical signal-processing laboratory, use it. Hearing is believing.    Many people helped me with this book. First I thank my wife Sandy,  who supports me in all that I do, and who helped me immeasurably by  just being.    For his generous help, both tangible and intangible, I am indebted to Paul Lansky, professor of music and composer at Princeton. The course on computer music that we teach together was the original stimulus for this book.    I am indebted to many others in many ways. Perry Cook, Julius Smith,  Tim Snyder, and Richard Squier read drafts with critical acumen, and  their comments significantly improved the result. And I also thank,  for assistance of various flavors, Steve Beck, Jack Gelfand, Jim Kaiser,  Brian Kernighan, Jim McClellan, Gakushi Nakamura, Matt Norcross,  Chris Pirazzi, John Puterbaugh, Jim Roberts, and Dan Wallach.    Ken Steiglitz  Princeton, N.J.