Wolfram Computation Meets Knowledge

Discrete-Time Systems to FIR Filter Design: Explore Signal Processing in the New MOOC from Wolfram U

Discrete-Time Systems to FIR Filter Design: Explore Signal Processing in the New MOOC from Wolfram U

Recognizing the importance of the topics and the powerful capabilities in the Wolfram Language for signal processing, we set out to develop a fully interactive course about signal and system processing to make the subject accessible to a wide audience. After sharing and reviewing the course materials, notes and experiences we’ve collected from university undergraduate-level courses over many years, this resulting Wolfram U course represents the collaborative efforts of two principal authors, Mariusz Jankowski and Leila Fuladi, and a team of knowledgeable staff. It is our great pleasure to introduce to you the new, free, interactive course Signals, Systems and Signal Processing, which we hope will help you understand and master this difficult but tremendously important and exciting subject.

The topics discussed here are a mainstay of almost every electrical, computer and biomedical engineering program in the United States and around the world, and have been for at least the last 30 years. They provide a gateway to more advanced engineering topics such as control, communications, digital signal processing, image processing, machine learning and more. They lay at the core of many applications: audio and image processing, data smoothing, analyzing genomic data such as DNA sequences, imaging processes in MRIs, Internet of Things services and other AI-enabled systems. Thus, with its concise but comprehensive content and its many fully worked out examples and exercises, the course should be of great value to current and future engineering students, but also to any engineer, researcher or self-learner wishing to review or master the concepts and methods of signals and systems.

Want to get started? Explore the interactive course by clicking the following image before reading the rest of this blog post.

Go to the free course

Authors’ Perspectives

Mariusz Jankowski has used Mathematica and the Wolfram Language since 1995 and is a developer of image processing functionality in the language. He is a professor of electrical engineering at the University of Southern Maine and has received awards from Ames Laboratory, Wolfram Research and the University of Southern Maine.

It has been my observation, widely shared by many engineering educators, that a signals and systems course is one of the more difficult in a student’s undergraduate experience. Many struggle with the mathematical skills required to deal with the multitude of concepts and methods introduced. Therefore, from the very first days of teaching such a course, over 20 years ago, I have been trying to use the state-of-the-art algebraic, numerical and graphical capabilities of the Wolfram Language to help students overcome some of the barriers they face in mastering its content. Signals, Systems and Signal Processing is therefore a culmination of many years of continued experimentation with the Wolfram Language in developing lecture notes, examples, illustrations, exams and soluzes, all greatly assisted by the feedback, sometimes positive and sometimes not so much 😉, that I have received from hundreds of my students. I hope you will enjoy watching, reading and interacting with the course materials as much as I have enjoyed developing them.

Leila Fuladi is a certified Wolfram instructor and technical content developer with Wolfram Research. She has years of teaching experience at the university undergraduate level in a range of mathematics and engineering subjects.

My experience has been that once a topic is presented to students, it helps with the learning if the students are invited to solve the examples together with the instructor and think about how the idea presented in the lesson can be applied to the example. For each of the examples in this course, the videos typically show two solution methods: using the Wolfram Language and a “step-by-step” method using the traditional paper-and-pencil method of solving problems. To solve the examples on your own, you can use paper and pencil or test your Wolfram Language code in the embedded scratch notebook. I have worked diligently to keep the videos at a manageable length, focusing on the important ideas and examples. You can go over a topic in a short amount of time or learn at your own pace. Signal processing is a very interesting topic where you get to apply simple and beautiful mathematical ideas to solve great problems. I hope you enjoy this course and learn a lot!

Motivation from History

It should not surprise you that the methods and techniques presented in this course bear the names of great mathematicians. For example, Leonhard Euler formally discovered the solution methods for many types of differential equations, in particular a type that electrical engineers use to model electrical circuits and thus allow them to analyze, simulate and design them. Jean Baptiste Fourier initiated the investigation of the Fourier series, which eventually developed into Fourier and harmonic analysis. The Fourier transform, both in continuous time and discrete time, plays a prominent part in this course. Then we have Pierre-Simon Laplace, who introduced a powerful integral transform that is now a fundamental tool in both systems analysis and the design of an important class of electrical, mechanical and chemical systems. Finally, of great importance in the course is the sampling theorem, which carries the names of Harry Nyquist and Claude Shannon, whose work bridged the gap between continuous-time and discrete-time signals and systems and ushered in the age of today’s signal processing.


Students taking this course will get a typical college-level introduction to signals, linear systems and signal processing. As such, both continuous-time and discrete-time signals and systems are included and presented in parallel, taking advantage of the many similarities and, occasionally, important differences. The course begins with elementary signals and operations on signals and continues with a basic introduction to the properties of linear time-invariant systems. This is then followed by time-domain analysis of systems (differential and difference equations, system responses and convolution), frequency-domain analysis (Fourier series, the Fourier transform and the frequency response of linear time-invariant systems) and Laplace and z-transforms. Finally, the all-important topic of sampling is presented. The course concludes with introductions to both analog and digital filter design.

