We may earn an affiliate commission when you visit our partners.
Flávio Cavalieri

This course intend to explore filter implementations and proof of concept task, so, we'll not introduce filter theory in the next video lessons.

Focusing in CMSIS DSP library we gonna implement IIR and FIR Filters, exploring Floating and Fixed point formats.

STM32CubeIDE is an integraded development tool you can develop different programs for STM32 microcontrollers

its advanced C or C++ development platform with bunch of peripheral configuration, code generation, compilation

and also debbuging features for all STM32 microcontrollers and microprocessors.

Read more

This course intend to explore filter implementations and proof of concept task, so, we'll not introduce filter theory in the next video lessons.

Focusing in CMSIS DSP library we gonna implement IIR and FIR Filters, exploring Floating and Fixed point formats.

STM32CubeIDE is an integraded development tool you can develop different programs for STM32 microcontrollers

its advanced C or C++ development platform with bunch of peripheral configuration, code generation, compilation

and also debbuging features for all STM32 microcontrollers and microprocessors.

We'll also explore the STM32 CubeMonitor, witch is primarely a monitoring tool for STM32 microcontrollers running

embedded firmware. You can set and watch application variables at runtime for example.

The STM32CubeMonitor can be deeply customized by the user, as it relies on web technologies and more specifically

on the Node-Red. In this course, for example, we gonna create a interface to extract data from a user generated

spreadsheet, copy its content to runtime input variable, process this content, generate output content and store

the values in a output generated spreadsheet. This is all done inside the CubeMonitor interface.

Other important software resourses in order to generate filter coefficients and analyze graphically it's response

is the GNU Octave

GNU Octave is a powerful mathematics-oriented syntax with built-in 2D/3D plotting and visualization tools

its free and compatible with many Matlab scripts.

We gonna also use Excel and Notepad++ in order to manipulate our .csv Spreadsheets.

In the hardware side, we gonna use We also need a ST-Link programmer if we

not choose the STM32F4Discovery development board, as this board comes with a ST-Link/V2 embedded debug tool.

For real time ADC application, as the video lesson 7, it's necessary aditional components as a Osciloscope in order

to analyse input and output signal in time domain. A signal generator, in order to generate the input signal.

And some Dupont Jumpers in order to connect those signals in the proper microcontroller pins.

Enroll now

What's inside

Learning objectives

  • Implementing iir and fir filters using cmsis dsp library on stm32f4 microcontrollers
  • Develop programs using octave in order to generate input signals, calculate filter coefficients, plot signals in time and frequency domain, etc
  • Develop a stm32cubemonitor aplication to connect application variables to spreadsheets, supporting in several proof of concept tasks
  • Implement a realtime filter application using microcontroller adc, dac and dma peripherals

Syllabus

Training Lectures

Introduction – Goals – Hardware and Software resources

Develop a Base Project to support the development of course lectures.This Project will basically connect application variables to spreadsheets, supporting in several proof of concept tasks

Read more

Explore tools, documents and libraries in order to implement and test FIR Filters using floating point format

Implement and test FIR Filters using fixed point format

Explore tools, documents and libraries in order to implement and test IIR Filters using floating point format

Implement and test IIR Filters using fixed point format

Implement a realtime filter application using microcontroller ADC, DAC and DMA peripherals

Traffic lights

Read about what's good
what should give you pause
and possible dealbreakers
Uses the CMSIS DSP library, which is a vendor-independent hardware abstraction layer for ARM Cortex-M processor series, making code more portable
Explores both floating-point and fixed-point implementations of IIR and FIR filters, which is crucial for optimizing performance on microcontrollers
Employs STM32CubeIDE, a common integrated development environment for STM32 microcontrollers, streamlining development and debugging
Leverages STM32CubeMonitor, which allows users to monitor and interact with application variables at runtime, enhancing debugging and analysis
Utilizes GNU Octave, a free and powerful mathematics-oriented syntax with built-in 2D/3D plotting and visualization tools, for filter design and analysis
Requires additional hardware like an oscilloscope and signal generator for real-time ADC applications, which may be an additional cost

Save this course

Create your own learning path. Save this course to your list so you can find it easily later.
Save

Reviews summary

