Courses | Study Programs | Software Skills

NOTE
The MMSP lab is moving to the University of Athens, Greece, Department of Informatics and Telecommunications. This site will remain online during the transition, but it will not be maintained. The new web site address will be posted here when construction is completed.

Courses

The Multimedia Signal Processing Laboratory is host to a number of signal processing and multimedia-related courses offered at the Department of Electrical Engineering. In conjunction with other faculty in the Signal Processing and Networking and Communications research areas of the department, as well as several distinguished adjunct faculty members, we offer a comprehensive set of courses for graduate and undergraduate students interested in specializing in signal processing.

The following section provides a list of offered courses, separated in four areas: foundation, advanced, applications, and projects. Bulletin descriptions for these and other Electrical Engineering department courses is provided through the School of Engineering online course listing.

At the end of the list we also discuss suggested course sequences for interested undergraduate and graduate students, as well as necessary software skills for work in multimedia signal processing.

Foundation Courses

These courses are at the undergraduate and introductory graduate level, and cover the fundamental concepts in signals processing.

E3202 Signals and Systems I (X. Wang) [Spring]
Introduction to continuous time signals and systems, Fourier analysis, and Laplace transforms.
E3203 Signals and Systems II (A. Eleftheriadis) [Fall]
A continuation of E3202 covering discrete-time signals and systems, Fourier and Z Transforms, digital filters, and state-space techniques.
E4810 Digital Signal Processing (D. Ellis) [Fall]
Introductory graduate-level course. Including sampling theory, digital filter analysis and design, Fast Fourier Transforms.
 

Advanced Courses

These are theory-oriented courses that address more sophisticated mathematical tools that are part of modern-day signal processing.

E6860 Advanced Digital Signal Processing (-adjunct faculty-) [Spring]
Continuation of E4810, focusing on multirate signal processing, multidimensional signal processsing, short-time Fourier transform, filter banks and wavelets.
E6201 Linear System Theory (A. Elfadel) [Fall]
A thorough treatment of state-space approaches for linear system analysis.
E6711 Stochastic Signals and Noise (P. Jelenkovic) [Fall]
A graduate-level introduction to random processes, in both discrete and continuous time. This course dedicates a substantial amount of time to point processes (more appropriate for networking-related performance analysis work), and somewhat less time to continuous time (Gaussian etc.) processes that are typically used in signal analysis work.
E6717 Information Theory (-adjunct faculty-) [Fall]
A graduate-level introductory course on the foundations of information theory, including entropy, source and channel coding. Requires a solid background in probability and stochastic processes.
E6880 Topics in Signal Processing (A. Eleftheriadis/X. Wang) [Fall][Spring]
A doctoral-level course addressing selected state-of-the-art topics from current signal processing research. The topics change from year to year, reflecting the instructor's own research interests and work. The web site for the Spring 2000 edition, focusing on Media Representation, is available online.

Application Courses

These courses discuss the use of signal processing techniques in various domains: image processing, audio and speech processing, music, video and television, multimedia content analysis and understanding, etc. They typically combine concepts from the fundamental and advanced categories, coupled with very detailed domain-specific knowledge of the characteristics of the signal at hand.

E4830 Digital Image Processing I (S.-F. Chang) [Spring]
Introduction to digital image processing.
E4896 Music Signal Processing (A. Eleftheriadis) [Spring]
A comprehensive coverage of the applications of signal processing for the production and recording of music. Includes detailed analysis of studio equipment (mics, loudspeakers, console mixers, DAW and control surfaces, DSP for audio effects, etc.) as well as some fundamentals of acoustics and psychoacoustics.
E6850 Visual Information Systems (S.-F. Chang) [Fall] on CVN
A graduate-level introduction to state-of-the-art image technologies in advanced visual information systems, such as content-based image databases, video servers, and desktop video editors.
E6820 Speech and Audio Processing and Recognition (D. Ellis) [Spring] on CVN
An advanced course covering pattern recognition, acoustics and auditory perception, as well as application areas that include speech recognition and psychoacoustic-based high-quality compression schemes.
E6885 Design of Multimedia Services (A. Eleftheriadis) [Fall]
A senior graduate level course that examines the design of multimedia services, i.e., services that involve video and/or audio communication possibly combined with graphics, text, and images. The course examines how individual components as well as software development environments are brought together to implement a variety of important services that we all use (or will use) every day: from interactive TV and DVDs to 3rd generation mobile phones.

