1. Field of the Invention
This invention relates generally to signal processing and more particularly to systems that detect heartbeats.
2. Background
The possibility of detecting concealed people through their heartbeats has been considered. GeoVox Security, Inc. of Houston, Tex. sells an Avion heartbeat detector for security applications. Such detectors operate on the principle that a beating heart creates mechanical shock pulses as it pumps blood through a body. The shock pulses produce vibrations that propagate through the body and through objects in contact with the body.
The vibrations, have a very small amplitude—a fraction of the width of a human hair. Nonetheless, sensors exist that can detect such small vibrations. For example, geophones are used in oil exploration. Geophones are sensitive enough to detect vibrations that emanate from a mechanical device and travel long distances through the earth.
A difficulty in using such small amplitude signals in security applications is that there are many other sources of similar signals with a similar or greater magnitude. For purposes of detecting a signal from a beating heart, these signals are noise. A detection system is likely to mistake the noise for a signal representing a beating heart, creating a “false alarm.”
Detection systems are designed so as not to respond to noise and therefore lower their false alarm rates. However, many methods that a system could use to reject noise reduce the sensitivity of the system to a signal the system needs to detect. Reducing the sensitivity to the signal to be detected is also undesirable because it reduces the chances that the desired signal will be missed, creating a false positive. Both false positives and false alarms are undesirable.
Accordingly, it is desirable for a detection system to have a low false alarm rate while simultaneously providing a low rate of false positives. It would be highly desirable to provide an improved system for detecting heartbeats with a low false alarm rate while simultaneously providing a low rate of false positives.
The invention relates to a method of detecting a heartbeat. The method includes providing a plurality of signatures, each signature being a transformation of a representation of a heart beating. A received vibration signal is processed by, for each of a plurality of portions of the vibration signal, transforming the portion to form a transformed portion. Each of the plurality of transformed portions is compared to the plurality of signatures to detect whether the vibration signal contains one of the plurality of signatures.
The accompanying drawings are not intended to be drawn to scale. In the drawings, each identical or nearly identical component that is illustrated in various figures is represented by a like numeral. For purposes of clarity, not every component may be labeled in every drawing. In the drawings:
A system that detects heartbeat signals by comparing detected signals to signatures in a library is described below. Each signature may represent a different heartbeat pattern. In a preferred embodiment, the library contains signatures representative of the range of heartbeat patterns for a human or other animal that is to be detected. In some embodiments, the library signatures are derived by transforming signals representative of heartbeat patterns by a transfer function representative of structures between the beating heart and sensors.
In further embodiments, the heartbeat signals are processed using one or more frequency domain transforms. In one embodiment, the received signal is processed through a frequency domain transform before being compared to signatures in the library. Tn this embodiment, the signatures in the library are preferably created using the same transform. In another embodiment, the frequency domain transform is performed on the result of the comparison between the received signal and signatures in the library.
The system employs multiple sensors 114. Sensors 114 might be geophones, microaccelerometers or other similar sensors designed to detect very small vibrations.
The outputs of the sensors 114 are provided to a computer 120. Here, computer 120 acts as both a data processing station and an operator interface station. Computer 120 receives data from sensors 114 and processes it to detect signals representative of vibrations caused by a beating heart from someone within container 112. Computer 120 also provides a user interface for the results of this analysis so that a human user 130 may observe the results and take the appropriate action in response.
Signals received by the sensor, regardless of the specific application in which the system is used, may be processed to detect signatures representative of a beating heart. One example of processing that may be performed on the received signals is given in
While all beating hearts generally follow the pattern shown in
To detect such a wide range of possible signals, a system may be created that includes a library of signatures characteristic of a beating heart. A received signal is compared to the library to detect signals indicative of a beating heart. A system such as is shown in
Regardless of the specific type of animal to be detected, the set of patterns 4101 . . . 410N preferably represents the full range of heartbeat patterns that may be encountered. For example, if a human heart may beat between 40 and 120 beats per minute, patterns in the set should represent a heart beating in this range. For example, beat pattern 4101 represents a quickly beating heart and beat pattern 410N represents a slowly beating heart. The other patterns span the range between these extremes.
The number of beat patterns used to create signatures in the library can be varied to reduce the false alarm and false positive rate of the system. However, as more beat patterns are added, the processing requirements of the system increase, such that the number of beat patterns used to create the library cannot be increased arbitrarily. In the described embodiment, on the order of 100 beat patterns are used. More preferably, about 160 beat patterns are used.
In the illustrated embodiment, the amplitude of all of the beat patterns 4101 . . . 410N has been normalized. Alternatively, the beat patterns may be normalized in other ways, such as to have the same energy. Also,
The beat patterns 4101 . . . 410N might be obtained empirically by collecting multiple examples of the types of signal to be detected. Alternatively, the beat patterns might be generated through computer modeling and simulation. For example, a shock pulse 312 might be modeled and the set of beat patterns generated by repeating this shock pulse at different periods.
In the embodiment pictured in
To convert each beat pattern to a signature, the beat pattern is processed by a transfer function T(t). The transfer function represents the effect of the environment on a shockwave generated by a beating heart. For example, in the system illustrated in
The transfer function T(t) may be obtained by modeling the components of the environment. Known modeling techniques may be used. The transfer function may alternatively be obtained empirically by establishing conditions representative of the conditions under which signals will be detected. For example, an impulse or other signal may be applied and the result measured. Known signal processing techniques can be used to derive the transfer function of a system by measuring the response of the system to a known input. If the container is on a truck with a suspension system, or an elevator suspended on a cable or the signal path includes other mechanically active elements, using a transfer function to compute heartbeat signatures may increase the overall accuracy with which heartbeats may be detected. In other embodiments, such as when a container is sitting on the ground, stacked on other containers, or the sensors are mounted directly to the container, the transfer function may be approximate 1 or may be unknown and processing with a transfer function may be omitted.
Where data is to be gathered empirically, signals in the form of the beat patterns 4101 . . . 410N could be used as stimulus signals. If this scenario can be created, it is not necessary that the transfer function be ascertained. Rather, the measured value in response to each of the beat patterns 4101 . . . 410N would represent the output of one of the transfer function blocks, such as 4101 . . . 410N, which are signals required for the next step in processing. However, separately generating the transfer function and representative beat patterns allows new entries to be readily added to the library 460 if it is determined that more beat patterns are needed to accurately represent the full range of beat patterns or if it is determined that the library needs to be regenerated with a different transfer function.
In the next step of the processing, the signals are transformed according to a transform F(t). As will be described below, a received signal is transformed before comparison to the signatures in the library. In such an embodiment, it is preferable that the beat patterns be similarly transformed before being stored in library 460. In a described embodiment, F(t) represents a frequency domain transform. A known frequency domain transform may be used. For example, a Discrete Fourier Transform (DFT) may be used. However, other transforms may be used, such as the discrete cosine transform. Alternatively, a wavelet transform may be used.
Further, it is possible that a signal may be subject to multiple transforms before being stored in library 460. The transforms may be applied sequentially or separately. Where transforms are applied separately, library 460 may contain multiple entries for each of the beat patterns 4101 . . . 410N, with an entry for each beat pattern transformed with each of the transforms.
The transformed beat patterns are preferably stored in library 460 in advance of use of the system. Preferably, representative patterns are selected and a library is created as the system is developed. However, it is possible that the library is built adaptively. As items are inspected, data may be gathered to generate new signatures.
Where the types of objects to be inspected vary so widely that some will have substantially different transfer functions, library entries may be generated using each transfer function. For example, where a system may be used to process signals from either large or small containers, a transfer function may be generated for each type of container. Each of the beat patterns 4101 . . . 410N would then result in two entries in library 460, one computed with each transfer function.
Once the library 460 is developed, the system may be deployed and used.
As will be described below, signal 510 maybe processed in windows.
The digital signal is provided to a chain of delay elements 6301 . . . 630M−1. Each delay element provides a delay, D. In this way, the output of each delay element 6301 . . . 630M−1 forms the signal in one of the windows W1 . . . WM (
In the embodiment shown in
The transformed windowed signals are denoted I1 . . . IM. Each of the transformed windowed signals is provided to a multiplier array, made up of multipliers 6401,1 . . . 640N,M. Each multiplier multiplies one of the transformed window signals I1 . . . IM by one of the signatures S1 . . . SN in the library 460 (
If one of the transformed window signals I1 . . . IM is similar to one of the signatures, S1 . . . SN, the two signals should have similar frequency spectra. Thus, the high points of each will align and when the two signals are multiplied, the product signal will have high values corresponding to those high points. In contrast, when a windowed signal does not correspond to a signature, the frequency spectra of the signals will be different and there will be fewer points where the high points of those signals align. As a result, the product signal will contain fewer high points and, the high points are less likely to be as large.
As described above, the received signal 510 is divided into multiple, overlapping windows. Preferably, the width and amount of overlap of the windows is selected to ensure that, if signal 510 contains a heartbeat signal, that signal will be aligned in one of the windows W1 . . . WM in a way that aligns with a signature in library 460. Thus, all of the transformed window signals I1 . . . IM are preferably multiplied by each of the signatures S1 . . . SN. These products S1*I1 . . . SN*IM are all examined to see which, if any, have values indicating that the window signal matches a signature. These signals are passed to detector 660 for this analysis.
The product signals are then frequency domain transformed, as illustrated at 650. In the illustrated embodiment, each product signal is separately transformed. As described above, one or more known frequency domain transforms may be used. In one contemplated embodiment, a DFT and a wavelet transform are both used, with the transforms being provided in parallel such that each product signal results in two transformed signals. The transformed product signals are then analyzed to detect which, if any, contain, heartbeat signals. Detection is performed by detector 660.
The product signal, when transformed to the frequency domain, is a series of frequency values. These values are compared to predetermined criteria to indicate a match between the windowed signal Ij and the signature Si. A match can be taken as an indication that windowed signal Ij contains a heartbeat in the form 450i, which was used to generate the signature Si.
In the described embodiment, the comparison is made using statistical properties of the frequency domain signal. In the illustrated embodiment, these statistical properties are the average value and the variance.
The average value is computed at 810. In the described embodiment, the average is computed according to the Root Mean Square (RMS) method. The variance of the frequency domain values is also computed at 812. Both the RMS and variance are known statistical properties and may be computed in accordance with any known method.
The computed RMS and variance values are provided to comparator 816. Where multiple frequency domain transforms are used, statistical properties of each transformed signal may be computed separately and provided to comparator 816.
Comparator 816 compares the statistical properties of the measured signals to a range or ranges that are indicative of a match. If the computed value for the signal falls within the range, comparator 816 outputs an indication that there is a match.
The predetermined ranges might be the same for all combinations of S1*I1 . . . SN*IM. Alternatively, each product signal Si*Ij may have different predetermined ranges. Alternatively, each signature in the library may have different predetermined ranges.
The predetermined ranges may be determined empirically or heuristically. If determined empirically, the values may be computed at the time the system is installed or may be adaptively computed as the system is in operation. Various processes for identifying patterns in data are known and may be employed to set the ranges. For example, data may be collected by applying training signals of known properties and observing the outputs. The outputs may be analyzed to identify the ranges that result when an input signal contains a match to one of the signatures.
As another example, the ranges may be set by computing statistical properties on the frequency properties of the signatures in the library. For example, a match may be determined if the RMS and variance values of the product signal Si*Ij are within 15% of the RMS and variance values computed for the signature Si.
Regardless of the specific method used to set the range, if the statistical properties of the signal are within the range, a detection is indicated.
The process continues to block 1052. At block 1052, captured data is formed into a plurality of successive and overlapping windowed signals. Each window is preferably large enough to contain a signal representing a heartbeat.
At block 1054, each of the windowed signals is transformed. In the embodiment, illustrated, a frequency domain transform is used. One suitable frequency domain transform is a high-resolution Fourier transform. However, other suitable transforms may be used. The transform performed at block 1054 creates, for each windowed signal, a series of frequency coefficients. Each coefficient represents the frequency content of the windowed signal at a specific frequency.
At block 1056, each of the frequency domain representations of the windowed signal is normalized. In this embodiment, a frequency domain representation is normalized by selecting the largest frequency coefficient. The multiplicative inverse of the largest frequency coefficient is computed and each of the frequency coefficients is multiplied by this inverse value. At the end of the normalization step at block 1056, the largest frequency coefficient in each of the transformed windowed signals will be one and all other coefficients will be normalized to a value less than one.
At block 1058, the normalized frequency coefficients are assigned to bins. Normalizing and assigning to bins facilitates comparison of signals. In one embodiment, five bins are used, having values of 0, 0.4, 0.6, 0.8, and 1.0. Any suitable mapping between the normalized coefficient values and bones may be used. In the illustrated embodiment, normalized coefficients having a value above 0.8 are reset to a value of 1.0. Normalized coefficients with a value above 0.6 and equal to or less than 0.8 are reset to a value of 0.8. Similarly, normalized coefficients above 0.4 and equal to or less than 0.6 are reset to a value of 0.6. Normalized coefficients with values above 0.2 and equal to or less than 0.4 are reset to a value of 0.4. Normalized coefficients with a value of 0.2 or less are reset to equal 0.
With the values of the normalized coefficients mapped to one of a small number of bins, processing continues to block 1060. At block 1060, each of the normalized window signals is compared to a heartbeat signature. For simplicity, comparison to a single signature is described. But, each signal may be compared to more than one signature by repeating the processing in block 1060, 1062, 1064, 1066, and 1068.
At block 1060, the normalized window signals may be compared to a signature in any suitable way, such as the embodiment shown in
In one embodiment, matching signals may be selected by computing the average and standard deviation of these point-by-point multiplications. The average and standard deviation may be compared to a predetermined range or threshold values that signify a match to the signature.
Block 1064 indicates a processing step that may be employed for heartbeat signatures. For example, if a heart beats every half second, it may be expected that the signature of a heartbeat will appear in windowed signals representing portions of the original signal spaced apart by half-second intervals. Therefore, at block 1064, the periodicity of the signature is compared to the periodicity of the windows at which a match occurs.
If there is a high level of correlation between the periodicity of the signature and the periodicity of matching windows, processing at block 1066 indicates that a heartbeat is detected. If a heartbeat is detected, processing continues to block 1068. At block 1068, action appropriate for a detected heartbeat may be taken, such as storing an indication of the heartbeat in memory. Conversely, if there is no match between the periodicity of the signature and the periodicity of matching windows, the process of
Having described embodiments of the invention, one of skill in the art will appreciate that multiple alternative embodiments might be created.
For example,
As another example of variation, the described embodiments include delay elements to produce window signals. If the system is not implemented to perform real time processing, physical elements introducing delay into a data stream may not be required. The delay may be introduced by storing the entire signals and retrieving the desired portions when needed.
As another example, it is described that the received signal is divided into multiple overlapping windows so that a heartbeat signal in the received signal will appear in one of the windows with the same alignment as the signal used to create a signature in the library. A similar effect may be achieved in other ways. For example, the library could contain multiple signatures for each of the heartbeat patterns 4101 . . . 410N with entries derived by shifting each heartbeat pattern by an amount D before forming the signature. Alternatively, the signatures in the library may be time shifted to generate multiple signals before use instead of or in addition to forming overlapping windows for the received signal as shown in
As a further example of possible variations, the orders of various operations might be reversed. For example,
Similarly,
Also, it was described that a windowed signal and a signature are compared by a point to point multiplication. This multiplication might be viewed as a form of convolution. Other forms of convolution might be used. Related functions, such as a correlation function might be used to compare the signals to the signatures.
Further, while the DFT and wavelet transform are described, other transforms might be used.
Moreover, the statistical properties used to ascertain whether a windowed signal matches a signature are illustrative. Other types of averages or other functions that indicate the distribution of values might be used.
As a further example, each window signal was described to be processed independently. Additional information may be obtained by further processing, such as by comparing or combining the results of computations on multiple window signals. For example, if a window, Wx is determined to contain a signal matching a heartbeat pattern with a period P, a later window Wx+y should also match that same heartbeat pattern. Here Y can be computed by dividing the period of repetition of the heartbeat pattern, P, by the spacing D between the windows. The confidence of the detection may be significantly increased if the patterns of windows matching heartbeat patterns are analyzed.
In the described embodiment, the output of each sensor 114 may be independently processed using the above described approach. As another example of post processing that might be employed to improve performance of the system, the outputs of multiple sensors might be compared to ascertain whether a heartbeat was detected in the signal from multiple sensors.
Preferably, the received signal is normalized before processing. The normalization step is not explicitly shown. Preferably, the signal in each window is normalized separately. However, normalization might take place at any convenient place in the processing. For example, amplifier 614 might contain automatic gain control, which would provide a form of normalization.
This application is a divisional of U.S. application Ser. No. 11/212,859 filed Aug. 26, 2005 which claims priority under 35 U.S.C. § 119(e) to U.S. Provisional Application Ser. No. 60/604,907, entitled “METHOD AND APPARATUS TO DETECT EVENT SIGNATURES,” filed on Aug. 27, 2004.
Number | Date | Country | |
---|---|---|---|
60604907 | Aug 2004 | US |
Number | Date | Country | |
---|---|---|---|
Parent | 11212859 | Aug 2005 | US |
Child | 12098792 | US |