Practical dsp implementation on stm32f4

According to learners, this course offers a highly practical approach to implementing Digital Signal Processing (DSP) on STM32F4 microcontrollers using the CMSIS DSP library. Students appreciate the focus on hands-on application rather than theoretical foundations, which is ideal for embedded engineers. The course covers key tools like STM32CubeIDE, Octave, and STM32CubeMonitor, which many found beneficial. However, a significant number of reviews highlight that the course assumes substantial prior knowledge of both STM32 development and potentially DSP implementation, making it challenging for less experienced individuals. Setting up the necessary software toolchain and acquiring specific hardware (like an oscilloscope or signal generator) for the real-time project were also mentioned as potential hurdles.
Instructor is knowledgeable.
"The instructor clearly knows the subject."
"Instructor is knowledgeable."
Covers CMSIS DSP, CubeIDE, Octave, CubeMonitor.
"Good overview of using CMSIS DSP and CubeIDE. The Octave part was helpful for coefficient generation."
"The CubeMonitor integration was interesting, a unique angle."
"CMSIS DSP library usage is clearly demonstrated. The CubeMonitor part is a bonus."
Excellent for hands-on DSP application.
"Great practical focus. Helped me implement FIR filters in floating point quickly."
"Excellent course for hands-on implementation. The instructor clearly knows the subject. The focus on practical application rather than theory was exactly what I needed."
"Solid practical guide. Covered FIR/IIR implementation well."
"Best course I've found for applying DSP on STM32. Loved the real-time project."
"Exactly what the title promises. Hands-on DSP on STM32F4. CMSIS DSP library usage is clearly demonstrated."
Some parts lack clarity.
"Could use more explanation on fixed-point issues."
"Some parts could be clearer, especially the fixed-point examples."
"The section on CubeMonitor felt a bit rushed."
"The fixed-point section was confusing. Had issues replicating the results."
Specific hardware/complex setup required.
"Setup was complex. Felt lost trying to get the hardware working."
"Couldn't even get the basic project set up. Instructions were unclear for the software toolchain. Frustrating experience."
"Requires dedication and the right hardware..."
"The reliance on specific hardware (oscilloscope, signal generator) for the real-time part is a barrier for some. The software setup was also a bit fiddly."
Requires existing STM32/DSP background.
"The course is okay, but assumes a lot of background in both DSP theory and STM32."
"Very difficult to follow without a strong DSP background, even though it said theory wasn't required. Felt lost trying to get the hardware working."
"Still, the pace is fast, and prerequisites aren't sufficiently stressed. Useful if you already know STM32 well."
"Assumes more prior DSP implementation experience than stated."
"Would benefit from more detailed explanations for beginners in embedded DSP."

Activities

Be better prepared before your course. Deepen your understanding during and after it. Supplement your coursework and achieve mastery of the topics covered in DSP FOR STM32F4 MICROCONTROLLERS with these activities:
Review Digital Signal Processing Fundamentals
Reviewing DSP fundamentals will ensure a solid understanding of the underlying principles behind filter design and implementation on microcontrollers.
Browse courses on Digital Signal Processing
Show steps
  • Review key concepts like sampling theorem, Z-transform, and frequency response.
  • Work through practice problems related to signal analysis and system design.
Brush Up on C/C++ Programming
Practicing C/C++ programming, especially embedded systems concepts, will help you write efficient and effective code for the STM32F4 microcontroller.
Browse courses on C++
Show steps
  • Review pointers, memory management, and data structures in C/C++.
  • Practice writing code for embedded systems, focusing on resource constraints.
Read 'Understanding Digital Signal Processing' by Steven W. Smith
Reading this book will provide a deeper understanding of the theoretical concepts behind digital signal processing, which is essential for effective filter design.
Show steps
  • Read the chapters related to filter design and implementation.
  • Work through the examples and exercises provided in the book.
Four other activities
Expand to see all activities and additional details
Show all seven activities
Follow STM32 CMSIS DSP Library Tutorials
Following tutorials on the CMSIS DSP library will provide practical experience in using the library functions for filter implementation.
Show steps
  • Find tutorials that demonstrate the use of CMSIS DSP library functions for FIR and IIR filter design.
  • Implement the examples provided in the tutorials on the STM32F4Discovery board.
