Data recovery for optical heart rate sensors
First Claim
1. A method for calculating a heart rate, comprising:
- receiving data indicating a timing of a plurality of detected heart beats;
for each of the plurality of detected heart beats, storing data indicating the timing of each heart beat in a first-in-first-out rolling buffer;
determining an average duration between each pair of consecutive heart beats represented by data currently stored in the rolling buffer;
following the receipt of data indicating detection of one of a plurality of new heart beats, determining a duration between the newly detected heart beat and an immediately previously detected heart beat;
comparing the duration between the newly detected heart beat and the immediately previously detected heart beat to the average duration between each pair of consecutive heart beats represented by data currently stored in the rolling buffer;
adjusting the duration between the newly detected heart beat and the immediately previously detected heart beat so that the adjusted duration is closer to the average duration based on the duration between the newly detected heart beat and the immediately previously detected heart beat differing from the average duration by more than a duration threshold;
adding new data indicating an adjusted timing of the newly detected heart beat to the rolling buffer, the adjusted timing based on the adjusted duration;
responsive to determining that a number of data adjustments exceed a counting threshold within a predetermined time period, choosing a repopulation value from data stored within the rolling buffer representative of a most recent duration between consecutive heart beats that did not differ from the average duration by more than the duration threshold; and
repopulating each slot of the rolling buffer with the repopulation value.
2 Assignments
0 Petitions
Accused Products
Abstract
An optical heart rate sensor stores data indicating the timing of heart beats in a first-in-first-out rolling buffer. During a first condition, new data is added to the rolling buffer and adjusted such that a duration preceding a newly detected heart beat is closer to an average duration between each pair of consecutive heart beats stored in the rolling buffer if the duration preceding the newly detected heart beat differs from the average duration by more than a duration threshold. The rolling buffer is cleared when a number of data adjustments over a predetermined time period exceeds a counting threshold. The rolling buffer is then repopulated such that the duration between each pair of consecutive heart beats is equal to a most recent duration between consecutive heart beats that did not differ from the average duration by more than the duration threshold.
-
Citations
19 Claims
-
1. A method for calculating a heart rate, comprising:
-
receiving data indicating a timing of a plurality of detected heart beats; for each of the plurality of detected heart beats, storing data indicating the timing of each heart beat in a first-in-first-out rolling buffer; determining an average duration between each pair of consecutive heart beats represented by data currently stored in the rolling buffer; following the receipt of data indicating detection of one of a plurality of new heart beats, determining a duration between the newly detected heart beat and an immediately previously detected heart beat; comparing the duration between the newly detected heart beat and the immediately previously detected heart beat to the average duration between each pair of consecutive heart beats represented by data currently stored in the rolling buffer; adjusting the duration between the newly detected heart beat and the immediately previously detected heart beat so that the adjusted duration is closer to the average duration based on the duration between the newly detected heart beat and the immediately previously detected heart beat differing from the average duration by more than a duration threshold; adding new data indicating an adjusted timing of the newly detected heart beat to the rolling buffer, the adjusted timing based on the adjusted duration; responsive to determining that a number of data adjustments exceed a counting threshold within a predetermined time period, choosing a repopulation value from data stored within the rolling buffer representative of a most recent duration between consecutive heart beats that did not differ from the average duration by more than the duration threshold; and repopulating each slot of the rolling buffer with the repopulation value. - View Dependent Claims (2, 3, 4, 5, 6)
-
-
7. A method for calculating a heart rate, comprising:
-
detecting a plurality of heart beats based on a measured intensity of light over time; for each detected heart beat, storing data indicating a timing of that heart beat in a first-in-first-out rolling buffer; responsive to determining that the measured intensity of light changes with a frequency greater than a threshold during a first predetermined time period, determining an average duration between each pair of consecutive detected heart beats within a second predetermined time period, at least in part by; determining a duration between each pair of consecutive detected heart beats over the second predetermined time period; comparing each determined duration to a threshold; and determining the average duration based only on determined durations having values below the threshold; clearing the rolling buffer; and repopulating each slot of a first segment of the rolling buffer, the first segment including two or more slots, with a value equal to the average duration between each pair of consecutive detected heart beats within the second predetermined time period. - View Dependent Claims (8, 9, 10, 11)
-
-
12. An optical heart rate system, comprising:
-
an optical source configured to illuminate one or more blood vessels through a user'"'"'s skin; an optical sensor configured to measure illumination reflected off the one or more blood vessels; and a storage machine holding instructions executable by a logic machine to; receive a signal from the optical sensor indicating a measured intensity of light over time; detect a plurality of heart beats based on the signal received from the optical sensor; for each detected heart beat, store data indicating a timing of that heart beat in a first-in-first-out rolling buffer; during a first condition; generating data indicating a timing of a newly detected heart beat relative to an immediately previously detected heart beat based on the signal received from the optical sensor; adjusting the generated data such that the indicated timing between the newly detected heart beat and the immediately previously detected heart beat is closer to an average duration between each pair of consecutive heart beats stored in the rolling buffer if the duration between the newly detected heart beat and the immediately previously detected heart beat differs from the average duration by more than a duration threshold; storing the adjusted generated data in the rolling buffer; and responsive to determining that a number of data adjustments exceed a counting threshold within a predetermined time period, choosing a repopulation value from data stored within the rolling buffer representative of a most recent duration between consecutive heart beats that did not differ from the average duration by more than the duration threshold; and repopulating each slot of the rolling buffer with the repopulation value; and during a second condition; responsive to determining that the measured intensity of light changes with a frequency greater than a threshold over a first predetermined time period, determine an average duration between newly detected heart beats over a second predetermined time period based on a measured intensity of light over the second predetermined time period; and repopulate a first segment of the rolling buffer with a value equal to the average duration between newly detected heart beats over the second predetermined time period. - View Dependent Claims (13, 14, 15, 16, 17, 18, 19)
-
Specification