/img/portrait-square.jpg

Samuel Pröll - Personal homepage

Finding peaks in noisy signals (with Python and JavaScript)

Looking to find peaks in ECG? There is no need to reinvent the wheel. A number of great libraries may provide what you need. Check out my comparison of ECG peak detection libraries in Python. In many signal processing applications, finding peaks is an important part of the pipeline. Peak detection can be a very challenging endeavor, even more so when there is a lot of noise. In this post, I am investigating different ways to find peaks in noisy signals.

Digital filters for live signal processing in Python

Digital filters are commonplace in biosignal processing. And the SciPy library offers a strong digital signal processing (DSP) ecosystem that is exceptionally well documented and easy to use with offline data. However, there is shockingly little material online on DSP in Python for real-time applications. In a live graphical interface (like yarppg), the signal needs to be processed while it is being generated - one sample at a time. In this post, I am showing two different implementations of digital filters, that can be used in a real-time setting.

Applying digital filters in Python

Digital filters are an important tool in signal processing. The SciPy library provides functionality to design and apply different kinds of filters. It is designed for offline use and thus, however, not really suited for real-time applications. In the next post, I am highlighting how live versions of the SciPy filters are implemented in yarppg, a video-based heart rate measurement system. Before looking into the implementations, let’s discuss what digital filters can do and why they are so important in signal processing.