The principles of signal processing are fundamental to the operation of many everyday devices. This book introduces the basic theory of digital signal processing, with emphasis on real-world applications. Sampling, quantization, the Fourier transform, filters, Bayesian methods and numerical considerations are covered, then developed to illustrate how they are used in audio, image, and video processing and compression, and in communications. The book concludes with methods for the efficient implementation of algorithms in hardware and software. Intuitive arguments rather than mathematical ones are used wherever possible, and links between various signal processing techniques are stressed. The advantages and disadvantages of different approaches are presented in the context of real-world examples, enabling the reader to choose the best solution to a given problem. With over 200 illustrations and over 130 exercises (including solutions), this book will appeal to practitioners working in signal processing, and undergraduate students of electrical and computer engineering.