There is more to signal processing than a collection of loosely associated facts and theorems. The successful practice of digital signal processing requires a fundamental understanding of the subject and a programming technique that will serve well for a wide variety of applications. The goal of this book is to help you achieve both of these ends.
What is the best way to learn the fundamentals of digital signal processing? What is the best way to learn a modern G programming style? In both cases, at least for most people, the answer is practice. Reading theoretical books and articles is also important, but without practice these ideas cannot be internalized.
This book is therefore arranged around two projects, which together require an understanding of all the fundamentals of digital signal processing. The first project builds a musical synthesizer, which requires the fundamentals of digital signal processing as well as a structured programming approach. The second project builds on the first by analyzing the digitized waveform of a glockenspiel and a piano, finding a digital filter that best approximates each instrument. The results of the second project can be combined with the first to yield a more convincing musical synthesizer. Finally, the reader is challenged to carry the process further by doing the same for a trumpet and French horn.
The content of this book is driven by these projects. This approach organizes the presentation around a ...