This book provides a description of digital signal processing (DSP) algorithms along with a coverage of compelling modern applications including cellular telephones and MP3 players. The mathematical underpinnings of DSP are accompanied by qualitative descriptions, solved problems, interactive computer simulations, and Java graphics. The presentation of signal processing concepts is enhanced with object-oriented programming examples supported by the universally accessible Java-DSP (J-DSP).