Anda di halaman 1dari 2

ECS732: Real-Time DSP

Course Information Sheet

Spring 2015 (Semester 2)

Lecturer:
Teaching Assistants:
Schedule and Location:
Office Hours:

Andrew McPherson (andrewm@eecs.qmul.ac.uk)


Giulio Moro (g.moro@qmul.ac.uk)
Mondays and Wednesdays, 4-6pm, Electronics Lab (Eng. 351)
Andrew: Monday 3-4pm (in lab); second hour TBD
Giulio: TBD

Description:
This module will cover a broad class of principles needed to develop real-time digital signal
processing systems, with a particular focus on the constraints of embedded hardware.
Example projects will be drawn mostly from audio, but the principles presented are equally
applicable to other domains. Students will develop projects on a development kit containing
an ARM Cortex-A8 processor, a platform commonly found in mobile devices. This is a
project-based module, with the overall mark determined by two smaller assignments and one
more extensive final project.

Prerequisites:
Digital Signal Processing; Signals and Systems. This module assumes knowledge of DSP
theory and mathematics, including discrete-time signal representations, FIR and IIR filters
and Fourier/z-transforms. Working knowledge of C or C++ is useful, but not required.

Assessment:
This module is assessed entirely through coursework; there are no exams. The breakdown is
as follows (please see the individual project handouts for more details):

20%
30%
50%

Assignment 1: Loudspeaker crossover network


Assignment 2: Interactive drum machine
Final Project: Individual project on a topic of your choice

Objectives and Key Skills:


1. To introduce theory and principles for implementing DSP algorithms in real time.
2. To develop an understanding of whether an application must be executable in real-time
and, if so, what constraints this imposes on the design of the software and the use of the
hardware.
3. To build programming skills for writing real-time DSP software.
4. To work with a specific embedded hardware platform, making effective use of a large body
of manufacturer and community documentation.
5. To introduce testing and debugging techniques on embedded hardware platforms.
6. To encourage independent learning and synthesis of ideas through creative project work.

Reading:
There is no primary textbook, but the following sources may be of use:
Chassaing, R and Reay, D. Digital Signal Processing and Applications with the
TMS320C6713 and TMS320C6416 DSK. Second edition. Wiley: 2011.
Notes: This book was used in the previous years of RTDSP. It uses a different hardware
platform from what we will use in class, but some general concepts may be useful.
Molloy, D. Beaglebone: C/C++ Programming Introduction for ARM Embedded Linux
Development using Eclipse CDT [Video file]. April 2012 (accessed January 2014).
http://www.youtube.com/watch?v=vFv_-ykLppo
Notes: 45-minute introduction to setting up a development environment for Beaglebone.
Oppenheim, A and Schafer, R. Discrete-Time Signal Processing. Third edition. Pearson:
2011.
Notes: Great introduction and reference for digital signal processing. Worth having a
copy even if you are already thoroughly familiar with DSP.
Pirkle, W. Designing audio effect plug-ins in C++ with digital audio signal processing
theory. Taylor & Francis, 2012.
Notes: Covers implementation of digital audio effects as audio plugins. Not specific to
the platform we use in class, but contains useful practical detail.
Valvano, J. Embedded microcomputer systems: real-time interfacing. Third edition. Cengage:
2011.
Notes: Covers various aspects of low-level embedded hardware.
Approximate Schedule:
The module will begin from high-level concepts of real-time DSP and move toward lowerlevel implementation and hardware-specific issues by the end of the semester. An
approximate schedule is as follows; this is subject to change as the semester goes on:
Week 1 (12-14 January):
Week 2 (19-21 January):
Week 3 (26-28 January):

Basics of real-time systems


Latency and computational complexity
Audio I/O on embedded hardware
Assignment 1 (loudspeaker crossover) handed out
Week 4 (2-4 February):
Circular buffers and general-purpose I/O
Week 5 (9-11 February):
More I/O, and threading
Week 6 (16-18 February): Threading
Assignment 1 due (20 February)
Assignment 2 (drum machine) handed out
Week 7 (23-25 February): Handling timing
Week 8 (2-4 March):
Numerical issues and sources of error
Week 9 (9-11 March):
Pulse-width modulation and numerical precision
Assignment 2 due (13 March)
Week 10 (16-18 March):
Floating and fixed point computation
Week 11 (23-25 March):
ARM assembly language
Week 12 (30 Mar.- 1 Apr.): Vector floating-point and ARM NEON
Revision week (approx.):
Final project due

Anda mungkin juga menyukai