Implement FIR and IIR Filters in STM32CubeIDE
Practicing filter implementation in STM32CubeIDE will solidify your understanding of the CMSIS DSP library and the STM32F4 microcontroller.
Show steps
  • Design FIR and IIR filters using GNU Octave or similar tools.
  • Implement the filters in STM32CubeIDE using the CMSIS DSP library.
  • Test the filters with different input signals and analyze the output.
Read 'Embedded Systems: Shape The World' by Jonathan Valvano and Ramesh Yerraballi
Reading this book will provide a solid foundation in embedded systems concepts, which is essential for working with microcontrollers.
Show steps
  • Read the chapters related to microcontroller architecture and interfacing.
  • Work through the examples and exercises provided in the book.
Develop a Real-Time Audio Filter Application
Developing a real-time audio filter application will provide hands-on experience with ADC, DAC, and DMA peripherals, as well as filter implementation.
Show steps
  • Configure the ADC and DAC peripherals on the STM32F4Discovery board.
  • Implement a DMA-based data transfer mechanism for real-time audio processing.
  • Integrate the FIR or IIR filter implementation into the audio processing pipeline.
  • Test the application with real-time audio signals and analyze the performance.

Career center

Learners who complete DSP FOR STM32F4 MICROCONTROLLERS will develop knowledge and skills that may be useful to these careers:
Embedded Systems Engineer
An Embedded Systems Engineer designs, develops, and tests software and hardware for embedded systems, which are computer systems with a dedicated function within a larger device. This course helps build a strong foundation in implementing digital signal processing filters on STM32F4 microcontrollers using the CMSIS DSP library, which is a crucial skill for an embedded systems engineer who might work on applications that require real-time signal processing. The course's focus on IIR and FIR filter implementation, as well as floating and fixed point formats, directly aligns with the kind of work an embedded systems engineer does. Moreover, experience with tools like STM32CubeIDE and STM32CubeMonitor helps an embedded systems engineer to develop and debug embedded systems, while the course also explores the use of GNU Octave for signal analysis, enhancing proficiency.
Firmware Engineer
A Firmware Engineer specializes in creating low-level software that operates hardware, playing a critical role in the functionality of devices. This course provides skills that are highly relevant to this role. A firmware engineer benefits from the course's focus on implementing IIR and FIR filters on STM32F4 microcontrollers, as this ability is often essential in devices that process signals. By exploring the CMSIS DSP library and working with floating and fixed point formats, the firmware engineer enhances the ability to program hardware for specific functions. Further, the course's use of STM32CubeIDE aligns with the essential tools used by a firmware engineer, and the practical experience working with STM32CubeMonitor allows the firmware engineer to monitor and debug the embedded firmware in runtime. This experience makes the course highly valuable for a firmware engineer.
Signal Processing Engineer
A Signal Processing Engineer designs, develops, and implements algorithms for processing signals, such as audio, video, and sensor data. This course offers direct development in filter implementation, which is central to this role. A signal processing engineer benefits from the course's practical focus on IIR and FIR filter implementation on STM32F4 microcontrollers, especially with the CMSIS DSP library. The course’s exploration of floating and fixed-point formats provides practical knowledge that is essential for embedded implementations. Furthermore, experience with GNU Octave for filter design and signal analysis allows the signal processing engineer to design filters and analyze data, while the course also uses STM32CubeIDE and STM32CubeMonitor to provide a holistic approach to signal system development. This course's hands-on experience in the embedded domain makes it highly relevant to a signal processing engineer.
Control Systems Engineer
A Control Systems Engineer designs and implements automated control systems for various applications. A control systems engineer may benefit from this course that delves into filter implementation on STM32F4 microcontrollers. By implementing IIR and FIR filters using the CMSIS DSP library, a control systems engineer gains valuable practical experience in digital signal processing, a necessary skill for creating robust control systems. The course's exploration of floating and fixed-point formats as well as the use of tools such as STM32CubeIDE, STM32CubeMonitor, and GNU Octave greatly enhance a control systems engineer’s ability to develop and test these system components. This background makes this course greatly useful to a control systems engineer.
Robotics Engineer
A Robotics Engineer designs, develops, and tests robots and robotic systems for a variety of applications, from industrial automation to exploration. This course can prove useful to a robotics engineer. Many robots rely on sensors and signal processing, and this course helps a robotics engineer understand real-time filter implementation on STM32F4 microcontrollers using the CMSIS DSP library. Moreover, the course's focus on IIR and FIR filters, as well as floating and fixed point formats, directly translates to the kind of work a robotics engineer does when dealing with sensor data and control algorithms. The experience with STM32CubeIDE and STM32CubeMonitor provides a roboticist with the tools to implement and debug signal processing modules in their robotic systems, and the use of GNU Octave enhances the ability to analyze signals and develop filters.
Aerospace Engineer
An Aerospace Engineer designs, develops, and tests aircraft, spacecraft, and related systems. Aerospace engineers working on avionics or control systems may find this course helpful. This course provides practical experience in filter implementation on STM32F4 microcontrollers, a skill that is highly relevant when working with digital signal processing in embedded systems used in aerospace. The course's focus on IIR and FIR filters using the CMSIS DSP library along with its exploration of floating and fixed-point formats mirrors the development process in the field of aerospace engineering. The tools covered, such as STM32CubeIDE and STM32CubeMonitor, are applicable to the implementation of embedded systems, while the use of GNU Octave for signal analysis helps the aerospace engineer to build and optimize filters for use in aerospace applications.
Automotive Engineer
An Automotive Engineer works on the design, development, and testing of vehicles and their systems, including electronics and embedded systems. This course may be valuable for an automotive engineer. Many modern cars rely on digital signal processing, and this course provides a foundation in digital signal processing filter implementations on STM32F4 microcontrollers. The course's focus on IIR and FIR filters using the CMSIS DSP library, together with its exploration of floating and fixed-point formats, develops a capability to understand the embedded systems commonly used in automotive applications. The course's practical focus on using STM32CubeIDE and STM32CubeMonitor provides experience in the development of embedded software systems, while the use of GNU Octave enables signal analysis and filter design useful to an automotive engineer.
Hardware Engineer
A Hardware Engineer designs, develops, and tests physical hardware components and systems. This course may be useful for a hardware engineer, particularly those working on systems that involve digital signal processing. A hardware engineer can use this course to build a foundation in implementing IIR and FIR filters on STM32F4 microcontrollers, which is essential for certain embedded hardware. The course's exploration of the CMSIS DSP library and the use of floating and fixed point formats helps the hardware engineer understand the relationship between hardware and signal processing algorithms. Using tools such as STM32CubeIDE and STM32CubeMonitor for development and testing and GNU Octave for signal analysis will aid a hardware engineer in understanding the complete hardware system development process.
Biomedical Engineer
A Biomedical Engineer applies engineering principles to healthcare and medicine, often developing devices and systems. This course may support a biomedical engineer. Many medical devices rely on digital signal processing, and this course provides a great way to learn filter implementations on STM32F4 microcontrollers, especially regarding the use of the CMSIS DSP library. By exploring floating and fixed point formats in the context of IIR and FIR filter implementation, this biomedical engineer can gain insight into embedded systems for signal processing, which is very useful in medical devices. The course also covers using STM32CubeIDE, STM32CubeMonitor, and GNU Octave, providing the necessary development and analysis skills for digital signal processing in medical applications.
Test Engineer
A Test Engineer develops and executes test plans to ensure the quality of products, systems, and software. This course may be helpful for a test engineer working with embedded systems. This course gives practical experience in implementing IIR and FIR filters on STM32F4 microcontrollers. By examining the CMSIS DSP library using floating and fixed-point formats, a test engineer can develop insight into the kind of testing needed in digital signal processing applications. The course's use of STM32CubeIDE and STM32CubeMonitor also provides essential tools for testing the embedded system along with the use of GNU Octave for analyzing and testing signal response, making the course useful to a test engineer focused on systems involving embedded signal processing.
Product Development Engineer
A Product Development Engineer is responsible for the design, development, and launch of new products, often involving hardware and software. This course may be useful for a product development engineer. The course covers the implementation of digital signal processing filters on STM32F4 microcontrollers, which is a key component in many products. The course's specific examination of IIR and FIR filters using the CMSIS DSP library along with the focus on floating and fixed point formats, offers practical development skills in signal processing, while the tools covered, such as STM32CubeIDE, STM32CubeMonitor, and GNU Octave, helps a product development engineer to understand the design, implementation, and testing of a product.
Research Scientist
A Research Scientist conducts research to advance knowledge in specific fields, which may involve embedded systems. This course may help a research scientist. Research involving real-time signal processing will benefit from the course’s practical approach to implementing IIR and FIR filters on STM32F4 microcontrollers using the CMSIS DSP library. The course's focus on floating and fixed-point formats and the use of STM32CubeIDE and STM32CubeMonitor is helpful to a research scientist since the course also provides real time analysis tools. The use of GNU Octave is especially useful for a research scientist because it enhances the ability to analyze signal data and design new filters.
Data Analyst
A Data Analyst collects, processes, and performs statistical analyses in order to interpret data sets. This course may be useful for a data analyst. Although the work of a data analyst is very different than an embedded systems engineer, a data analyst can still benefit from the real time data analysis explored in this course. This course teaches students how to connect data from a microcontroller to a spreadsheet, manipulate this data, and generate output content. This can inform a data analyst as to the process of gathering, cleaning, and transforming data for analysis, and the course's utilization of programs like GNU Octave, Excel, and Notepad++ can be generalized to benefit the work of a data analyst.
Technical Writer
A Technical Writer creates documentation for technical products and systems. This course may be of use to a technical writer. Because this course discusses the practical implementation of IIR and FIR filters using a CMSIS DSP library on a STM32F4 microcontroller, it is helpful for a technical writer who might need to create documentation for embedded systems projects. The course touches on tools such as STM32CubeIDE, STM32CubeMonitor, and GNU Octave, and a technical writer may benefit from this course as it gives a deeper understanding of the embedded system design and development process. By taking this course, a technical writer improves the ability to create accurate and helpful documentation.
IT Support Specialist
An IT Support Specialist provides technical assistance to users of computer systems and software. This course may be helpful for this career field. Although an IT Support Specialist rarely engages with embedded systems, the course explores the use of STM32CubeMonitor, which may also be used in some IT environments, and the practical approach to connecting application variables to spreadsheets may also improve the general technical aptitude of the user. The specific skills developed in the course, such as the use of STM32CubeIDE and GNU Octave may be useful to an IT support specialist by increasing general understanding of coding, software, and hardware. By familiarizing themselves with these tools, an IT Support Specialist may gain a more complete understanding of technical systems.

