Heart murmur detection/analysis from phonocardiogram recordings using Matlab/Octave
The sample .wav files are as follows: normal.wav - A normal heartbeat asd.wav - Heart sounds induced by an atrial septal defect (a hole in the wall separating the atria) pda.wav - Heart sounds induced by patent ductus arteriosus (a condition wherein a duct between the aorta and pulmonary artery fails to close after birth) diastolic.wav - Heart sounds induced by a diastolic murmur (leaking in the atrioventricular or semilunar valves)
The heart sound files provided are for individual testing purposes only, and are taken from: https://depts.washington.edu/physdx/heart/demo.html
The pcg_analysis_ function currently does the following:
- Reads the heart sound recording provided (in .wav format)
- Decimates the original recording into a lower sample rate
- acts as both a low-pass filter for noise
- reduces processing time
- Separates the recording into discrete heart sounds
- Applies an 8th order Daubechies continuous wavelet transform on each sound
- Averages the systolic and diastolic transforms
A sample output (normal.wav) is below:
The red and green symbols indicate where the script has determined the beginning of each sound to be.
Projected additional features include:
- Listing of heart rate
- Cleaner analysis of irregular heart sounds
- Vector Support Network or Neural Network to automatically determine the presence of a heart murmur.