This is an advanced course in digital signal processing, with a focus on random signals. It provides a comprehensive treatment of signal processing algorithms for modelling discrete-time signals, designing optimum filters, estimation of the power spectrum of a random process, and implementing adaptive filters. These are important topics that are frequently encountered in professional engineering, and major applications such as digital communication, array processing, and multimedia (speech and audio processing, image processing). Applications using MATLAB.