Here’s a sneak peek at some of the course topics (shown in the left-hand column):

Spectral Content of Signals and Systems

It is assumed that students are familiar with college-level algebra, trigonometry, complex variables and basic calculus. A background in electrical circuits is useful, as they are used as common examples of linear time-invariant systems, but, strictly speaking, not necessary. The course is tightly integrated with the Wolfram Language, showing how the many formulas and calculations are implemented. Importantly, in addition to evaluations using the Wolfram Language, the examples and exercises include detailed step-by-step derivations. This is to assist those students who want to see the details of each calculation and help those for whom the primary assessment modality at their university is a paper-and-pencil exam or test.

The next few sections of the blog post will describe the different components of the course in detail.


The course consists of 33 carefully selected lessons and videos. The videos, one for each lesson, range from 7 to 15 minutes in length, and each video is accompanied by a transcript (lesson) notebook displayed on the right-hand side of the screen. Copy and paste Wolfram Language input directly from the transcript notebook to the embedded scratch notebook to try the examples for yourself. Watching the videos and taking the 8 quizzes could take about 10 hours.

Each lesson is approximately 10–20 slides long and begins with a topic overview, some definitions, discussion of key concepts, several example calculations and sometimes an extended application example.

This course begins with an introduction to the basic concepts of the course, signals, systems, sampling and signal processing. The remaining topics cover the typical breadth and depth of an undergraduate-level academic course on the subject and include convolution, differential and difference equations, Fourier series and the Fourier transform, Laplace and z-transforms, sampling and more.

Here is a short version of one of the lessons:

Sample from lesson on convolution

Examples and Applications

There are 120 examples in this course. Some of the examples are designed to help explain the concept discussed in a lesson, while others give an application of the theoretical concept. Throughout the course, there are examples on data processing, audio and image processing, modeling electrical circuits and designing and applying filters.

Most of the examples are solved using the Wolfram Language functionality and also include step-by-step solutions that will go over each calculation by hand to ensure understanding of different concepts and methods. Here is an example from the lesson on continuous-time Fourier series:

Example 1

Obtain the Fourier coefficients of the square wave shown.


This shows the Wolfram Language solution:

The given square wave has period and therefore . This gives the Fourier coefficients:


Here are values of the coefficients for :


And here is the step-by-step solution:

The Fourier series analysis formula:

Substitute and for :


Replace with :

Simplify the last expression to get:



Many of the examples are interactive. The user can vary one or more parameters to easily explore the solution space of a problem. For example, this shows the Fourier transform of a sampled signal as the sampling frequency is varied:

Fourier transform of a sampled signal

The following is a short excerpt of the video for lesson 13 that shows a discrete-time convolution application used to perform data smoothing on average daily temperatures (using WeatherData), which were recorded over a period of approximately four years in Portland, Maine.

Daily temperatures recorded over a period of four years


Each lesson (except for the first) includes a set of 5–11 exercises to review the concepts covered in that lesson. There are, in total, 230 exercises. Here is one of them:

Exercise 3

Determine the z-transform and the ROC for the shifted unit step sequence .


Directly from the BilateralZTransform you get:


This course is designed for independent study, so detailed solutions are also provided for all exercises, as per this example:


Directly from the definition:

With you get


, for

The notebooks with the exercises are interactive, so students can try variations of each problem in the Wolfram Cloud. In particular, they are encouraged to change the signal or system parameters and experience the awesome power of the Wolfram Language.


Each course section concludes with a short, multiple-choice quiz with 10 problems. The quiz problems are at roughly the same level as those covered in the lessons, and a student who reviews the sections thoroughly should have no difficulty in doing well on the quizzes.

Here is one of the quiz problems:

Example quiz problem

Students will receive instant feedback about their responses to quiz questions, and they are encouraged to go back to a section’s lesson notebooks for reference and to review the material as many times as needed.

Course Certificate

Students should watch all the lessons and problem sessions and attempt the quizzes in the recommended sequence because course topics often rely on earlier concepts and techniques. At the end of the course, you can request a certificate of completion. A course certificate is earned after watching all the lessons and passing all the quizzes. It represents proficiency in the fundamentals of signal processing and adds value to your resume or social media profile.

Systems, Signals and System Processing course certificate

A Building Block for Success

Mastering the fundamental concepts of signals, systems and signal processing is essential for students in electrical, computer and biomedical engineering, as well as other fields where signal processing is used. We hope that this course will help you to achieve this mastery and contribute to your success in your chosen field. Any comments regarding the current course as well as suggestions for future courses are welcome and deeply appreciated.


The authors would like to thank Shadi Ashnai, Cassidy Hinkle, Joyce Tracewell, Andy Hunt, Laura Crawford, Mariah Laugesen, Abrita Chakravarty, Matt Coleman and Bob Owens for their dedicated work on various aspects (lessons, exercises, graphics, workflow, etc.) of the course.

Want more help? Register for one of Wolfram U’s Daily Study Groups.


Join the discussion

!Please enter your comment (at least 5 characters).

!Please enter your name.

!Please enter a valid email address.