Reading list

We've selected two books that we think will supplement your learning. Use these to develop background knowledge, enrich your coursework, and gain a deeper understanding of the topics covered in DSP FOR STM32F4 MICROCONTROLLERS.
Provides a comprehensive overview of digital signal processing concepts, making it an excellent reference for understanding the theory behind filter design. It covers topics such as Fourier transforms, filter design techniques, and implementation considerations. This book is particularly useful for those who want to delve deeper into the mathematical foundations of DSP. It is commonly used as a textbook in DSP courses.
Provides a practical introduction to embedded systems, covering topics such as microcontroller architecture, interfacing, and real-time programming. It is particularly useful for understanding the hardware aspects of the STM32F4 microcontroller and how to interface it with external devices. This book is more valuable as additional reading than as a current reference. It is commonly used as a textbook in embedded systems courses.

Share

Help others find this course page by sharing it with your friends and followers:

Similar courses

Similar courses are unavailable at this time. Please try again later.
Our mission

OpenCourser helps millions of learners each year. People visit us to learn workspace skills, ace their exams, and nurture their curiosity.

Our extensive catalog contains over 50,000 courses and twice as many books. Browse by search, by topic, or even by career interests. We'll match you to the right resources quickly.

Find this site helpful? Tell a friend about us.

Affiliate disclosure

We're supported by our community of learners. When you purchase or subscribe to courses and programs or purchase books, we may earn a commission from our partners.

Your purchases help us maintain our catalog and keep our servers humming without ads.

Thank you for supporting OpenCourser.

© 2016 - 2025 OpenCourser