Digital Signal Processing/Using MATLAB
Digital Signal Processing is a field of study that is a combination of both mathematical theory, and physical implementation. It makes no sense to consider a digital system without first asking "can this be constructed physically?" MATLAB is an excellent (although expensive) tool for simulating systems, and for creating the ever-valuable "proof of concept". This book will make several references to MATLAB, but don't get confused: This book will not teach how to program in MATLAB. If you would like to learn MATLAB, check out the book Programming:MATLAB.
Alternately, enterprising students might attempt to use GNU Octave, which is a free Open Source alternative to MATLAB. Octave can be obtained from http://www.octave.org . It endeavors to be MATLAB-compatible and largely it is (a lot of MATLAB code can be run using Octave, and vice versa), though some functionality is missing. For more information on Octave, see the Wikibook Octave Programming. (There are other free alternatives to MATLAB, with varying degrees of code compatibility.)