In my freshman year of high school, I developed an algorithm in FreeMat (basically free MATLAB, before I had the luxury of MIT paying for my software) to process stethoscope sounds and accurately detect the presence and type of a patient’s heart murmur. The project was inspired by my younger sister Kate, who was born with a heart condition (a bicuspid aortic valve) which causes her to have a heart murmur.

Simply, the algorithm took the envelope of a pre-recorded heartbeat and isolated the systolic and diastolic sections by finding the local maxima of the filtered envelope. I diagnosed the heartbeat by convolving each section with simple geometric filters that matched profiles of common murmurs. I tested the algorithm against seventy-one prerecorded heart sounds from public websites dedicated to ear-training medical professionals. I identified normal heartbeats with a 100% success rate and murmurs with a 95% success rate. I categorized both systolic and diastolic murmurs with 70% accuracy.

This project was a great first look into the basics of signal processing for me.

Algorithmic Workflow

Step1

Step2

Step3

Step4

Step4

Step4

Step4

Video