This text deals with the construction of algorithms that filter data into useful information. It starts with the basics and goes on to cover advanced topics such as recursive and non-recursive filters (including optimization techniques), wave digital filters and DFTs. A new chapter on the application of digital signal processing offers up-to-date techniques and there are new problems and examples throughout. Other features new to this second edition include chapters on quasi-Newton and minimax optimization algorithms for the design of recursive filters and equalizers, and efficient and robust algorithms for the design of non-recursive filters and differentiators. HLP computer language is now replaced with Pascal.