Project Courses

All of the following courses offer an opportunity to obtain academic credit for project-oriented work, and require prior approval from a supervising faculty member.

E3998 Projects in Electrical Engineering [Fall][Spring]
Independent undergraduate student project involving laboratory work, computer programming, analytical investigation, or engineering design. Up to 3 points of credit.
E4998 Intermediate Projects in Electrical Engineering [Fall]span class="spring">[Spring]
Independent undergraduate or Masters student project involving laboratory work, computer programming, analytical investigation, or engineering design. Up to 3 points of credit.
E6001/E6002 Advanced Projects in Electrical Engineering [Fall][Spring]
Independent advanced graduate-level project involving laboratory work, computer programming, analytical investigation, or engineering design. Up to 6 points of credit.

Study Programs

Note: All students should construct their academic programs in consultation with their advisors. The discussions below are offered as a basic guide.

Undergraduate Students

Undergraduate students typically complete the Signals and Systems I & II series in the fall semester of their senior year. Taking the E4810 Digital Signal Processing course at the same time would involve significant overlap of material. We therefore recommend that students complement their basic Signals and Systems sequence with one of the Applications courses in the spring semester of their senior year. Depending on the student's interest, either E4830 Digital Image Processing or E6820 Speech and Audio Processin and Recognition are appropriate.

Students who are well advanced in their program of study and have room in their senior year schedules can also consider E4810 Digital Signal Processing but also E6860 Advanced Digital Signal Processing (if available).

Masters Students

Masters students should start with E4810, Digital Signal Processing, unless equivalent background has been obtained through undergraduate or other graduate studies. E6711, Stochastic Signals and Noice should also be considered, especially by students who are considering doctoral studies.

In the spring semester, students can then take E6860, Advanced Digital Signal Processing, and at least one applications course. In the fall semester of their second year, students are advised to consider one of the other advanced courses. E6717, Information Theory, is an excellent choice for those interested in compression/communication applications, whereas E6201, Linear System Theory, is appropriate for more traditional subjects in signal processing systems.

Masters students are also advised to also consider a computing/software-related course from the Computer Science department, in order to better prepare for the computer-centered world of modern digital signal processing systems. Appropriate courses that offer significant programming experience are W4118 Operating Systems, E4119 Computer Networks, W4160 Computer Graphics, W4165 Computational Techniques for Pixel Processing, and W4111 Database Systems.

Students interested in pursuing doctoral studies are advised to consider undertaking a faculty-supervised research project in the second or third semester of their study, or during an intervening summer. Such work can be performed for credit under the E6001/E6002, Advanced Projects in Electrical Engineering courses, and can serve as an excellent introduction to the field and the work in the lab, as well as a way for the student and the supervising faculty to develop a working relationship.

Doctoral Students

Doctoral students will typically cover the entire set of courses throughout their tenure in the department. The suggested course sequences involve E4810, Digital Signal Processing, and E6711, Stochastic Signals and Noise, in the very first semester, followed by another advanced course and an applications course in the spring semester. This sequencing allows students to prepare for the Doctoral Qualifying Examination of the Department of Electrical Engineering which are offered every year in January.

As with Masters candidates, students are advised to also consider a computing/software-related course from the Computer Science department, in order to better prepare for the computer-centered world of modern digital signal processing systems. Appropriate courses that offer significant programming experience are W4118 Operating Systems, E4119 Computer Networks, W4160 Computer Graphics, W4165 Computational Techniques for Pixel Processing, and W4111 Database Systems. In addition, doctoral candidates should consider the more theory-oriented course W4231 Analysis of Algorithms.

