Vital signs monitoring via radio reflections
10746852 ยท 2020-08-18
Assignee
Inventors
Cpc classification
G01S13/536
PHYSICS
A61B5/0255
HUMAN NECESSITIES
A61B5/08
HUMAN NECESSITIES
International classification
G01S7/41
PHYSICS
A61B5/0255
HUMAN NECESSITIES
G01S13/536
PHYSICS
Abstract
A method for monitoring periodic motions of one or more subjects uses signal reflections from the subjects. The method includes emitting a transmitted signal from a transmitting antenna and receiving a received signal at one or more receiving antennas. The received signal includes a combination of a number of reflections of the transmitted signal, at least some of which are associated with the subjects. The received signal, including the reflections, is processed to determine an estimate of a fundamental frequency of the periodic motions.
Claims
1. A method for monitoring one or more periodic motions of one or more subjects using signal reflections from the subjects, the method comprising: emitting a transmitted signal comprising repetitions of a transmitted signal pattern from a transmitting antenna; receiving, at one or more receiving antennas, a received signal comprising a combination of a plurality of reflections of the transmitted signal, at least some reflections of the plurality of reflections of the transmitted signal being associated with the one or more subjects; processing the received signal to form time successive patterns of the reflections of the transmitted signal from the one or more subjects, including forming a subset of the plurality of reflections including removing at least some extraneous reflections of the plurality of reflections according to reflection distance; processing the time successive patterns of reflections to form one or more phase signals including, for each reflection of the subset of the plurality of reflections, forming a phase signal representing a variation over time of a phase angle for the reflection of the transmitted signal in the received signal; and processing each phase signal of a subset of the one or more phase signals to determine an estimate of a fundamental frequency of each periodic motion of the one or more periodic motions.
2. The method of claim 1 wherein forming the subset of the reflections includes, for each reflection of the plurality of reflections of the transmitted signal, determining whether the reflection is a static multipath reflection, excluding the reflection from the subset of the reflections if the reflection is a static multipath reflection, and including the reflection in the subset of the reflections if the reflection is not a static multipath reflection.
3. The method of claim 2 wherein determining whether the reflection is a static multipath reflection includes using a time differencing approach.
4. The method of claim 1 further comprising determining the subset of the one or more phase signals including processing each of the one or more phase signals to determine a measure of periodicity of the phase signal and including the phase signal in the subset of the one or more phase signals if the measure of periodicity of the phase signal exceeds a predetermined threshold.
5. The method of claim 1 wherein determining the estimate of the fundamental frequency of each periodic motion of the one or more periodic motions includes, for each periodic motion of the one or more periodic motions, determining a preliminary estimate of the fundamental frequency for the periodic motion and determining the estimate of the fundamental frequency for the periodic motion based on the preliminary estimate and a regression of the phase signal.
6. The method of claim 1 wherein the one or more periodic motions include periodic motions associated with one or more vital signs of a subject.
7. The method of claim 1 wherein the one or more periodic motions includes a periodic motion associated with heart beats of a subject.
8. The method of claim 1 wherein the one or more periodic motions includes a periodic motion associated with a subject breathing.
9. The method of claim 1 wherein the one or more periodic motions includes a periodic motion associated with an interfering movement of a subject.
10. The method of claim 1 wherein the one more periodic motions includes a periodic motion associated with a subject breathing and further includes a periodic motion associated with heart beats of the subject.
11. The method of claim 1 wherein processing each phase signal of the subset of the one or more phase signals to determine an estimate of a fundamental frequency of each periodic motion of the one or more periodic motions includes identifying a plurality of spectral peaks in a frequency domain representation of the phase signal, at least some of the spectral peaks being located at harmonic frequencies of the estimate of the fundamental frequency, and determining the estimate of the fundamental frequency from the identified one or more spectral peaks.
12. The method of claim 11 wherein determining the estimate of the fundamental frequency from the identified one or more spectral peaks includes processing the one or more spectral peaks to determine a plurality of candidate fundamental frequencies for the periodic motion.
13. The method of claim 12 wherein processing the one or more spectral peaks to determine the plurality of candidate fundamental frequencies for the periodic motion includes, for each spectral peak, determining one or more factors of a frequency associated with the spectral peak that are in an expected frequency range of the fundamental frequency for the periodic motion, and including the determined one or more factors in the plurality of candidate fundamental frequencies for the periodic motion.
14. The method of claim 12 further comprising processing the plurality of candidate fundamental frequencies to determine a preliminary estimate of the fundamental frequency for the periodic motion.
15. The method of claim 14 further comprising determining the estimate of the fundamental frequency based on the preliminary estimate of the fundamental frequency and a regression of the phase signal.
16. The method of claim 15 further comprising filtering the phase signal to form a filtered version of the phase signal, including retaining frequency components at the preliminary estimate of the fundamental frequency and frequency components adjacent to the preliminary estimate of the fundamental frequency in the filtered version of the phase signal, and excluding substantially all other frequencies from the filtered version of the phase signal; and determining the estimate of the fundamental frequency of the periodic motion based on a regression of the filtered version of the phase signal.
17. The method of claim 16 wherein determining the estimate of the fundamental frequency of the periodic motion based on a regression of the filtered version of the phase signal includes determining a slope of a phase angle of the filtered version of the phase signal.
18. The method of claim 14 wherein processing the plurality of candidate fundamental frequencies to determine the preliminary estimate of the fundamental frequency includes applying a voting algorithm to the plurality of candidate fundamental frequencies.
19. The method of claim 11 wherein each phase signal of the subset of the one or more phase signals includes a first plurality of spectral peaks related to a periodic motion due to heart beats of the subject and a second plurality of spectral peaks related to a periodic motion due to the subject breathing.
20. The method of claim 11 wherein identifying the plurality of spectral peaks in the frequency domain representation of the phase signal includes applying a normalization algorithm to distinguish the spectral peaks from a noise floor of the frequency domain representation.
21. The method of claim 1 wherein processing the phase signal of the subset of one or more phase signals to determine the estimate of the fundamental frequency of each periodic motion of the one or more periodic motions includes iteratively processing the phase signal.
22. The method of claim 1 wherein at least some of the subjects are humans.
23. The method of claim 1 wherein the subset of the one or more phase signals includes a plurality of phase signals.
24. The method of claim 1 wherein, for each phase signal of the subset of the one or more phase signals, determining the estimate of the fundamental frequency for the periodic motion includes determining a preliminary estimate of the fundamental frequency of the periodic motion; and determining the estimate of the fundamental frequency of the periodic motion based on the preliminary estimate of the fundamental frequency of the periodic motion and a regression of the phase signal.
25. The method of claim 24 wherein determining the preliminary estimate of the fundamental frequency of the periodic motion includes identifying a frequency associated with a largest peak in a spectral representation of the phase signal; and determining the estimate of the fundamental frequency of the periodic motion includes filtering the phase signal to form a filtered version of the phase signal, including retaining frequency components at the preliminary estimate and frequency components adjacent to the preliminary estimate in the filtered version of the phase signal, and excluding substantially all other frequencies from the filtered version of the phase signal, and determining the estimate of the fundamental frequency of the periodic motion based on a regression of the filtered version of the phase signal.
26. The method of claim 25 wherein determining the estimate of the fundamental frequency of the periodic motion based on a regression of the filtered version of the phase signal includes determining a slope of a phase angle of the filtered version of the phase signal.
27. The method of claim 1 wherein one or more of the extraneous reflections correspond to one or more objects in the environment.
28. The method of claim 27 wherein the one or more objects are moving.
29. The method of claim 28 wherein the one or more objects are periodically moving.
30. The method of claim 29 wherein the one or more objects includes a fan.
31. The method of claim 27 wherein the one or more objects are static.
32. The method of claim 28 wherein the one or more objects are vibrating.
33. The method of claim 32 wherein the vibration of the one or more objects is periodic.
34. The method of claim 1 wherein removing extraneous reflections of the plurality of reflections according to reflection distance enables extraction of periodic movements of a plurality of subjects concurrently.
35. The method of claim 1 wherein removing extraneous reflections of the plurality of reflections according to reflection distance enables eliminating reflections form one or more different body parts of a human.
36. The method of claim 35 wherein the one or more different body parts includes a limb.
37. The method of claim 1 wherein removing extraneous reflections of the plurality of reflections according to reflection distance enables eliminating reflections from one or more different objects on a human's body.
38. The method of claim 37 wherein the one or more different objects includes wearable objects including watches, cellular telephones, and jewelry.
39. The method of claim 1 wherein, after being processed, the received signals from various human body parts are combined to obtain an estimate of the fundamental frequencies of the one or more periodic motions with increased accuracy.
40. A computer-implemented system for monitoring one or more periodic motions of one or more subjects using signal reflections from the subjects, the system comprising a processor programmed to perform all the steps of any one of claims 1 to 39.
41. The system of claim 40 further comprising a transmitter for emitting the transmitted signal and a receiver for receiving the received.
42. Software stored on a non-transitory computer-readable medium comprising instructions for causing a processor to perform all the steps of any one of claims 1 to 39.
Description
DESCRIPTION OF DRAWINGS
(1)
(2)
(3)
(4)
(5)
(6)
(7)
(8)
(9)
(10)
DESCRIPTION
1 System Overview
(11) Referring to
(12) In general, the vital signs monitoring system 100 transmits a low power wireless signal into an environment surrounding the system 100 from the transmitting antenna 104. The transmitted signal reflects off of the one or more subjects 102a, 102b (among other objects such as walls and furniture in the environment) and is then received by the receiving antenna 106. The received reflected signal is processed by the signal processing subsystem 108 to determine breathing rate and heart rate analysis results 110 for the one or more subjects 102a, 102b.
(13) The system 100 exploits the fact that characteristics of wireless signals are affected by motion in the environment, including chest movements due to inhaling and exhaling and skin vibrations due to heartbeats. In particular, as the subjects breathe and as their hearts beat, a distance between the antennas of the system 100 and the subjects 102a, 102b (e.g., the chests of the subjects) varies. In some examples, the system 100 monitors the distance between the antennas of the system and the subjects 102a, 102b using time-of-flight (TOF) (also referred to as round-trip time) information derived for the transmitting and receiving antennas 104, 106.
(14) For example, in
(15)
In this case, with a single pair of antennas, the TOF associated with each of the paths 112a, 112b constrains the location of the respective subject to lie on an ellipsoid defined by the three-dimensional coordinates of the transmitting and receiving antennas of the path, and the path distance determined from the TOF. For illustration, a portion of the ellipsoid for each of the paths 112a, 112b is depicted using elliptical lines 114a, 114b.
(16) As is described in greater detail below, any movement associated with two different subjects that lie on different ellipsoids (i.e., two subjects that are at different distances from the antennas) can be isolated and analyzed separately.
(17) As is noted above, for each of the subjects 102a, 102b, the distance of the ellipsoid from the pair of transmitting and receiving antennas varies with to the subject's chest movements due to inhaling and exhaling and skin vibrations due to heartbeats. The varying distance between the antennas 104, 106 and the subject is manifested in the reflected signal as a phase variation in a signal derived from the transmitted and reflected signals over time. Generally, the vital signs monitoring system 100 extracts a signal representative of this phase variation from the transmitted and reflected signals and processes the phase variation signal to determine the vital signs of the one or more subjects.
2 Sin Processing Subsystem
(18) The signal processing subsystem 108 includes a signal generator 116, a controller 118, a frequency shifting module 120, a phase signal extraction module 122, and a phase signal analysis module 124.
(19) The controller 118 controls the signal generator 116 to generate repetitions of a signal pattern that is emitted from the transmitting antenna 104. In the embodiment of
(20) The repetitions of the signal pattern emitted from the transmitting antenna 104 reflect off of the subjects 102a, 102b and other objects in the environment, and are received at the receiving antenna 106. The reflected signal received by receiving antenna 106 is provided to the frequency shifting module 120 along with the transmitted signal generated by the FMCW generator 116. The frequency shifting module 120 frequency shifts (e.g., downconverts or downmixes) the received signal according to the transmitted signal (e.g., by multiplying the signals) and transforms the frequency shifted received signal to a frequency domain representation (e.g., via a Fast Fourier Transform (FFT)) resulting in a frequency domain representation of the frequency shifted received signal, S().sub.i at a discrete set of frequencies, .
(21) The frequency domain representation of the frequency shifted signal, S().sub.i is provided to the phase signal extraction module 122 which processes S().sub.i) to extract N phase signals, .sub.1(t), .sub.2(t), . . . , .sub.N(t). See, for example, the N=2 outputs, .sub.A(t), .sub.B(t) shown in
(22) The one or more phase signals, .sub.1(t), .sub.2(t), . . . , .sub.N(t), are provided to the phase signal analysis module 124 which processes each of the one or more phase signals, .sub.1(t), .sub.2(t), . . . , .sub.N(t), to determine the breathing rate and heart rate analysis results 110.
2.1 Frequency Shifting
(23) Referring to
(24) Referring to
(25) The output of the frequency shifter is subject to a spectral analysis (e.g., a Fourier Transform) to separate the frequency components each associated with a different TOF. In this embodiment, the output of the frequency shifter is sampled and a discrete time Fourier Transform implemented as a Fast Fourier Transform (FFT) is computed for each interval 212. Each complex value of the FFT provides a frequency sample with a frequency resolution f=1/T.sub.sweep where T.sub.sweep is the sweep duration (e.g., 2.5 milliseconds).
(26) Continuing to refer to
2.2 Phase Signal Extraction
(27) Referring to
(28) In general, each FFT output, S().sub.i received by the phase signal extraction module 122 includes one or more areas of concentrated energy. Each individual area of concentrated energy is sometimes referred to as a reflection since corresponds to a reflection in the signal received at the receiving antenna 106. Some reflections are direct, with the path being direct between the reflecting object and the transmitting and receiving antennas. Other reflections exhibit multipath effects in which there are multiple paths from a transmitting antenna to a receiving antenna via a particular reflecting object. Some multipath effects are due to the transmitted signal being reflected off wall, furniture, and other static objects in the environment. These types of multipath effects are referred to as static multipath effects.
(29) The phase signal extraction module 122 includes a static multipath removal module 334, a buffer 333, a phase signal determination module 336, and an aperiodic signal removal module 338.
2.2.1 Static Multipath Removal
(30) In some examples, the FFT output, S().sub.i is first provided to the static multipath removal module 334 along with one or more previously received values 335 of the FFT output (e.g., a value of S() that was received j time intervals, or sweeps, ago: S().sub.i-j). The static multipath removal module 334 processes S().sub.i and the one or more previously received values 335 of S().sub.i to remove static multipath effects using a time differencing approach. The time differencing approach used by the static multipath removal module 334 distinguishes a moving object's reflections from reflections off static objects in the environment, like furniture and walls. In particular, reflections from walls and furniture are much stronger than reflections from a human, especially if the human is behind a wall. Unless these reflections are removed, they would mask the signal coming from the human and prevent sensing her motion. This behavior is called the Flash Effect.
(31) To remove reflections from the static objects (walls, furniture), the static multipath removal module 334 leverages the fact that since these reflectors are static, their distance to the antenna array does not change over time, and therefore their induced frequency shift stays constant over time. For each sweep window, S(cu) the static multipath removal module 334 eliminates the power from the static reflectors by subtracting the (complex) output of S().sub.i in the given sweep from the output of one or more previous sweeps (e.g., S().sub.i-j). This process is called background subtraction because it eliminates all the static reflectors in the background. In some embodiments, j=1 and the FFT output from the immediately previous sweep, S().sub.i-1 is subtracted from the current FFT output S().sub.i. In other examples, j is selected such that a previous FFT output is selected using a small time delay (i.e., 2.5 milliseconds previous), while in other embodiments, a greater time delay may be used (e.g., 12.5 milliseconds, or even over a second, such as 2.5 seconds).
(32) The result of the background subtraction process performed by the static multipath removal module 334 is a static multipath free FFT output, S().sub.i which includes substantially only reflections corresponding to moving objects in the environment.
2.2.2 Phase Signal Extraction
(33) The static multipath free FFT output, S().sub.i is then provided to the buffer 333 which stores a number (i.e., M) of previous static multipath free FFT outputs, S().sub.i, S().sub.i-1, S().sub.i-2, . . . , S().sub.i-M. In some examples, the value of M is chosen such that the buffer 333 represents a predetermined amount of time (e.g., 30 seconds) of the signal received by the receiving antenna 106. In some examples, the buffer 333 is a first-in-first-out (FIFO) buffer that, upon receiving a new result, S().sub.i, pushes the new result S().sub.i into the head of the buffer 333 and evicts an oldest result, S(w).sub.i-M from the end of the buffer 333.
(34) The M static multipath free FFT outputs, S().sub.i, S().sub.i-1, S().sub.i-2, . . . , S().sub.i-M in the buffer 333 are provided to the phase signal determination module 336 that identifies K reflections that are present in (substantially all of) the M static multipath free FFT outputs. See, for example, the K=3 reflections A, B, and C in
(35) In general, each of the K identified reflections is located in the same FFT bin in all of the M static multipath free FFT outputs, S().sub.i, S().sub.i-1, S().sub.i-2, . . . , S().sub.i-M. In some examples, for a k.sup.th reflection of the K identified reflections, the phase signal determination module 336 iterates through the M static multipath free FFT outputs and, for each static multipath free FFT output, determines a phase angle at the FFT bin associated with the k.sup.th reflection. Taken together, the resulting M phase angles for the k.sup.th reflection represent a time progression of the phase for the reflection, or the phase signal, .sub.k(t).
(36) The phase signal for the k.sup.th reflection is related to the distance traveled from the transmitting antenna 104, to the moving object from which the signal reflected, and back to the receiving antenna 106 as follows:
.sub.k(t)=2d.sub.k(t)/
where is the wavelength (e.g., 4.5 cm) of the transmitted signal, and d(t) is the traveled distance from the device to the reflector and back to the device. That is, variations in the distance traveled by the signal due to inhaling, exhaling, and heartbeats can be identified by measuring the resulting variations in the phase of the reflected signal.
2.2.3 Aperiodic Reflection Removal
(37) In some examples, not every reflection that remains after static multipath removal necessarily corresponds to the breathing and heart rate of a subject. For example, certain reflections may correspond to limb motion such as a subject typing, moving their feet, or walking. The aperiodic signal removal module 338 distinguishes between reflections corresponding to breathing and heart rate of a subject and reflections corresponding to other types of movement. To do so, the aperiodic signal removal module 338 exploits the fact that phase signals of reflections corresponding to vital signs are periodic while phase signals of reflections corresponding to other types of movement are generally aperiodic.
(38) To this end, the aperiodic signal removal module 338 receives the K phase signals, .sub.1(t), .sub.2(t), . . . , .sub.K(t) output by the phase signal determination module 336 and processes the K phase signals to remove any of the K phase signals that are aperiodic. The output of the aperiodic signal removal module 338 includes N periodic phase signals, .sub.1(t), .sub.2(t), . . . , .sub.N(t).
(39) In some examples, to identify the N periodic phase signals, the aperiodic signal removal module 338 processes each of the K phase signals to determine a measure of periodicity of the phase signal. If the measured periodicity of a given phase signal is above a predetermined threshold, the aperiodic signal removal module 338 includes the given phase signal in the set of N periodic phase signals, otherwise the given phase signal is not included in the set of N periodic phase signals.
(40) In some examples, to measure the periodicity of a given phase signal, the aperiodic signal removal module 338 computes a Fourier transform (e.g., an FFT) of the phase signal and then evaluates a sharpness of the FFT of the signal. To evaluate the sharpness of the FFT of the phase signal, the aperiodic signal removal module 338 first identifies a peak value of the FFT of the phase signal. If a power associated with the identified peak value is sufficiently greater than (i.e., above the predetermined threshold) an average power at the remaining, non-peak frequencies, then the given phase signal is identified as a periodic signal. Otherwise, the given phase signal is identified as an aperiodic signal. The spectral representations of any phase signals that are identified as being periodic are included in the N periodic phase signals output by the aperiodic signal removal module 338.
(41) In some examples, measuring the periodicity of phase signals as is described above also ensures that time intervals where a subject performs large limb movements are excluded from vital signs analysis. However, time intervals where a subject is performing small movements such as typing on a laptop computer or using a cellular telephone are can still be analyzed for vital signs analysis. In particular, while such small movements may be aperiodic, they do not mask the breathing or the heart rate since their power does not overwhelm the repetitive movements due to the subject's vital signs.
(42) The N periodic phase signals, .sub.1(t), .sub.2(t), . . . , .sub.N(t) are then output from the phase signal extraction module 122. See, for example, the N=2 outputs, .sub.A(t), .sub.B(t) shown in
2.2.4 Example
(43) Referring to
(44) The exemplary FFT output S().sub.i is first provided to the static multipath removal module 334 along with one or more previous values of the exemplary FFT output S().sub.i (e.g., S().sub.i-j). The static multipath removal module 334 uses the background subtraction technique described above to remove any reflections due to static multipath effects from the exemplary FFT output S().sub.i resulting in the static multipath free FFT output, S().sub.i 492. In this example, the static multipath free FFT output, S().sub.i 492 includes only the reflections labeled A, B, and C which correspond to moving objects in the environment.
(45) The static multipath free FFT output, S().sub.i 492 is provided to the buffer 333 which stores the static multipath free FFT output, S().sub.i 492 along with M1 previous outputs of the static multipath removal module 334. The buffered static multipath free FFT outputs, S().sub.i, S().sub.i-1, S().sub.i-2, . . . , S().sub.i-M 494 are provided to the phase signal determination module 336 which extracts a phase signal for each of the reflections in the buffered static multipath free FFT outputs, S().sub.i, S().sub.i-1, S().sub.i-2, . . . , S().sub.i-M 494. Since there are three reflections (i.e., A, B, and C) in the buffered static multipath free FFT outputs 494, output of the phase signal determination module 336 includes three phase signals, .sub.A(t), .sub.B(t), .sub.C(t). A plot 496 of .sub.A(t) for the example of
(46) The three phase signals, .sub.A(t), .sub.B(t), .sub.C(t) are provided to the aperiodic signal removal module 338 which analyzes each of the phase signals to determine whether it is periodic and then outputs only the periodic phase signals. Since, as is noted above, C is an aperiodic signal, the output of the aperiodic signal removal module 338 includes only .sub.A(t), (t).
2.3 Phase Signal Analysis
(47) As is illustrated in
(48) Referring to
(49) In some examples, the phase signal analysis module 124 includes a Fast Fourier Transform (FFT) module 460, a breathing rate estimation module 462, and a heart rate estimation module 463. The N periodic phase signals, .sub.1(t), .sub.2(t), . . . , .sub.N(t) are first provided to the FFT module 460 which efficiently computes a discrete time Fourier transform for each of the N periodic phase signals, resulting in N FFT outputs, .sub.1(), .sub.2(), . . . , .sub.N(). In some examples, a windowing function such as a Hanning windowing function is applied to the phase signal prior to the FFT module 460 calculating the FFT of the phase signal. Application of such a windowing function reduces unwanted leakage of strong frequencies into adjacent bins in the FFT output for the phase signal.
(50) The N FFT outputs, .sub.1(), .sub.2(), . . . , () are provided to the breathing rate estimation module 462 and to the heart rate estimation module 463.
(51) 2.3.1 Breathing Rate Estimation
(52) Referring to
(53) In some examples, the breathing rate estimation module 462 includes a peak detection module 668, a frequency domain filtering module 670, an inverse fast Fourier transform (FFT) module 672, a phase slope estimation module, 674, and a breathing rate estimate calculation module 676.
(54) To process a given FFT output, .sub.m(), the FFT output is first provided to the peak detection module 668 which identifies an FFT bin in the FFT output, .sub.m() with a peak energy value. The identified FFT bin is associated with a frequency that is an initial, coarse estimate of the subject's breathing rate. However, simply choosing a frequency associated with the peak of the FFT output does not provide an accurate estimate of breathing rate since the frequency resolution of the FFT output is 1/window size. If the window size is, for example, 30 seconds, the resolution of the initial estimate of the subject's breathing rate is 0.033 Hz (i.e., 2 breaths/minute). Of course, a finer resolution is desirable.
(55) Since a single dominant frequency exists in the FFT output, .sub.m() (i.e., at the frequency associated with the peak value identified by the peak detection module 668), a finer resolution can be obtained by performing a regression (e.g., a linear regression) on the phase of the complex time-domain signal associated with the FFT output, .sub.m(). To do so, the identified peak FFT bin and the FFT output, .sub.m() are provided to the frequency domain filtering module 670 which filters out all bins of the FFT output, .sub.m() except for the identified peak FFT bin and the two FFT bins adjacent to the identified peak FFT bin. The output of the frequency domain filtering module 670 is a filtered FFT output, .sub.m(). In some examples, the filtering performed by the frequency domain filtering module 670 eliminates noise caused by extraneous and aperiodic movements.
(56) The filtered FFT output, .sub.m() is provided to the inverse FFT module 672 which performs an inverse FFT to obtain a complex time-domain signal, .sub.m(t) for the filtered FFT output, .sub.m(). The complex time-domain signal, .sub.m(t) is then provided to a phase slope estimation module 674 which computes the slope, of the complex time-domain signal, .sub.m(t) as:
slope(.sub.m(t))
(57) The slope of the complex time-domain signal (i.e., slope(.sub.m(t))) is provided to the breathing rate estimate calculation module 676 which determines a fine grained estimated breathing rate 464, in terms of breaths per minute, as:
(58)
where the factor of 60 transforms the frequency from H: (i.e., 1/second) to breaths/minute.
2.3.2 Heart Rate Estimation
(59) Referring to
(60) To understand the operation of the heart rate estimation module 463, it is helpful to understand that a typical breathing rate is in a range of 8-20 breaths/minute and a typical heart rate is in a range of 40-200 beats/minute. Thus, one approach to computing a heart rate estimate for a given one of the FFT outputs, .sub.m() is to simply apply a bandpass filter with a pass band of 40-200 beats/minute to the signal (or to the spectral representation of the signal). However, a challenge in doing so is that the breathing component of the phase signal associated with the FFT output, .sub.m() is typically much stronger than the heart rate component of the phase signal. Furthermore, the breathing component is not a simple sinusoid. Since the breathing component is not a simple sinusoid, it includes a fundamental component at a fundamental frequency, f.sub.breathing and a number of harmonics at harmonic frequencies, 2f.sub.breathing, 3f.sub.breathing, 4f.sub.breathing, and so on.
(61) Some of the harmonics fall into the 40-200 beats/minute frequency band of the heart rate and typically have much higher power than the frequency components related to the heart rate in the phase signal. For this reason, the harmonics of the breathing component of the phase signal can be confused with frequency components related to the heart rate in the phase signal.
(62) To avoid this confusion, the heart rate estimation module 463 leverages the observation that the heart rate component at the fundamental frequency f.sub.heartrate also has harmonics (i.e., at 2f.sub.heartrate, 3f.sub.heartrate, 4f.sub.heartrate, and so on) and that the stronger, low order harmonics of the heart rate component are collocated in frequency ranges with the weaker, high order harmonics of the breathing rate component (since the power of very subsequent harmonic is lower than the previous). Any harmonics present at frequencies above the expected frequency band for the heart rate (e.g., 40-200 beats/minute) with significant power are assumed to be harmonics of the heart rate component and can be used, as is described in detail below, to determine the fundamental frequency of the heart rate component.
(63) For example, for a breathing rate of 15 breaths/minute, the 4th harmonic of the breathing component in the phase signal (which still has significant power) is at 60 breaths/minute and might be confused with the heart rate's fundamental component (e.g., for a heart rate of 75 beats/minute). However, the first harmonic of the heart rate component in the phase signal (i.e., at 150 beats/minute) is near the 9th harmonic of the breathing component which is very low power (since it is a high order harmonic). Hence, the heart rate harmonic (i.e., at 150 beats/minute) can be used to determine the heart rate.
(64) However, another issue arises in that 150 beats/minute is itself a possible human heart rate. For this reason, the heart rate estimation module 463 determines whether the heart rate is 75 beats/minute (i.e., 150 beats/minute is the first harmonic of the heart rate component), if the heart rate is 150 beats/minute (i.e., 150 beats/minutes is the fundamental frequency of the heart rate component), or even if the heart rate is 50 beats/minute (i.e., 150 beats/minute is the third harmonic of the heart rate component).
(65) To do so, the heart rate estimation module 463 also takes into account higher order (e.g., third, fourth, fifth) harmonics of the heart rate component. For example, the heart rate estimation module 463 identifies peaks in frequency bands of the phase signal that include high order harmonics of the heart rate component and uses the identified peaks to determine the heart rate.
(66) To this end, the heart rate estimation module 463 includes a peak enhancement module 778, a peak thresholding module 780, a candidate fundamental frequency identification module 782, a candidate fundamental frequency clustering module 784, and a heart rate estimate selection module 786.
(67) To process a given FFT output, .sub.m(), the FFT output is first provided to the peak enhancement module 778 which enhances any peaks present in the power spectrum of the FFT output, .sub.m() in comparison to any noise present in the FFT bins surrounding the peaks. In some examples, the peak enhancement module 778 replaces the power in each FFT bin of the FFT output, .sub.m() with a value representing the signal-to-noise ratio (SNR) of the bin with respect to its neighboring FFT bins. For example, the value of each FFT bin in the FFT output, .sub.m() is replaced as follows:
(68)
where adjacentFFT_bins is a range of bins (e.g., 10, 20, 50 bins) on each side of a bin of interest, FFT_bin.
(69) The output of the peak enhancement module 778 is a peak enhanced FFT output, .sub.m(). The peak enhanced FFT output, .sub.m() is provided to the peak thresholding module 780 which processes the peak enhanced FFT output to identify peaks, P.sub.1, P.sub.2, . . . , P.sub.Y in the peak enhanced FFT output that are located in a frequency range above the expected fundamental frequency range of the heart rate component (e.g., above 200 beats/minute) and that exceed a predefined SNR threshold. See, for example, P.sub.1, P.sub.2, . . . , P.sub.5 in
(70) The identified peaks, P.sub.1, P.sub.2, . . . , P.sub.Y are provided to the candidate fundamental frequency identification module 782 which, for each of the identified peaks, if the frequency associated with the peak falls within an integer multiple of the 40 to 200 beats/minute frequency range for the heart rate component, divides the frequency associated with the peak by the integer multiple and adds the result of the division as a candidate for the heart rate component fundamental frequency. For example, for an exemplary peak associated with a frequency of 220 beats/minute, the frequency falls within the frequency range of [2*40 to 2*200], [3*40 to 3*200], and [4*40 to 4*200]. As a result, 110 beats/minute (i.e., 220 beats/minute/2), 73.3 beats/minute (i.e., 220 beats/minute/3), and 55 beats/minute (i.e., 220 beats/minute/4) are added as candidates for the heart rate component fundamental frequency. The output of the candidate fundamental frequency identification module 782 is a set of X candidate fundamental frequencies for the heart rate component, C.sub.1, C.sub.2, . . . , C.sub.X the set including the identified peaks and all candidates determined by the candidate fundamental frequency identification module 782
(71) The set of X candidate fundamental frequencies, C.sub.1, C.sub.2, . . . , C.sub.X is provided to the candidate fundamental frequency selection module 784 which sorts the set of candidate fundamental frequencies by frequency. A window (e.g., a rectangular window with a width of 0.8*X) is then slid along the sorted set of candidate fundamental frequencies. For each position of the window as it slides along the sorted set of candidate fundamental frequencies, a number of candidate fundamental frequencies (sometimes referred to as a ich sorts the set of candidate fundamental frequea radius of the frequencies in the cluster is computed as:
radius=f.sub.maxf.sub.min
where f.sub.max is the candidate fundamental frequency with the highest frequency in the cluster and f.sub.min is the candidate fundamental frequency with the lowest frequency in the cluster. In some examples, the radius is an indication of how concentrated a set of candidate fundamental frequencies in the cluster are. In general, a set of candidate fundamental frequencies in a cluster with a low radius is considered to be better than a set of candidate fundamental frequencies in a cluster with a high radius.
(72) In some examples, each cluster and its associated radius, L.sub.1R.sub.1, L.sub.2R.sub.2, . . . , L.sub.ZR.sub.Z is passed to the heart rate estimate selection module 786 which processes the clusters and their associated radii to determine the estimated heart rate for the m.sup.th phase signal. The heart rate estimate selection module 786 selects the cluster with the lowest radius and chooses the median frequency in the cluster as the estimated heart rate 464. In some examples, if two or more clusters have the same lowest radius, the heart rate estimate selection module 786 selects the cluster of the two or more clusters with the highest average frequency since the clusters with lower average frequencies are associated with sub-harmonics of the heart rate fundamental frequency.
(73) In some examples, the heart rate estimate selection module 786 computes a confidence ratio for the selected cluster as a ratio between the radius of the selected cluster and the radius of a next best cluster (i.e., a cluster with a radius closest to the radius of the selected cluster. The heart rate estimate selection 786 stores the estimated heart rate and its confidence ratio for later use. Then the heart rate estimation module then 463 lowers the signal to noise ratio threshold used by the peak thresholding module 780 and re-processes the peak enhanced FFT output, .sub.m() to determine another estimated heart rate and confidence ratio. This process repeats until a predefined minimum signal to noise ratio is reached or until a predefined confidence ratio is reached.
(74) Once the predefined minimum signal to noise ratio or the predefined confidence ratio is reached, the estimated heart rate with the highest confidence ratio is selected as the estimated heart rate for the FFT output, .sub.m(). In some examples, the estimated heart rate 464 is output from the heart rate estimation module 463.
(75) In other examples, the selected estimated heart rate is treated as a coarse estimate of the fundamental frequency of the heart rate and further processing is used to determine a fine-grained estimate from the coarse estimate.
(76) In particular, as was the case above with the breathing rate, a finer resolution estimate of the fundamental frequency of the heart rate can be obtained by performing a regression (e.g., a linear regression) on the phase of the complex time-domain signal associated with the FFT output, .sub.m(). To do so, the FFT bin associated with the identified coarse fundamental frequency estimate and the FFT output, .sub.m() are provided to the frequency domain filtering module (not shown) which filters out all bins of the FFT output, .sub.m() except for the identified FFT bin and the two FFT bins adjacent to the identified FFT bin. The output of the frequency domain filtering module is a filtered FFT output, .sub.m(). In some examples, the filtering performed by the frequency domain filtering module eliminates noise caused by extraneous and aperiodic movements.
(77) The filtered FFT output, .sub.m() is provided to an inverse FFT module (not shown) which performs an inverse FFT to obtain a complex time-domain signal, .sub.m(t) for the filtered FFT output, .sub.m(). The complex time-domain signal, .sub.m(t) is then provided to a phase slope estimation module (not shown) which computes the slope, of the complex time-domain signal, .sub.m(t) as:
slope(.sub.m(t))
(78) The slope of the complex time-domain signal (i.e., slope(.sub.m(t))) is used to determine a fine grained estimated heart rate, in terms of beats per minute, as:
(79)
where the factor of 60 transforms the frequency from H: (i.e., 1/second) to beats/minute.
2.3.2.1 Example of Heart Rate Estimation
(80) Referring to
(81) The peak enhanced FFT output, .sub.m() is provided to the peak thresholding module 780 of
(82) The five identified peaks, P.sub.1, P.sub.2, . . . , P.sub.5 are provided to the candidate fundamental frequency identification module 784 which, for each of the identified peaks, if the frequency associated with the peak falls within an integer multiple of the 40 to 200 beats/minute frequency range for the heart rate component, divides the frequency associated with the peak by the integer multiple and adds the result of the division as a candidate for the heart rate component fundamental frequency. In this example, for P.sub.1 which is located at 255 beats/minute, the candidate frequencies 127.5, 85, 63.75, 51, 42.5 are added as candidates for the heart rate component fundamental frequency. For P.sub.2 which is located at a frequency of 340 beats/minute, the candidate frequencies 170, 113.3, 85, 68, 56.7, 48.6, 42.5 are added as candidates for the heart rate component fundamental frequency. For P.sub.3 which is located at a frequency of 425 beats/minute, the candidate frequencies 141.7, 106.25, 85, 70.8, 60.7, 53.1, 47.2, 42.5 are added as candidates for the heart rate component fundamental frequency. For P.sub.4 which is located at a frequency of 510 beats/minute, the candidate frequencies 170, 127.5, 102, 85, 72.9, 63.8, 56.7, 51, 46.3, 42.5 are added as candidates for the heart rate component fundamental frequency. For P.sub.5 which is located at a frequency of 595 beats/minute, the candidate frequencies 198.3, 148.8, 119, 99.2, 85, 74.4, 66.1, 59.5, 54.1, 49.6, 45.8, 42.5 are added as candidates for the heart rate component fundamental frequency.
(83) Referring to
radius=f.sub.maxf.sub.min
where f.sub.1a is the candidate fundamental frequency with the highest frequency in the cluster and f.sub.min is the candidate fundamental frequency with the lowest frequency in the cluster. For example, when the window 999 in a first position 951, the radius of the cluster is equal to zero. When the window 999 is in a second position 953, the radius of the cluster is equal to 0. When the window 999 is in a third position 955, the radius of the cluster is equal to 3.3. When the window 999 is in a fourth position 957, the radius of the cluster is equal to 3.8.
(84) Referring to
(85) The clusters and the associated radii determined by the candidate fundamental frequency clustering module 784 are provided to the heart rate estimate selection module 786 which selects the cluster with the lowest radius as being the cluster that includes the fundamental frequency for the heart rate. In this case, since two or more clusters have the same lowest radius (i.e., 0), the heart rate estimate selection module 786 selects the cluster of the two or more clusters with the highest average frequency since the clusters with the lowest average frequency are associated with sub-harmonics of the heart rate fundamental frequency. The median frequency of the selected cluster (i.e., 85 beats/minute) is selected as the heart rate fundamental frequency and is output as the estimated heart rate 464 for .sub.m()
(86) As is noted above, in some examples, the heart rate estimate selection module 786 calculates a confidence ratio for the selected cluster as a ratio between the radius of the selected cluster and the radius of a next best cluster. The heart rate estimate selection module 786 stores the estimated heart rate and its confidence ratio for later use. Then the heart rate estimation module then 463 lowers the signal to noise ratio threshold used by the peak thresholding module 780 and re-processes the peak enhanced FFT output, .sub.m() to determine another estimated heart rate and confidence ratio. This process repeats until a predefined minimum signal to noise ratio is reached or until a predefined confidence ratio is reached.
3 Alternatives
(87) In some examples, rather than analyzing the harmonics of the heart beat component of the phase signal, the heart rate estimation module uses a filter based approach to determine an estimate for the heart rate. For example, the heart rate estimation module filters the phase signal using a bandpass filter with a pass band in a frequency range (e.g., 40 to 200 beats/minute) where the heart beat component of the phase signal is assumed to exist. An FFT of the filtered phase signal is calculated and a peak in the FFT output is identified. Note that, in some examples, the absolute maximum of the FFT output is not chosen as the identified peak since it is due to leakage from the breathing component of the phase signal. An inverse FFT of the signal in the FFT bin corresponding to the identified peak and the two FFT bins adjacent to the FFT bin corresponding to the identified peak is then calculated. A phase regression is then used to determine the heart rate estimate (as is done for the breathing rate estimate).
(88) While the above description describes how a single antenna pair is used to it is noted that a number of antenna pairs can be used to improve the performance of the system. For example, signals received at a number of receive antennas can be combined in various ways to determine an exact location of reflecting bodies and can be combined to obtain a cleaner, less noisy phase signal for a reflecting body. In some implementations, a separate phase signal is obtained from each pair of antennas and spectral peaks are identified for each pair of antenna, with the peaks of several pairs being combined to estimate the fundamental frequency, for example, all pairs voting together. In other implementations, different pairs of antennas are processed separately to determine separate fundamental frequency estimates that are combined.
4 Implementations
(89) Systems that implement the techniques described above can be implemented in software, in firmware, in digital electronic circuitry, or in computer hardware, or in combinations of them. The system can include a computer program product tangibly embodied in a machine-readable storage device for execution by a programmable processor, and method steps can be performed by a programmable processor executing a program of instructions to perform functions by operating on input data and generating output. The system can be implemented in one or more computer programs that are executable on a programmable system including at least one programmable processor coupled to receive data and instructions from, and to transmit data and instructions to, a data storage system, at least one input device, and at least one output device. Each computer program can be implemented in a high-level procedural or object-oriented programming language, or in assembly or machine language if desired; and in any case, the language can be a compiled or interpreted language. Suitable processors include, by way of example, both general and special purpose microprocessors. Generally, a processor will receive instructions and data from a read-only memory and/or a random access memory. Generally, a computer will include one or more mass storage devices for storing data recordings; such devices include magnetic disks, such as internal hard disks and removable disks; magneto-optical disks; and optical disks. Storage devices suitable for tangibly embodying computer program instructions and data include all forms of non-volatile memory, including by way of example semiconductor memory devices, such as EPROM, EEPROM, and flash memory devices; magnetic disks such as internal hard disks and removable disks; magneto-optical disks; and CD-ROM disks. Any of the foregoing can be supplemented by, or incorporated in, ASICs (application-specific integrated circuits).
(90) It is to be understood that the foregoing description is intended to illustrate and not to limit the scope of the invention, which is defined by the scope of the appended claims. Other embodiments are within the scope of the following claims.