Digital Signal Processing (DSP) From Ground Up™ on Arm Processors
Practical Signal Processing : DFT, Filter Design, Convolution, IIR, FIR, CMSISDSP, Linear Systems
Do you want to learn practical digital signal processing (dsp) without confusion?
 Understanding the foundations of signal processing without complications: Before going on to implement practical dsp algorithms from scratch, this course teaches you the foundation of signal processing stepbystep. We shall look at key topics in signal processing including:
 Signal statistics and noise Quantization and sampling theorem Analog filter design Performance metrics of the Chebyshev, Butterworth, and Bessel filters Linear systems and their properties. Finite Impulse Response Filters (FIR) Infinite Impulse Response Filters (IIR) Superposition, synthesis, and decomposition. Convolution and its properties Discrete Fourier Transform (DFT) and IDFT
 Developing Digital Signal Processing Algorithms: We shall practically develop the signal processing algorithms we discussed in the theory class. Over here rather than use live signals we shall use some already acquired and generated signals to test our algorithms, to keep the focus on developing the algorithms and testing them, rather than signal acquisition.We shall develop the following algorithms:
Signal statistics algorithms: signal mean, signal standard deviation, signal variance The Convolution algorithm The Running Sum algorithm The Discrete Fourier Transform (DFT) algorithm The Inverse Discrete Fourier Transform (IDFT) algorithm
We shall also implement some of these algorithms using the CMSISDSP library and then compare the dynamic performance of our algorithm to that of the ones provided by CMSISDSP.
 Developing Drivers and Data Structures for Signal Acquisition: To be able to properly acquire signals from the external world and then apply our signal processing algorithms, we first need to develop analogtodigital converter (ADC) drivers for acquiring the signals and appropriate data structures more storing and managing the signal. Over here we shall develop :
A bareMetal ADC driver for acquiring the signal A FirstInFirstOut data structure for storing and managing the signal
 Digital Filter Design and Implementations: We shall learn about the various types of digital filters available and then go on to implement them from scratch. We shall implement:
The Moving Average Filter The Finite Impulse Response (FIR) filter The Infinite Impulse Response (IIR) Filter
We shall also see how to design the filter kernel of the finite impulse response filters using Matlab.
 Practical DSP Application on Live Signal:Over here, we shall apply all that we have learnt to process live signals from our microcontroller’s ADC.
This course is more than just getting the code to work. It will teach you how to ….
Write Practical DSP Algorithms WITHOUT a fancy Engineering Degree
You will be able to understand the foundations of signal processing without the hassle of complex mathematical derivations.
Taken by 3000+ Students with 200+ Reviews
This course is the fully updated version of the 1st edition of the course. The first edition has been taken by over 3000 students with over 290 reviews
Here is what what one student had to say about the course.
"The information covered in this course is exactly what I needed to learn for a new assignment. Both general information about DSP as well as how to implement things on the ARM Cortex M4."
Here is what another student had to say:
"It is exciting to see how MATLAB is used in embedded systems for signal generation and filter design. The explanation here is simple and to the point. Keeps the viewer's interest captured and avoids unnecessary details."
Frequently Asked Questions
Course Curriculum

StartProgramming : Enabling the Floating Point Unit (FPU) (16:49)

StartCourse Resources Download

StartProgramming : Plotting Signals using the Internal Logic Analyzer (9:15)

StartProgramming : UART Driver  Analyzing the Documentation (12:13)

StartProgramming : UART Driver  GPIO Pin Configuration (9:17)

StartProgramming : UART Driver  Protocol Paramters Configuration (9:30)

StartProgramming : UART Driver  Transmission Function (5:24)

StartProgramming : UART Driver  Testing the Driver (8:31)

StartProgramming : UART Driver  Plotting Signals (12:40)

StartProgramming : Integrating the CMSISDSP Library (11:56)

StartProgramming : Testing the CMSISDSP float32_t (17:17)

StartSource Code Download

StartIntroduction to Signals (4:07)

StartThe Signal Mean and Standard Deviation (4:06)

StartProgramming : Developing the Signal Mean Algorithm (7:40)

StartProgramming : Developing the Signal Variance Algortihm (7:11)

StartProgramming : Developing the Signal Standard Deviation Algorithm (3:26)

StartProgramming : Computing the Signal Standard Deviation using CMSISDSP (8:25)
Your Instructor
EmbeddedExpertIO is a community focused on professional embedded systems software programming.
Everyday we try to find the knowledge gaps that exist among current embedded systems developers, then put our minds and years of experience together to create a course to perfectly fill such gaps.
If you are new to embedded systems programming our community provides stepbystep courses that will take you from blinky to build your own rtos .
If you are an embedded systems developer who wants to specialize in some specific aspect of embedded systems programming, we also provide a wide range of specialization courses to help you master different aspects of embedded firmware development.
We look forward to welcoming you to EmbeddedExpertIO