
Custom irregular pulse sensing system
The beginning
The goal of this project was to design an in-house device capable of noninvasively detecting irregular heartbeats using a pulse transducer. The image on the left demonstrates how a person’s heartbeat can be captured on an oscilloscope. Our objective was to develop a system that could monitor pulse rate in real time and provide meaningful feedback to the user.
We chose a pulse tranducer because it is more accesible and affordable than PPG technology

Image credit: Jeff Allo, Itunu Akariki , Brady Souma, Dr. Chalrles Kim Sp25 @HowardResearchSympsioum
We constructed a Rasberry Pi 3 (RP3) — ADC set up that captured analog voltage signals and converted to digital ones. See set up below.

To facilitate processing and to avoid reading noise, we develop an algorithm that helpes us visualise collected data. We began by experimenting with simple ways to visualize pulse data, starting with text-based plots that used spaces and stars (*) to represent voltage amplitude. As the project progressed, we transitioned to Python’s matplotlib for clearer and more accurate plotting.
Over the following weeks, we focused on identifying key features that could indicate whether a pulse was normal or abnormal. A major challenge was distinguishing secondary peaks from primary ones. We approached this using two criteria:
- Wavelength: secondary peaks typically have shorter wavelengths than primary peaks.
- Amplitude: primary peaks fall within a defined amplitude range.
Building on the software team’s code, we refined the algorithm to more accurately detect peaks and analyze voltage amplitude ratios between pulses. To improve reliability, we added noise filtering to prevent irrelevant peaks from being counted and introduced a “ratio of change” metric to validate results and capture edge cases. We tested the algorithm on data from over 20 participants, and it now reliably identifies individual pulses while distinguishing healthy from unhealthy waveforms based on peak patterns and voltage ratios. See image below.

After Obtaining Reliable waveforms, we intergrated a Neural Network to optimise our classification system. Our Model looks at individual waveforms and uses our previous definition of “verified” and “unverified” waveforms to classify our input.

We hope to conitnue testing this approach and optimising it for faster and more accurate results, comparing with existing technologies..