CPC A61B 5/7207 (2013.01) [A61B 5/0006 (2013.01); A61B 5/02438 (2013.01); A61B 5/725 (2013.01); A61B 5/726 (2013.01); G16H 40/67 (2018.01); G16H 50/70 (2018.01); A61B 5/0004 (2013.01); A61B 5/0022 (2013.01)] | 30 Claims |
1. A system comprising:
one or more processors; and
one or more memories including program code that is executable by the one or more processors to:
receive heartbeat data generated by a wearable heart-rate sensor worn by a wearer;
execute a noise-reduction process for reducing noise in the heartbeat data, the noise-reduction process involving:
generating a set of filtered heartbeat data by applying a lowpass filter with a cutoff frequency to the heartbeat data;
generating a set of wavelet coefficients by applying a wavelet transform to the set of filtered heartbeat data;
generating a reduced set of wavelet coefficients by applying a threshold to the set of wavelet coefficients, the threshold being configured to reduce noise and motion artifacts represented in the set of wavelet coefficients;
generating an inverse wavelet signal by applying an inverse wavelet transform to the reduced set of wavelet coefficients, wherein each heartbeat in the heartbeat data is represented in the inverse wavelet signal by a P wave, a T wave, and an R wave;
determining instantaneous amplitudes of data points in the inverse wavelet signal, the instantaneous amplitudes being determined using a Hilbert transform;
identifying a set of R-peaks by performing peak detection on the instantaneous amplitudes;
generating a heart rate curve based on the set of R-peaks; and
generating a modified heart rate curve by applying a Hampel filter to the heart rate curve;
determining heart rate data based on the modified heart rate curve; and
output the heart rate data associated with the wearer.
|