SYSTEMS AND METHODS FOR BREATHING DETECTION AND RATE ESTIMATION USING WIRELESS COMMUNICATION SIGNALS
20220095950 · 2022-03-31
Assignee
Inventors
Cpc classification
A61B5/0004
HUMAN NECESSITIES
G16H50/20
PHYSICS
A61B5/7214
HUMAN NECESSITIES
A61B5/0816
HUMAN NECESSITIES
G16H50/30
PHYSICS
International classification
A61B5/08
HUMAN NECESSITIES
A61B5/00
HUMAN NECESSITIES
G16H50/30
PHYSICS
Abstract
Various embodiments relate to a method for estimating a breathing rate, including: receiving a plurality of channel state information (CSI) from a wireless device; selecting an initial reference CSI from the plurality of CSI; computing a perturbation index using the initial reference CSI and a portion of the plurality of CSI; determining an optimal reference CSI based upon the perturbation index; re-computing the perturbation index using the optimal reference CSI on a portion of the plurality of CSI subsequent to the optimal reference CSI; and determining a breathing rate from the perturbation index using a frequency analysis of the perturbation index.
Claims
1. A method for estimating a breathing rate, comprising: receiving a plurality of channel state information (CSI) from a wireless device; selecting an initial reference CSI from the plurality of CSI; computing a perturbation index using the initial reference CSI and a portion of the plurality of CSI; determining an optimal reference CSI by finding the CSI associated with the maximum perturbance index value; re-computing the perturbation index using the optimal reference CSI on a portion of the plurality of CSI subsequent to the optimal reference CSI; and determining a breathing rate from the perturbation index using a frequency analysis of the perturbation index.
2. The method of claim 1, wherein computing a perturbation index includes using channel nulling.
3. The method of claim 1, wherein channel nulling includes: calculating a nulling matrix; and applying the nulling matrix to the plurality of CSI subsequent to the optimal reference CSI.
4. The method of claim 1, wherein computing a perturbation index Γ.sub.n includes computing:
Γ.sub.n=10 log.sub.10|Σ.sub.k,k+1∈Ψ
5. The method of claim 1, wherein the frequency analysis of the perturbation index includes applying a fast Fourier transform (FFT) on the perturbation index.
6. The method of claim 1, wherein determining a breathing rate includes: calculating the standard deviation of the perturbance index over a window set of values; and indicating a breathing detection failure when the standard deviation is below a predetermined threshold value.
7. The method of claim 1, wherein the frequency analysis includes: performing a frequency transformation of the perturbance index over a window set of values; and determining the breathing rate as the frequency with the highest value.
8. The method of claim 7, further comprising: calculating a peak-to-total power ratio using the frequency value with the highest value; and indicating a breathing detection failure when the peak-to-total power ratio is below a predetermined threshold value.
9. The method of claim 1, further comprising sliding the window set of values and re-calculating the breathing rate.
10. The method of claim 1, further comprising: determining a breathing rate detection failure; computing an average of the perturbation values of the window set of values; indicating motion when the average of the perturbation values is above a predetermined threshold; and indicating no motion when the average of the perturbation values is below a predetermined threshold.
11. A breathing rate estimation system, comprising: a receiver configured to receive a plurality of channel state information (CSI) from a wireless device; a memory; and a processor connected to the receiver and memory configured to: select an initial reference CSI from the plurality of CSI; compute a perturbation index using the initial reference CSI and a portion of the plurality of CSI; determine an optimal reference CSI by finding the CSI associated with the maximum perturbance index value; re-compute the perturbation index using the optimal reference CSI on a portion of the plurality of CSI subsequent to the optimal reference CSI; and determine a breathing rate from the perturbation index using a frequency analysis of the perturbation index.
12. The system of claim 11, wherein computing a perturbation index includes using channel nulling.
13. The system of claim 11, wherein channel nulling includes: calculating a nulling matrix; and applying the nulling matrix to the plurality of CSI subsequent to the optimal reference CSI.
14. The system of claim 11, wherein computing a perturbation index Γ.sub.n includes computing:
Γ.sub.n=10 log.sub.10|Σ.sub.k,k+1∈Ψ
15. The system of claim 11, wherein the frequency analysis of the perturbation index includes applying a fast Fourier transform (FFT) on the perturbation index.
16. The system of claim 11, wherein determining a breathing rate includes: calculating the standard deviation of the perturbance index over a window set of values; and indicating a breathing detection failure when the standard deviation is below a predetermined threshold value.
17. The system of claim 11, wherein the frequency analysis includes: performing a frequency transformation of the perturbance index over a window set of values; and determining the breathing rate as the frequency with the highest value.
18. The system of claim 11, wherein the processor is further configured to: calculate a peak-to-total power ratio using the frequency value with the highest value; and indicate a breathing detection failure when the peak-to-total power ratio is below a predetermined threshold value.
19. The system of claim 11, wherein the processor is further configured to slide the window set of values and re-calculate the breathing rate.
20. The system of claim 11, wherein the processor is further configured to: determine a breathing rate detection failure; compute an average of the perturbation values of the window set of values; indicate motion when the average of the perturbation values is above a predetermined threshold; and indicate no motion when the average of the perturbation values is below a predetermined threshold.
Description
BRIEF DESCRIPTION OF THE DRAWINGS
[0023] In order to better understand various exemplary embodiments, reference is made to the accompanying drawings, wherein:
[0024]
[0025]
[0026]
[0027]
[0028]
[0029] To facilitate understanding, identical reference numerals have been used to designate elements having substantially the same or similar structure and/or substantially the same or similar function.
DETAILED DESCRIPTION
[0030] The description and drawings illustrate the principles of the invention. It will thus be appreciated that those skilled in the art will be able to devise various arrangements that, although not explicitly described or shown herein, embody the principles of the invention and are included within its scope. Furthermore, all examples recited herein are principally intended expressly to be for pedagogical purposes to aid the reader in understanding the principles of the invention and the concepts contributed by the inventor(s) to furthering the art and are to be construed as being without limitation to such specifically recited examples and conditions. Additionally, the term, “or,” as used herein, refers to a non-exclusive or (i.e., and/or), unless otherwise indicated (e.g., “or else” or “or in the alternative”). Also, the various embodiments described herein are not necessarily mutually exclusive, as some embodiments can be combined with one or more other embodiments to form new embodiments.
[0031] Breathing rate is one of the main human vital signs (others may include body temperature, blood pressure, and pulse). The normal breathing rate for an adult at rest is within the range from 12 to 20 breaths per minute. A breathing rate outside of the normal range may require further consideration and may be caused by illness, medical conditions, fatigue, and/or psychological conditions. Therefore, breathing detection and rate estimation is essential for human health monitoring. Current solutions of breathing detection and rate estimation include an under-mattress device used during sleeping, a chest band/strap on an individual's body used during daily activities, a seat cover sensor placed inside driver seat used during driving, etc. However, current solutions require direct contact with measurement devices and/or extra installation effort is required.
[0032] Embodiments of a breathing detection and rate estimation system using wireless communication signals is described herein. The system includes a first wireless communication device communicating with a second wireless communication device, and the second wireless communication device measuring channel state information (CSI) between the first and second wireless communication devices.
[0033] Each of these steps will now be described in more detail. In a wireless communication system, a first wireless communication device (e.g., Wi-Fi client) communicates with a second wireless communication device (e.g., Wi-Fi access point (AP)). The second wireless communication device may continually output CSI signals with a millisecond granularity. Such Wi-Fi devices may include routers, access points, laptop and desktop computers, mobile phones, tablets, video streaming devices, smart watches, smart home devices, internet of things device, etc.
[0034] As previously discussed, breathing is a periodic motion and will periodically change the wireless channel between the Wi-Fi transmitter and receiver. The channel change may be reflected in the CSI signal measurement.
[0035] To start, the first packet in the segment of the CSI stream is set as the reference packet, i.e., h.sub.k.sup.ref=h.sub.k.sup.0, where k is tone index. The CSI of a later received packet n is h.sub.k.sup.n=h.sub.k.sup.ref+Δh.sub.k.sup.n, n>0, where Δh.sub.k.sup.n represents the wireless channel change caused by breathing movement.
[0036] Next, the perturbation index is computed using the initial reference CSI. To extract channel change information Δh.sub.k.sup.n caused by breathing movement, the reference CSI h.sub.k.sup.ref has to be canceled. This may be achieved by constructing a nulling matrix q.sub.k based on the reference CSI such that q.sub.k.sup.Hh.sub.k.sup.ref=0 and applying the nulling matrix to the latter CSIs as follows:
where (*).sup.H is the conjugate transpose of the matrix (*).
[0037] One way of constructing nulling matrix is using the Gram-Schmidt process method where:
q.sub.k=q.sub.k,tmp/∥q.sub.k,tmp∥ and
where
[0038] and u.sub.0 comes from columns of a unitary matrix. There are also other ways of constructing the nulling matrix q.sub.k as long as q.sub.k.sup.Hh.sub.k.sup.ref=0, e.g., removing u.sub.0 from previous equation and let
[0039] The perturbation index (in dB) is defined as the perturbation amount caused by breathing movement to the CSI:
Γ.sub.n=10 log.sub.10|Σk,k∈Ψ
where Ψ is the set of all the available tones. The more a current CSI deviates from the reference CSI, the larger the value of perturbation index is.
[0040] It will now be explained why the reference CSI is updated.
[0041] As illustrated in
[0042] As illustrated in
[0043] As illustrated in
[0044] As a result, the reference CSI is updated to the CSI at the maximum inspiratory or expiratory point to avoid the incorrect determination of the breathing frequency.
[0045] A method for searching for the optimal reference CSI will now be described. With the found optimal reference CSI, the perturbation index is then recalculated using this new reference CSI.
[0046] Suppose every T.sub.p seconds, there is a CSI measurement. As mentioned before, the first received CSI CSI.sub.0 is initially set as reference CSI, namely CSI.sub.ref=CSI.sub.0.
[0047] Next, in a first step, the reference CSI CSI.sub.ref is used to compute perturbation index PI.sub.n of subsequent CSIs CSI.sub.n where: 1≤n≤┌α/(f.sub.b.sup.minT.sub.p)┐; f.sub.b.sup.min is the minimum breathing rate that the system is required to detect; 1/(f.sub.b.sup.minT.sub.p) is maximum number of CSI measurements in a single period of breathing; and α is the coefficient to determine the CSI search window. It is noted that α has to be larger than ¾ to make sure the maximum inspiratory or expiratory point may be found.
[0048] In a second step, the index of the maximum value of the perturbation index PI.sub.n computed in the first step is found as:
[0049] Then, in a third step, CSI.sub.{circumflex over (n)} is used as optimal reference CSI, namely CSI.sub.ref=CSI.sub.{circumflex over (n)}.
[0050] With the updated reference CSI, the system may perform breathing detection and rate estimation. After updating the reference CSI CSI.sub.ref=CSI.sub.{circumflex over (n)}, the perturbation index PI.sub.n of subsequent CSI.sub.n, where {circumflex over (n)}<n may be re-computed.
[0051] The breathing rate is estimated over a PI sliding window containing
{PI(w)|PI(w)=PI.sub.{circumflex over (n)}+s+w,w=0,1, . . . N−1},
where N is the window size and s>0 is the offset of window starting point.
[0052] In a first step the standard deviation of the PI values in the window is calculated as:
σ=STD({PI(w)}).
[0053] If σ<σ.sub.th, where σ.sub.th is a predetermined threshold, then indicate a failure to detect a breathing rate and output f.sub.b ({circumflex over (n)}+s)=0 and go to the fourth step, otherwise go to the next step.
[0054] In a second step, the peak frequency is searched for. First a frequency transformation is performed on the PI values as follows:
X(k)=FFT({PI(w)}),k=0,1, . . . ,N−1.
While an FFT is method shown for performing the frequency transformation, other known methods may be used as well.
[0055] The peak frequency index is determined as:
k.sub.max=arg min.sub.└f.sub.
where [f.sub.b.sup.min, f.sub.b.sup.max] is the range within which the breathing rate is detected.
[0056] Next, in a third step, a peak-to-total power ratio is calculated as follows:
[0057] If α<α.sub.th, where α.sub.th is a predetermined threshold, then indicate a failure to detect a breathing rate and output f.sub.b ({circumflex over (n)}+s)=0, otherwise output the estimated breathing rate as:
[0058] In a fourth step the window is slide by calculating s=s+Δs and then the method goes back to the first step.
[0059] The breathing rate estimation algorithm is able to track breathing rate change over time by using a sliding estimation window. The first step rules out the case where the windowed PI waveform has little variation. The second step finds out the peak frequency with maximum power. Then the third step makes sure that the power of the peak frequency is dominant over the power of other frequencies.
[0060]
[0061] The system determines the PI sliding window 305 and performs breathing detection and rate estimation 310 as described above. Next, it is determined if the breathing rate f.sub.b is zero 315. If not, then the breathing rate f.sub.b is output 320. If so, the system may the determine if there is human motion by computing the average of the PI values PI.sub.avg. PI.sub.avg is then compared to a predetermined threshold PI.sub.th 330. If PI.sub.avg is greater than or equal to PI.sub.th, then motion is indicated 335. If PI.sub.avg is less than PI.sub.th, then motion is not indicated 340.
[0062] The wireless breathing detection and rate estimation system described herein is passive as the individual does not have to carry or touch any devices. As Wi-Fi devices are widely available, the breathing rate detection system may be built on top of wireless communication between devices and will have low cost and be almost installation free. The system may be readily applied to current Wi-Fi chips. The system provides a technological solution to the problem of detecting breathing and estimating breathing rate in a non-invasive manner and with a minimum installation using widely available wireless networks.
[0063] The breathing detection and rate estimation system described herein may be used in various scenarios. For example, when baby or child is left in a room, the system may send an alarm to the parent's cellphone to let them know someone is sleeping or moving in room. In another example, sleep quality may be measured by determining the breathing rate and then the length of sleep/non sleep time.
[0064]
[0065] The processor 420 may be any hardware device capable of executing instructions stored in memory 430 or storage 460 or otherwise processing data. As such, the processor may include a microprocessor, a graphics processing unit (GPU), field programmable gate array (FPGA), application-specific integrated circuit (ASIC), any processor capable of parallel computing, or other similar devices. The processor may also be a special processor that implements machine learning models.
[0066] The memory 430 may include various memories such as, for example L1, L2, or L3 cache or system memory. As such, the memory 430 may include static random-access memory (SRAM), dynamic RAM (DRAM), flash memory, read only memory (ROM), or other similar memory devices.
[0067] The user interface 440 may include one or more devices for enabling communication with a user and may present information to users. For example, the user interface 440 may include a display, a touch interface, a mouse, and/or a keyboard for receiving user commands. In some embodiments, the user interface 440 may include a command line interface or graphical user interface that may be presented to a remote terminal via the network interface 450.
[0068] The network interface 450 may include one or more devices for enabling communication with other hardware devices. The network interface 450 may include a network interface card (NIC) configured to communicate according to the Ethernet protocol or other communications protocols, including wireless protocols. For example, the network interface 450 may be a Wi-Fi or other wireless interface whose signal is used to detect breathing. Such a wireless interface may include a transmitter/receiver and an antenna. Additionally, the network interface 450 may implement a TCP/IP stack for communication according to the TCP/IP protocols. Various alternative or additional hardware or configurations for the network interface 450 will be apparent.
[0069] The storage 460 may include one or more machine-readable storage media such as read-only memory (ROM), random-access memory (RAM), magnetic disk storage media, optical storage media, flash-memory devices, or similar storage media. In various embodiments, the storage 460 may store instructions for execution by the processor 420 or data upon which the processor 420 may operate. For example, the storage 460 may store a base operating system 461 for controlling various basic operations of the hardware 400. The storage 462 may store instructions for implementing the breathing detection and rate estimation system described herein.
[0070] It will be apparent that various information described as stored in the storage 460 may be additionally or alternatively stored in the memory 430. In this respect, the memory 430 may also be considered to constitute a “storage device” and the storage 460 may be considered a “memory.” Various other arrangements will be apparent. Further, the memory 430 and storage 460 may both be considered to be “non-transitory machine-readable media.” As used herein, the term “non-transitory” will be understood to exclude transitory signals but to include all forms of storage, including both volatile and non-volatile memories.
[0071] While the system 400 is shown as including one of each described component, the various components may be duplicated in various embodiments. For example, the processor 420 may include multiple microprocessors that are configured to independently execute the methods described herein or are configured to perform steps or subroutines of the methods described herein such that the multiple processors cooperate to achieve the functionality described herein. Such plurality of processors may be of the same or different types. Further, when the device 400 is implemented in a cloud computing system, the various hardware components may belong to separate physical systems. For example, the processor 420 may include a first processor in a first server and a second processor in a second server.
[0072] Any combination of specific software running on a processor to implement the embodiments of the invention, constitute a specific dedicated machine.
[0073] It should be appreciated by those skilled in the art that any block diagrams herein represent conceptual views of illustrative circuitry embodying the principles of the invention.
[0074] Although the various exemplary embodiments have been described in detail with particular reference to certain exemplary aspects thereof, it should be understood that the invention is capable of other embodiments and its details are capable of modifications in various obvious respects. As is readily apparent to those skilled in the art, variations and modifications can be affected while remaining within the spirit and scope of the invention. Accordingly, the foregoing disclosure, description, and figures are for illustrative purposes only and do not in any way limit the invention, which is defined only by the claims.