The 2.5V DC offset is first removed from the digital BCG signal obtained from the Arduino. The respiration signal is revealed by going through a digital bandpass filter with a low cutoff frequency of 0.5Hz and a high cutoff frequency of 15Hz, whereas the heartbeat signal is revealed by going through a digital highpass filter with a cutoff frequency of 1Hz. Using our signatured peak finding and partial breath algorithms, respiration and heartbeat rates get calculated correspondingly. All the data is then stored into our GUI and transmitted through Syncthing, which allows physicians and patients to compare new data with previous data in the database.
The respiratory signal is isolated using a multi-stage attenuation and smoothing procedure. The DC offset is removed, then the signal is further attenuated and smoothed to remove high frequency noise. The resulting waveform showing inhalation and exhalation is run through a peak finding algorithm tuned to find inhalation peaks that are 85 samples wide. The location of the peaks of inhalation is useful for counting the number of breaths as required in the calculation of respiratory rate or for detecting respiratory abnormalities such as sleep apnea.
The ballistocardiogram is isolated using a two-step process involving filtering in the frequency and time domain. The signal is first high-pass filtered to remove the DC offset and the respiratory signal. The signal is then filtered in the time domain through smoothing, which uses signal averaging to remove high frequency noise. A peak finding algorithm tuned to find high prominence peaks is used on the resulting signal to locate beats of the heart. The location of the heart beats is then used to calculate biomarkers such as heart rate. Heart rate is calculated using 60 second windows and partial beats are accounted for through addition of the proportion of the border exceeding beat that is within the window boundaries.
We also developed a graphical interface that allows physicians to easily access and process patient data. Using the application, physicians can compare the current recording to previous patient history through summary statistics that give warnings for unusual data or easy to interpret heat maps that show trends across days.
By: Nathan Tang