DSP Filtering

The Nucleo STM32F334

The Nucleo STM32F334

As part of my Internship in 2015, I was asked to create a small prototype that could take in two stereo audio signals and output a single stereo audio signal. The prototype was based upon a Nucleo STM32F334 as that was what we had at hand.

The prototype

The prototype

Very quickly I was able to create a prototype that was able to mix the two input stereo signals in a linear way. My next task was to add a filter that can be applied to one of the input stereo signals and then mixed with the other stereo signal. This required me to do research into DSP filters, most notably Finite Impulse Response (FIR) filters.

I was quite lucky that there existed a DSP library for the board that I was working on, so I set about incorporating it into the program. It took a little bit of trial and error to get the functionality to work as I wanted, particularly as I had to run FIR filters on both left and right audio channels completely independently - something I did not realise at first as I thought I could share their resources.

The end result allowed me to apply a low pass filter or high pass filter (that consisted of coefficients that had been hard coded into the program) on demand and the effect was immediately noticeable.

Unfortunately, audio signals are extremely sensitive, and the end result produced more white noise than I would have liked. Shrinking the circuitry marginally helped, but the white noise was still noticeable.

As a prototype it achieved what I wanted in less time than I was given. It gave me an insight into the world of prototyping devices and the world of audio electronics.