Digital Signal Processing

Using MATLAB and Simulink

This three-day intensive course surveys the basics of Digital Signal Processing and shows how productivity tools from The MathWorks can be employed to benefit development work in this area. The course highlights the attributes of the MATLAB programming environment - featuring in particular the block diagram-based behavioural simulation package Simulink - that makes it such a superb vehicle for learning and producing DSP solutions. Its prime aim is to give an accelerated overview of MATLAB's value in enlivening DSP concepts and underpinning central filter design and spectrum calculations, while showing how to employ Simulink to configure, instrument and exercise basic processing systems.

Key code fragments for eliciting useful actions on signals are introduced and immediately reinforced through closely assisted hands-on computer exercises. Course participants create and utilize their own m-files and mdl-files which incisively illustrate core concepts and applications of DSP. More than half the course is devoted to Simulink usage, illustrating  the extreme speed with which useful systems can be assembled, operated and evaluated. Simulink is unsurpassed in its rapid concept-proving ability, and this “quick-look” flair is exhibited early and experienced repeatedly by the course participants.

Several in-depth Laboratory sessions are used as settings to drive home basic programming maneuvers in the context of contained, but realistic, engineering problems relating to common communication and instrumentation tasks. In addition to comprehensive course notes and copies of m-files and mdl-files used in the course, each participant receives a copy of the Prentice-Hall text Mastering MATLAB 5 by D. Hanselman and B. Littlefield.

Who Should Attend?

The course is suitable for newcomers to the MATLAB/Simulink environment. A prior working understanding of basic aspects of DSP would be an advantage.

Course Content

DAY 1: Introducing MATLAB and DSP

Survey of Signal Processing Toolbox features. Depiction and generation of real and complex-valued discrete-time sequences; vector representations and handling. Command Line working; scripts and functions in MATLAB. Tones, pulses, tonebursts and other standard reference signal types. Vectorizing signal generation; employing relational operators and the find command. Closed-form calculation of signal energy and power; contrasts with measurements. Waveshape and energy alteration by several simple processing strategies.

Spectral Analysis: Equations for selected DTFT examples; confirmation through spot frequency measures using scalar products. Numerical Fourier transformation by the FFT; meaningful exhibition of spectra: use of fftshift, ifft and  unwrap. Aliasing and leakage; interplay of record length, spectral resolution and sampling frequency. Bandwidth – both measured and predicted analytically. Use of Data Acquisition Toolbox to obtain real-time experimental data.

Modification of time-domain characteristics (and attendant spectra) by both Linear Time-Invariant (LTIV) and non-LTIV system elements. Use of simple FIR digital filters for low frequency and high frequency enhancement. Group delay of FIR filters. Results of using filter and conv; matching vector sizes in simulations. Difference equations and expressions in z. Polynomials in the z-domain; what can be seen from zero patterns. A simple FIR design method; effects of windowing.

Day 2:  Filter Usage, Simulink and More on Spectra

Frequency-Sampling and equirriple FIR filters. Filters from the Signal Processing Toolbox. Use of feedback, Pole-Zero Patterns and stability. IIR digital filter design in MATLAB. Leaky integrators and resonators.

MATLAB Plucked-String Laboratory.

Introduction to Simulink for stream versus block handling DSP strategies. Observing filtering in Simulink; noise contamination and combatance through filtering and signal averaging. Ease of invoking MATLAB facilities from Simulink. Importance of rendezvous delays, as seen in Single-Sideband modulation. Use of simple recursive filters for accumulation and energy determination, including sliding-window and sum-and-dump realizations. Instantaneous nonlinearities and time-varying devices for spectral transport and signal detection. Acceleration of Simulink signal handling through frame-based processing, with audio demonstrations and experiments.

Zooming in for fine-grain spectral information using czt. Non-uniform spectral data obtained by Vandermonde matrices. Other matrix operations in MATLAB, including matrix visualization and plotting.  Spectograms and moving-window filterbanks for tracking time/frequency dynamics. Tone detection strategies; matched filters in white noise. The Dual-Tone Multiple Frequency signalling system in digital telephony.

Simulink Touchtone Laboratory.

Day 3: Beyond Bare Basics

Model hierarchy and subsystem grouping for complexity management. Library navigation in Simulink; guidelines for granularity in modelling. Use of Enabled subsystems; introduction to block masking and s-functions. Making and exercising an LMS noise canceller in Simulink.

Overview of finite wordlength effects in digital filters. Direct-Form I and II and factorization into second-order sections; use of Quantized Filtering Toolbox and Simulink’s Filter Realization Wizard to structurally modify and exercise IIR filter designs.

Introduction to multi-rate systems. Up-sampling and interfering spectral replications; zero-insertion interpolation and zero-order holding. Linear interpolation and general interpolation filter requirements. Down-sampling and in-band aliasing. Sample rate conversion. Exercises using multi-rate Simulink features.

Consolidation Laboratory.