Depending on the research interests of the doctoral candidate, additional courses from the Computer Science, Industrial Engineering and Operations Research, or Statistics departments may be required. Students are advised to explore lateral areas as much as possible, and -- in preparation for a career in research -- obtain as broad background as possible in computing, optimization techniques, and stochastic processes.

Software Skills

Digital signal processing today is dominated by computers, both as experimentation and analysis tools, but also as actual platforms for deployment. As a result, students must make sure that they are proficient in the "tools of the trade".

In terms of languages, all students should be knowledgeable in C and C++. Java is also useful, but not as important for signal processing work, except for web-based demonstrations. Our lab is also a heavy user of Perl, and all students are encouraged to learn this extremely versatile and useful language.

There are three areas of software tools: DSP-specific, generic programming, and document preparation. The former involves packages that are specifically made to assist engineers in DSP work, whereas the latter address generic needs of application programmers.

DSP Tools

There are several tools that are specifically made to assist signal processing engineers to quickly design, analyze, and optimize their designs. For instructional purposes as well as research, we use Matlab. It is by far the most heavily used program, and its more than 10-year history has resulted in an amazingly rich feature set, as well as support for all major computing platforms.

A multi-user site license is available to lab members on any platform supported by the software.

A student version of the complete Matlab package (with no limitations) is available at a substantially reduced cost. The license applies to both Windows and Linux-based systems.

In the past, Mathematica was also a popular tool, but in signal processing its use (at least in our lab) has been practically eliminated.

Generic Tools

For general software development purposes, students should familiarize themselves with C/C++ and at least one set of development tools.

Microsoft

For those interested in development of software that must use the Windows operating system, Microsoft's Visual Studio is the product of choice. The lab has obtained a group license, so eligible students can obtain their own copy. The bookstore should also offer basic standalone packages at a substantial discount.

GNU/Linux

For those who develop generic command-line programs (on Windows or UNIX), the combination of GNU tools is extremely appealing. Students should familiarize themselves at a minimum with Emacs (editor), gcc (compiler), gdb (debugger), make (project organizer), and autoconf (automatic platform-specific configurator). More information on GNU tools can be found at the Free Software Foundation web site.

Use of GNU tools does not necessarily require use of Linux or other UNIX-like operating systems. Cygnus Support (now part of RedHat) has developed an excellent UNIX-like operating environment that runs in all advaned Windows operating systems. It is called CygWin and is available for free download.

We have found that different tools make sense for different types of projects. As a result, we use extensively both development environments.

Document Preparation

Students who are involved in research projects and anticipate producting original papers for publication in journals or conference proceedings should be aware of special tools that are available for document preparation.

The vast majority of the academic community relies on the TeX family of software tools for preparation of manuscripts, and many times for actual publication. The software is powerful enough to have been used for the production of several books. We typically use the LaTeX version of the software, as well as BibTeX for managing and using bibliographic citations. To find more about TeX visit the CTAN web site (Comprehensive TeX Archive Network). For LaTeX, visit the LaTeX project web site. In addition to UNIX-based version of the TeX tools, we also use the PC-based MiKTeX system.

Another option for document preparation is Microsoft Word. We do not encourage wide use of Word for technical documents due to problems with the software when large documents are involved. In addition, Word becomes difficult to use when editing of mathematical formulas is involved. Although its math capabilities that can be augmented with the use of the optional MathType package (that upgrades the simple Equation Editor), the work is still cumbersome. There is simply nothing as good as LaTeX for technical document editing.

Note that all documents are typically converted to either PostScript or Acrobat PDF format prior to distribution. We use free command line tools (part of the TeX tools) as well as Adobe Acrobat.

All doctoral students are expected to become conversant in LaTeX/BibTex, and - in fact - should be experts in them by the time they graduate.

 

Copyright and Other Notices