U.S. patent application number 14/830211 was filed with the patent office on 2015-12-10 for variable indication estimator.
The applicant listed for this patent is MASIMO CORPORATION. Invention is credited to Ammar Al-Ali, Lorenzo Cazzoli, Walter M. Weber.
Application Number | 20150351697 14/830211 |
Document ID | / |
Family ID | 24347320 |
Filed Date | 2015-12-10 |
United States Patent
Application |
20150351697 |
Kind Code |
A1 |
Weber; Walter M. ; et
al. |
December 10, 2015 |
VARIABLE INDICATION ESTIMATOR
Abstract
A variable indication estimator which determines an output value
representative of a set of input data. For example, the estimator
can reduce input data to estimates of a desired signal, select a
time, and determine an output value from the estimates and the
time. In one embodiment, the time is selected using one or more
adjustable signal confidence parameters determine where along the
estimates the output value will be computed. By varying the
parameters, the characteristics of the output value are variable.
For example, when input signal confidence is low, the parameters
are adjusted so that the output value is a smoothed representation
of the input signal. When input signal confidence is high, the
parameters are adjusted so that the output value has a faster and
more accurate response to the input signal.
Inventors: |
Weber; Walter M.; (Laguna
Hills, CA) ; Al-Ali; Ammar; (Tustin, CA) ;
Cazzoli; Lorenzo; (Barcelona, ES) |
|
Applicant: |
Name |
City |
State |
Country |
Type |
MASIMO CORPORATION |
Irvine |
CA |
US |
|
|
Family ID: |
24347320 |
Appl. No.: |
14/830211 |
Filed: |
August 19, 2015 |
Related U.S. Patent Documents
|
|
|
|
|
|
Application
Number |
Filing Date |
Patent Number |
|
|
13942562 |
Jul 15, 2013 |
9138192 |
|
|
14830211 |
|
|
|
|
13601930 |
Aug 31, 2012 |
8489364 |
|
|
13942562 |
|
|
|
|
13007109 |
Jan 14, 2011 |
8260577 |
|
|
13601930 |
|
|
|
|
12362463 |
Jan 29, 2009 |
7873497 |
|
|
13007109 |
|
|
|
|
11375662 |
Mar 14, 2006 |
7499835 |
|
|
12362463 |
|
|
|
|
10213270 |
Aug 5, 2002 |
6999904 |
|
|
11375662 |
|
|
|
|
09586845 |
Jun 5, 2000 |
6430525 |
|
|
10213270 |
|
|
|
|
Current U.S.
Class: |
600/324 |
Current CPC
Class: |
A61B 5/0002 20130101;
A61B 5/7271 20130101; A61B 5/6829 20130101; A61B 5/1455 20130101;
A61B 5/72 20130101; A61B 5/7207 20130101; A61B 5/14551 20130101;
A61B 5/7239 20130101; G06K 9/0051 20130101; A61B 5/6838 20130101;
A61B 5/021 20130101; A61B 5/6826 20130101 |
International
Class: |
A61B 5/00 20060101
A61B005/00; A61B 5/021 20060101 A61B005/021; A61B 5/1455 20060101
A61B005/1455 |
Claims
1-20. (canceled)
21. An apparatus for selecting output parameter values, the
apparatus comprising: a processor configured to: receive an input
physiological signal from a sensor coupled with a living being;
calculate parameter values from the input physiological signal;
select between a first parameter value from a trend of the
parameter values and a second parameter value representing a
constant average value of the parameter values within a time
window, the trend having a non-zero slope in the time window; and
output the selected parameter value.
22. The apparatus of claim 21, wherein the processor is further
configured to select the first parameter value from the trend of
the parameter values at a most recent time in the time window.
23. The apparatus of claim 21, wherein the processor is further
configured to select the first parameter value from the trend of
the parameter values at a time in the time window other than a most
recent time.
24. The apparatus of claim 21, wherein the processor is further
configured to select the first parameter value in the time window
and the second parameter value in a second time window.
25. The apparatus of claim 21, wherein the processor is further
configured to calculate a signal confidence using the input
physiological signal.
26. The apparatus of claim 25, wherein the processor is further
configured to make said selection using the signal confidence.
27. The apparatus of claim 26, wherein the processor is further
configured to select the first parameter value when the signal
confidence is high and the second parameter value when the signal
confidence is low.
28. The apparatus of claim 21, wherein the parameter values
comprise oxygen saturation values.
29. The apparatus of claim 21, wherein the parameter values
comprises blood pressure values.
Description
INCORPORATION BY REFERENCE TO ANY PRIORITY APPLICATIONS
[0001] Any and all applications, if any, for which a foreign or
domestic priority claim can be identified in the Application Data
Sheet of the present application is hereby incorporated by
reference under 37 CFR 1.57.
FIELD OF THE INVENTION
[0002] The present invention is directed to the field of signal
processing, and, more particularly, is directed to systems and
methods for determining a representative estimate output value for
a window of input data.
BACKGROUND OF THE INVENTION
[0003] Digital signal processing techniques are frequently employed
to enhance a desired signal in a wide variety of applications, such
as health care, communications and avionics, to name a few. Signal
enhancement includes smoothing, filtering and prediction. These
processing techniques each operate on a block of input signal
values, such as, for example, a window of input signal values, in
order to estimate the signal at a specific point in time. FIG. 1
illustrates that smoothing, filtering and prediction can be
distinguished by the time at which an output value is generated
relative to input values. Shown in FIG. 1 is a time axis 100 and a
block 101 of input signal values depicted in this example as
occurring within a time window between points t.sup.min and
t.sup.max. Specifically, the block 101 includes a set of discrete
input values {v.sub.i; i=1, 2, . . . n} occurring at a
corresponding set of time points {t.sub.i; i=1, 2, . . . n}. A
smoother operates on the block 101 of input values to estimate the
signal at a time point, t.sub.s 102 between t.sup.min and
t.sup.max. That is, a smoother generates an output value based upon
input values occurring before and after the output value. A filter
operates on the block 101 of input values to estimate the signal at
a time t.sub.f 104, corresponding to the most recently occurring
input value in the block 101. That is, a filter generates a forward
filtered output value at the time t.sub.f based upon input values
occurring at, and immediately before, the output value. A filter
also operates on the block 101 to estimate the signal at a time
t.sub.b 105 at the beginning of the block 101 to generate a
backward filtered value. A forward predictor operates on the block
of input values 101 to estimate the signal at time t.sub.pf 106,
which is beyond the most recently occurring value in the block 101.
That is, a forward predictor generates a forward predicted output
value based upon input values occurring prior to the output value.
A backward predictor operates on the block 101 of input values to
estimate the signal at time t.sub.pb 108, which is before the
earliest occurring value in the block 101. That is, a backward
predictor generates a backward predicted output value based upon
input values occurring after the output value.
SUMMARY OF THE INVENTION
[0004] A common smoothing technique uses an average to fit a
constant, v.sup.A, to a set of data values, {v.sub.i; i=1, 2, . . .
, n}:
v A = 1 n i = 1 n v i ( 1 ) ##EQU00001##
[0005] A generalized form of equation (1) is the weighted
average
v WA = i = 1 n w i v i i = 1 n w i ( 2 ) ##EQU00002##
[0006] Here, each value, v.sub.i, is scaled by a weight, w.sub.i,
before averaging. This allows data values to be emphasized and
de-emphasized relative to each other. If the data relates to an
input signal, for example, values occurring during periods of low
signal confidence can be given a lower weight and values occurring
during periods of high signal confidence can be given a higher
weight.
[0007] FIG. 2A illustrates the output of a constant mode averager,
which utilizes the weighted average of equation (2) to process a
discrete input signal, {v.sub.i; i an integer} 110. The input
signal 110 may be, for example, a desired signal corrupted by noise
or a signal having superfluous features. The constant mode averager
suppresses the noise and unwanted features, as described with
respect to FIG. 5, below. A first time-window 132 defines a first
set, {v.sub.i; i=1, 2, . . . , n}, of signal values, which are
averaged together to produce a first output value, z.sub.1 122. A
second time-window 134, shifted from the previous window 132,
defines a second set {v.sub.i; i=2, 3, . . ., n+1}of signal values,
which are also averaged together to produce a second output value
z.sub.2 124. In this manner, a discrete output signal, {z.sub.j; j
an integer} 120 is generated from a moving weighted average of a
discrete input signal {v.sub.i; i an integer} 110, where:
z j = i = j n + j - 1 w i v i / i = j n + j - 1 w i ( 3 )
##EQU00003##
[0008] A common filtering technique computes a linear fit to a set
of data values, {v.sub.i; i=1, 2, . . . , n}:
{circumflex over (v)}.sub.i=.alpha.t.sub.i+.beta. (4)
[0009] where .alpha. and .beta. are constants and t.sub.i is the
time of occurrence of the i.sup.th value. FIG. 2B illustrates the
output of a linear mode averager, which uses the linear fit of
equation (4) to process a discrete input signal, {v.sub.i; i an
integer} 110. The input signal 110 may be, for example, a desired
signal with important features corrupted by noise. The linear mode
averager reduces the noise but tracks the important features, as
described with respect to FIG. 6 below. A first time-window 132
defines a first set, {v.sub.i; i=1, 2, . . . , n}, of signal
values. A linear fit to these n values is a first line 240, and the
value along this line at max{t.sub.1, t.sub.2, . . . , t.sub.n} is
equal to a first output value, z.sub.1 222. A second time-window
134 shifted from the previous window 132 defines a second set,
{v.sub.i; i=2, 3, . . . , n+1}, of signal values. A linear fit to
these n values is a second line 250, and the value along this line
at max{t.sub.2, t.sub.3, . . . , t.sub.n+1} is equal to a second
output value, z.sub.2 224. In this manner, a discrete output
signal, {z.sub.j; j an integer} 220 is generated from a moving
linear fit of a discrete input signal {v.sub.i; i an integer},
where:
z j = .alpha. j t n + j - 1 MAX + .beta. j ( 5 a ) t n + j - 1 MAX
= max { t j , t j + 1 , , t n + j - 1 } ( 5 b ) ##EQU00004##
[0010] In general, the time windows shown in FIGS. 2A-2B may be
shifted from each other by more than one input value, and values
within each time window may be skipped, i.e., not included in the
average. Further, the t.sub.i's may not be in increasing or
decreasing order or uniformly distributed, and successive time
windows may be of different sizes. Also, although the discussion
herein refers to signal values as the dependent variable and to
time as the independent variable to facilitate disclosure of the
present invention, the concepts involved are equally applicable
where the variables are other than signal values and time. For
example, an independent variable could be a spatial dimension and a
dependent variable could be an image value.
[0011] The linear mode averager described with respect to FIG. 2B
can utilize a "best" linear fit to the input signal, calculated by
minimizing the mean-squared error between the linear fit and the
input signal. A weighted mean-squared error can be described
utilizing equation (4) as:
( .alpha. , .beta. ) = i = 1 n w i ( v i - v ^ i ) 2 / i = 1 n w i
( 6 a ) ( .alpha. , .beta. ) = i = 1 n w i [ v i - ( .alpha. t i +
.beta. ) ] 2 / i = 1 n w i ( 6 b ) ##EQU00005##
[0012] Conventionally, the least-mean-squared (LMS) error is
calculated by setting the partial derivatives of equation (6b) with
respect to .alpha. and .beta. to zero:
.differential. .differential. .alpha. ( .alpha. , .beta. ) = 0 ( 7
a ) .differential. .differential. .beta. ( .alpha. , .beta. ) = 0 (
7 b ) ##EQU00006##
[0013] Substituting equation (6b) into equation (7b) and taking the
derivative yields:
- 2 i = 1 n w i [ v i - ( .alpha. t i + .beta. ) ] / i = 1 n w i =
0 ( 8 ) ##EQU00007##
[0014] Solving equation (8) for .beta. and substituting the
expression of equation (2) yields:
.beta. = i = 1 n w i v i i = 1 n w i - .alpha. i = 1 n w i t i i =
1 n w i ( 9 a ) .beta. = v WA - .alpha. t WA ( 9 b )
##EQU00008##
[0015] where the weighted average time, t.sup.WA, is defined
as:
t WA = i = 1 n w i t i i = 1 n w i ( 10 ) ##EQU00009##
[0016] Substituting equation (9b) into equation (4) gives:
{circumflex over (v)}.sub.i=.alpha.(t.sub.i-t.sup.WA)+v.sup.WA
(11)
[0017] Substituting equation (11) into equation (6a) and
rearranging terms results in:
( .alpha. , .beta. ) = i = 1 n w i [ ( v i - v WA ) - .alpha. ( t i
- t WA ) ] 2 / i = 1 n w i ( 12 ) ##EQU00010##
[0018] Changing variables in equation (12) gives:
( .alpha. , .beta. ) = i = 1 n w i ( v i ' - .alpha. t i ' ) 2 / i
= 1 n w i ( 13 ) ##EQU00011##
[0019] where:
v'.sub.i=v.sub.i-v.sup.WA (14a)
t'.sub.i=t.sub.i-t.sup.WA (14b)
[0020] Substituting equation (13) into equation (7a) and taking the
derivative yields
- 2 i = 1 n w i t i ' ( v i ' - .alpha. t i ' ) / i = 1 n w i = 0 (
15 ) ##EQU00012##
[0021] Solving equation (15) for a gives:
.alpha. = i = 1 n w i v i ' t i ' / i = 1 n w i i = 1 n w i t i ' 2
/ i = 1 n w i ( 16 ) ##EQU00013##
[0022] Substituting equations (14a, b) into equation (16) results
in:
.alpha. = i = 1 n w i ( v i - v WA ) ( t i - t WA ) / i = 1 n w i i
= 1 n w i ( t i - t WA ) 2 / i = 1 n w i ( 17 a ) .alpha. = .sigma.
vt 2 .sigma. tt 2 ( 17 b ) ##EQU00014##
[0023] where:
.sigma. vt 2 = i = 1 n w i ( v i - v WA ) ( t i - t WA ) / i = 1 n
w i ( 18 a ) .sigma. tt 2 = i = 1 n w i ( t i - t WA ) 2 / i = 1 n
w i ( 18 b ) ##EQU00015##
[0024] Finally, substituting equation (17b) into equation (11)
provides the equation for the least-mean-square (LMS) linear fit to
{v.sub.i, i=1, 2, . . . , n}:
v ^ i = .sigma. vt 2 .sigma. tt 2 ( t i - t WA ) + v WA ( 19 )
##EQU00016##
[0025] FIG. 3 provides one comparison between the constant mode
averager, described above with respect to FIG. 2A and equation (2),
and the linear mode averager, described above with respect to FIG.
2B and equation (19). Shown in FIG. 3 are input signal values
{v.sub.i=1, 2, . . . , n} 310. The constant mode averager
calculates a constant 320 for these values 310, which is equal to
v.sup.WA, the weighted average of the input values v.sub.i. Thus,
the constant mode averager output 340 has a value V.sup.WA. For
comparison to the linear mode averager, the constant mode averager
output can be conceptualized as an estimate of the input values 310
along a linear fit 350, evaluated at time t.sup.WA. The linear mode
averager may be thought of as calculating a LMS linear fit,
{circumflex over (v)}.sub.i 330 to the input signal values, v.sub.i
310. The linear mode averager output 350 has a value, The linear
mode averager output is an estimate of the input values 310 along
the linear fit 330, described by equation (19), evaluated at an
index i such that t.sub.i=t.sup.MAX.
v WLA = .sigma. vt 2 .sigma. tt 2 ( t MAX - t WA ) + v WA ( 20 )
##EQU00017##
[0026] where:
t.sup.MAX=max {t.sub.1, t.sub.2, . . . , t.sub.n} (21)
[0027] As illustrated by FIG. 3, unlike the constant mode averager,
the linear mode averager is sensitive to the input signal trend.
That is, the constant mode averager provides a constant fit to the
input values, whereas the linear mode averager provides a linear
fit to the input values that corresponds to the input value trend.
As a result, the output of the linear mode averager output responds
faster to changes in the input signal than does the output of the
constant mode averager. The time lag or delay between the output of
the constant mode averager and the output of the linear mode
averager can be visualized by comparing the time difference 360
between the constant mode averager output value 340 and the linear
mode averager output value 350.
[0028] FIGS. 4-6 illustrate further comparisons between the
constant mode averager and the linear mode averager. FIG. 4 depicts
a noise-corrupted input signal 410, which increases in frequency
with time. FIGS. 5-6 depict the corresponding noise-free signal
400. FIG. 5 also depicts the constant mode averager output 500 in
response to the input signal 410, with the noise-free signal 400
shown for reference. FIG. 6 depicts the linear mode averager output
600 in response to the input signal 410, with the noise-free signal
400 also shown for reference. As shown in FIG. 5, the constant mode
averager output 500 suppresses noise from the input signal 410
(FIG. 4) but displays increasing time lag and amplitude deviation
from the input signal 400 as frequency increases. As shown in FIG.
6, the linear mode averager output 600 tends to track the input
signal 400 but also tracks a portion of the noise on the input
signal 410.
[0029] FIGS. 4-6 suggest that it would be advantageous to have an
averager that has variable characteristics between those of the
linear mode averager and those of the constant mode averager,
depending on signal confidence. Specifically, it would be
advantageous to have a variable mode averager that can be adjusted
to track input signal features with a minimal output time lag when
signal confidence is high and yet adjusted to smooth an input
signal when signal confidence is low. Further, it would be
advantageous to have a variable mode averager that can be adjusted
so as not to track superfluous input signal features regardless of
signal confidence.
[0030] One aspect of the present invention is a variable mode
averager having a buffer that stores weighted input values. A mode
input specifies a time value relative to the input values. A
processor is coupled to the buffer, and the processor is configured
to provide an estimate of the input values that corresponds to the
time value. In a particular embodiment, the mode input is
adjustable so that the estimate varies between that of a smoother
and that of a forward predictor of the input values. In another
embodiment, the mode input is adjustable so that the estimate
varies between that of a smoother and that of a filter of the input
values. In yet another embodiment, the mode input is adjustable so
that the estimate varies between that of an average of the input
values and that of a filter of the input values. The mode input may
be adjustable based upon a characteristic associated with the input
values, such as a confidence level. In one variation of that
embodiment, the estimate can be that of a smoother when the
confidence level is low and that of a filter when the confidence
level is high. The estimate may occur along a curve-fit of the
input values at the time value. In one embodiment, the curve-fit is
a linear LMS fit to the input values.
[0031] Another aspect of the present invention is a signal
averaging method. The method includes identifying signal values and
determining weights corresponding to the signal values. The method
also includes computing a trend of the signal values adjusted by
the weights. Further, the method includes specifying a time value
relative to the signal values based upon a characteristic
associated with the signal values and estimating the signal values
based upon the trend evaluated at the time value. The method may
also incorporate the steps of determining a confidence level
associated with the signal values and specifying the time value
based upon the confidence level. In one embodiment, the trend is a
linear LMS fit to the signal values adjusted by the weights. In
that case, the time value may generally correspond to the maximum
time of the signal values when the confidence level is high and
generally correspond to the weighted average time of the signal
values when the confidence level is low.
[0032] Yet another aspect of the present invention is a signal
averaging method having the steps of providing an input signal,
setting a mode between a first mode value and a second mode value
and generating an output signal from an estimate of the input
signal as a function of said mode. The output signal generally
smoothes the input signal when the mode is proximate the first mode
value, and the output signal generally tracks the input signal when
the mode is proximate the second mode value. The method may also
include determining a characteristic of the input signal, where the
setting step is a function of the characteristic. In one
embodiment, the characteristic is a confidence level relating to
the input signal. In another embodiment, the setting step
incorporates the substeps of setting the mode proximate the first
mode value when the confidence level is low and setting the mode
proximate the second mode value when the confidence level is high.
In another embodiment, the input signal is a physiological
measurement and the setting step comprises setting the mode
proximate the first mode value when the measurement is corrupted
with noise or signal artifacts and otherwise setting the mode
proximate the second mode value so that the output signal has a
fast response to physiological events.
[0033] A further aspect of the present invention is a signal
averager having an input means for storing signal values, an
adjustment means for modifying the signal values with corresponding
weights, a curve fitting means for determining a trend of the
signal values, and an estimate means for generating an output value
along the trend. The signal averager may further have a mode means
coupled to the estimate means for variably determining a time value
at which to generate the output value.
[0034] For purposes of summarizing the invention, certain aspects,
advantages and novel features of the invention have been described
herein. Of course, it is to be understood that not necessarily all
such aspects, advantages or features will be embodied in any
particular embodiment of the invention.
BRIEF DESCRIPTION OF THE DRAWINGS
[0035] A general architecture that implements the various features
of the invention will now be described with reference to the
drawings. The drawings and the associated descriptions are provided
to illustrate embodiments of the invention and not to limit the
scope of the invention. Throughout the drawings, reference numbers
are re-used to indicate correspondence between referenced elements.
In addition, the first digit of each reference number indicates the
figure in which the element first appears.
[0036] FIG. 1 is a time graph depicting the output of conventional
smoother, filter and predictor signal processors;
[0037] FIG. 2A is an amplitude versus time graph depicting the
output of a conventional constant mode averager;
[0038] FIG. 2B is an amplitude versus time graph depicting the
output of a conventional linear mode averager;
[0039] FIG. 3 is an amplitude versus time graph comparing the
outputs of a constant mode averager and a linear mode averager;
[0040] FIG. 4 is an amplitude versus time graph depicting a noisy
input signal;
[0041] FIG. 5 is an amplitude versus time graph depicting a
constant mode averager output signal corresponding to the input
signal of FIG. 4;
[0042] FIG. 6 is an amplitude versus time graph depicting a linear
mode averager output signal corresponding to the input signal of
FIG. 4;
[0043] FIG. 7 is an amplitude versus time graph illustrating the
characteristics of one embodiment of the variable mode
averager;
[0044] FIG. 8 is a flow chart of a variable mode averager
embodiment;
[0045] FIG. 9 is a block diagram illustrating a variable mode
averager applied to a pulse oximeter; and
[0046] FIG. 10 is an oxygen saturation output versus time graph for
a pulse oximeter utilizing a variable mode averager.
[0047] FIG. 11 is a flow chart of an output value selection process
of a signal processor, according to an embodiment of the
invention.
[0048] FIG. 12 is an amplitude versus time graph depicting
exemplary potential output values of the output value selection
process of FIG. 11, according to an embodiment of the
invention.
DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS
[0049] FIG. 7 illustrates the output characteristics of a variable
mode averager according to the present invention. The output of the
variable mode averager is a mode-dependent weighted linear average
(MWLA) defined as
v MWLA = mode .sigma. vt 2 .sigma. tt 2 ( t MAX - t WA ) + v WA (
22 ) ##EQU00018##
[0050] Equation (22) is a modified form of equation (20), which is
motivated by equations (2) and (19) along with recognition of the
relationships in Table 1.
TABLE-US-00001 TABLE 1 VARIABLE MODE AVERAGER OUTPUT mode = 0 mode
= 1 any mode .E-backward. 0 Processing Constant Mode Linear Mode
Variable Mode Function Averager Averager Averager Output v.sup.WA
v.sup.WLA v.sup.MWLA Defining Formula Equation (2) Equation (20)
Equation (22) Processing Method Weighted LMS Linear Fit FIG. 8
Average
[0051] As shown in Table 1, the Variable Mode Averager in
accordance with the present invention includes the constant mode
averager processing function and the linear mode averager
processing function, which are known processing functions. As
further shown in Table 1, the Variable Mode Averager of the present
invention also includes a variable mode averager processing
function, which will be described below.
[0052] As shown in Table 1, if mode=0, the variable mode averager
output is v.sup.WA, the output of the constant mode averager
function, which utilizes a weighted average of the input signal
values. If mode=1, the variable mode averager output is V.sup.WLA,
the output of the linear mode averager function, which utilizes a
LMS linear fit to the input signal values. If 0<mode<1, then
the variable mode averager output is V.sup.MWLA and has output
characteristics that are between that of the constant mode averager
and the linear mode averager. In addition, if mode>1, then the
variable mode averager behaves as a forward predictor.
[0053] As shown in FIG. 7, the variable mode averager output 720 is
an estimate of the input values at a selected time along the linear
fit 710, which indicates a trend of the input values. Assuming
0<mode<1, the mode variable determines the equivalent time
730 between t.sup.WA and t.sup.MAX for which the estimate is
evaluated, yielding an output value 740 between V.sup.WA and
V.sup.WLA. Thus, the mode variable acts to parametrically vary the
time delay between the input and output signals of the variable
mode averager, along with associated output characteristics. If
mode=0, the time delay 360 (FIG. 3) is that of the constant mode
averager. If mode=1, there is no time delay. If mode>1, the
variable mode averager is predicting a future input value based on
n past values. In this manner, the variable mode averager can be
used to advantageously adjust between the smoothing characteristics
of the constant mode averager and the tracking characteristics of
the linear mode averager, as described above with respect to FIGS.
4-6. The variable mode control determines how much of each
particular characteristic to use for a particular input signal and
application. For example, for time periods when the input signal
has low confidence, mode can be set further towards zero, although
with a time lag penalty. For time periods when the input signal has
high confidence or when minimum time lag is required, mode can be
set further towards one, or even to a value greater than one.
[0054] The variable mode averager has been described in terms of
weighted input values. One of ordinary skill, however, will
recognize that the present invention includes the case where all of
the weights are the same, i.e., where the input values are equally
weighted or unweighted. Further, although the variable mode
averager has been described in terms of a linear mode averager, one
of ordinary skill in the art will recognize that a variable mode
averager could also be based on non-linear curve fits, such as
exponential or quadratic curves indicating a non-linear trend of
the input signal. In addition, one of ordinary skill will
understand that the variable mode averager can be implemented to
operate on continuous data as well as infinitely long data. Also, a
variable mode averager based upon a linear fit by some criteria
other than LMS; a variable mode averager using any mode value,
including negative values; and a variable mode averager based upon
a linear fit where t.sup.min=min {t.sub.1, t.sub.2, . . . t.sub.n}
is substituted for t.sup.MAX in equation (22) are all contemplated
as within the scope of the present invention.
[0055] FIG. 8 illustrates one embodiment 800 of a variable mode
signal averager. After an entry point 802, variables are
initialized to zero in a block 808. Next, in a block 812, the sums
of various parameters are calculated by summing the products of
corresponding values in each of three buffers: an input data
buffer, value[i]; a weight buffer, weight[i]; and a time value
buffer, time[i]. In addition, the weight[i] values are summed.
These sums are calculated over the entire length of each buffer,
representing a single time window of n values. The calculations are
performed by incrementing a loop counter i in a block 810 and
reentering the block 812. The loop counter i specifies a particular
value in each buffer. Each time through the block 812, the variable
mode signal averager generates products of buffer values and adds
the results to partial sums. After completing the partial sums, the
variable mode signal averager then determines if the ends of the
buffers have been reached in a decision block 814 by comparing the
incremented value of i to the size of the buffer. If the ends of
the buffers have not been reached, the variable mode averager
increments the loop counter i and reenters the block 812;
otherwise, the variable mode averager continues to a decision block
816.
[0056] In the decision block 816, a check is made whether the sum
of the weights, sumw, is greater than zero. If so, each of the sums
of the products from the block 812 is divided by sumw in a block
820. In the block 820, the parameters computed are:
[0057] sumwv, the weighted average value of equation (2);
[0058] sumwt, the weighted average time of equation (10);
[0059] sumwvt, the weighted average product of value and time;
and
[0060] sumwt2, the weighted average product of time squared.
[0061] The sumwt2 parameter from the block 820 is then used in a
block 822 to calculate an autovariance sigma2tt in accordance with
equation (18b). If, in a decision block 824, a determination is
made that the autovariance is not greater than zero, then in a
decision block 825, a determination is made whether the sum of the
weights is greater than zero. If, in the decision block 825, the
sum of the weights is not greater than zero, then an output value,
out, which was initialized to zero in the block 808, is returned as
a zero value at a termination point 804. Otherwise, if, in the
decision block 825, a determination is made that the sum of the
weights is greater than zero, then in a block 826, the value of the
sum of the weights is assigned to the output value, out, and the
output value is then returned at the termination point 804.
[0062] If, in the decision block 824, the autovariance is
determined to be greater than zero, then in a block 827, the sumwvt
parameter from the block 820 is used to calculate a crossvariance
signal sigma2vt in accordance with equation (18a). Thereafter, the
maximum time, t.sup.MAX, as defined in equation (21), is determined
by finding the largest time value in the time buffer, time[i]. In
particular, in a block 829, the loop counter, i, is reinitialized
to zero and the value of t.sup.MAX is initialized to zero. Next, in
a decision block 832, the current value of t.sup.MAX is compared to
the current value of the time buffer indexed by the loop counter,
i. If the current value of t.sup.MAX is not less than the current
value of the time buffer or if the current weight value indexed by
i is not greater than zero, then t.sup.MAX is not changed and a
block 834 is bypassed. On the other hand, if the current value of
t.sup.MAX is less than the current time value and if the current
weight value is greater than zero, then the block 834 is entered,
and the value of t.sup.MAX is replaced with the current time value
time[i]. In either case, in a decision block 838, the loop counter,
i, is compared to the buffer size, and, if the loop counter, i, is
less than the buffer size, the loop counter, i, is incremented in a
block 830, and the comparisons are again made in the decision block
832.
[0063] When, in the decision block 838, it is determined that the
loop counter, i, has reached the buffer size, the variable mode
averager proceeds to a block 840 with the largest value of time[i]
saved as the value of t.sup.MAX. In the block 840, a single output
value, out, is computed in accordance with equation (22).
Thereafter, the output value, out, is limited to the range of
values in the input data buffer, value[i]. This is accomplished by
comparing out to the maximum and minimum values in the data buffer.
First, in a block 850, the maximum of the value buffer is
determined. Then, in a decision block 852, the maximum of the value
buffer is compared to out. If out is bigger than the maximum of the
value buffer, then, in a block 854, out is limited to the maximum
value in the buffer. Otherwise, the block 854 is bypassed, and out
remains as previously calculated in the block 840. Thereafter, in a
block 860, the minimum of the value buffer is determined. The
minimum of the value buffer is compared to out in a decision block
862. If out is smaller than the minimum of the value buffer, then,
in a block 864, out is set to the minimum value in the buffer.
Otherwise, the block 864 is bypassed, and out is not changed. The
value of out determined by the block 840, the block 852 or the
block 864 is then returned from the routine via the termination
point 804.
[0064] In one embodiment, the process described with respect to
FIG. 8 is implemented as firmware executing on a digital signal
processor. One of ordinary skill in the art will recognize that the
variable mode averager can also be implemented as a digital
circuit. Further, a variable mode averager implemented as an analog
circuit with analog inputs and outputs is also contemplated to be
within the scope of the present invention.
[0065] Pulse oximetry is one application that can effectively use
signal processing techniques to provide caregivers with improved
physiological measurements. Pulse oximetry is a widely accepted
noninvasive procedure for measuring the oxygen saturation level of
arterial blood, an indicator of oxygen supply. Early detection of
low blood oxygen is critical in the medical field, for example in
critical care and surgical applications, because an insufficient
supply of oxygen can result in brain damage and death in a matter
of minutes. Pulse oximeter systems are described in detail in U.S.
Pat. No. 5,632,272, U.S. Pat. No. 5,769,785, and U.S. Pat. No.
6,002,952, which are assigned to the assignee of the present
invention and which are incorporated by reference herein.
[0066] FIG. 9 depicts a general block diagram of a pulse oximetry
system 900 utilizing a variable mode averager 960. A pulse oximetry
system 900 consists of a sensor 902 attached to a patient and a
monitor 904 that outputs desired parameters 982 to a display 980,
including blood oxygen saturation, heart rate and a
plethysmographic waveform. Conventionally, a pulse oximetry sensor
902 has both red (RED) and infrared (IR) light-emitting diode (LED)
emitters (not shown) and a photodiode detector (not shown). The
sensor 902 is typically attached to a patient's finger or toe, or
to a very young patient's foot. For a finger, the sensor 902 is
configured so that the emitters project light through the
fingernail and into the blood vessels and capillaries underneath.
The photodiode is positioned at the fingertip opposite the
fingernail so as to detect the LED transmitted light as it emerges
from the finger tissues, producing a sensor output 922 that
indicates arterial blood absorption of the red and infrared LED
wavelengths.
[0067] As shown in FIG. 9, the sensor output 922 is coupled to
analog signal conditioning and an analog-to-digital conversion
(ADC) circuit 920. The signal conditioning filters and amplifies
the analog sensor output 922, and the ADC provides discrete signal
values to the digital signal processor 950. The signal processor
950 provides a gain control 952 to amplifiers in the signal
conditioning circuit 920. The signal processor 950 also provides an
emitter control 954 to a digital-to-analog conversion (DAC) circuit
930. The DAC 930 provides control signals for the emitter current
drivers 940. The emitter drivers 940 couple to the red and infrared
LEDs in the sensor 902. In this manner, the signal processor 950
can alternately activate the sensor LED emitters and read the
resulting output 922 generated by the photodiode detector.
[0068] The digital signal processor 950 determines oxygen
saturation by computing the differential absorption by arterial
blood of the red and infrared wavelengths emitted by the sensor
902. Specifically, the ADC 920 provides the processor 950 with a
digitized input 924 derived from the sensor output 922. Based on
this input 924, the processor 950 calculates ratios of detected red
and infrared intensities. Oxygen saturation values, v.sub.i, are
empirically determined based on the calculated red and infrared
ratios. These values are an input signal 962 to the variable mode
averager 960. Each of the input values, v.sub.i, are associated
with weights, w.sub.i, which form a second input 964 to the
averager 960. The individual weights, w.sub.i, are indicative of
the confidence in particular ones of the corresponding saturation
values, v.sub.i. A third input 974 sets the mode of the averager
960. The variable mode averager 960 processes the values, v.sub.i,
weights, w.sub.i, and mode as described above with respect to FIGS.
7-8 to generate values, z.sub.i. The values z.sub.i are the
averager output 968, from which is derived the saturation output
982 to the display 980.
[0069] The mode signal may be generated by an external source (not
shown) or it may be generated by another function within the
digital signal processor. For example, mode may be generated from
the confidence level of the input signal as illustrated in FIG. 9.
FIG. 9 illustrates a signal confidence input 972 to a mode control
process 970. The mode control process 970 maps the signal
confidence input 972 to the mode input 974 of the variable mode
averager 960. When the signal confidence is low, the mode control
970 sets mode to a relatively small value. Depending on the
application, mode may be set close to zero. When the signal
confidence is high, the mode control 970 sets mode to a relatively
large value. Some applications may prefer a mode of one for a high
signal confidence, but this is not a requirement. When the signal
confidence is neither high nor low, mode is set to an intermediate
value (in some applications, mode may be set to a value between
zero and one) empirically to achieve a reasonable tradeoff between
a fast saturation output response and saturation accuracy.
[0070] The signal quality of pulse oximetry measurements is
adversely affected by patients with low perfusion of blood, causing
a relatively small detected signal, ambient noise, and artifacts
caused by patient motion. The signal confidence input 972 is an
indication of the useful range of the pulse oximetry algorithms
used by the digital signal processor 950 as a function of signal
quality. This useful range is extended by signal extraction
techniques that reduce the effects of patient motion, as described
in U.S. Pat. No. 5,632,272, U.S. Pat. No. No. 5,769,785, and U.S.
Pat. No. 6,002,952, referenced above. Signal confidence is a
function of how well the sensor signal matches pulse oximetry
algorithm signal models. For example, the red and infrared signals
should be highly correlated and the pulse shapes in the pulsatile
red and infrared signals should conform to the shape of
physiological pulses, as described in U.S. patent application Ser.
No. 09/471,510 filed Dec. 23, 1999, entitled Plethysmograph Pulse
Recognition Processor, which is assigned to the assignee of the
present invention and which is incorporated by reference herein. As
a particular example, signal confidence can be determined by
measuring pulse rate and signal strength. If the measured signal
strength is within an expected range for the measured pulse rate,
then the confidence level will be high. On the other hand, if the
measured signal strength is outside the expected range (e.g., too
high for the measured pulse rate), then the confidence level will
be low. Other measured or calculated parameters can be
advantageously used to set the confidence level.
[0071] FIG. 10 illustrates the oxygen saturation output of a pulse
oximeter utilizing a variable mode averager, as described above
with respect to FIG. 9. A first output 1010 illustrates oxygen
saturation versus time for input oxygen saturation values processed
by a conventional weighted averager or, equivalently, by a variable
mode averager 960 with mode.apprxeq.0. A second output 1020
illustrates oxygen saturation versus time for the variable mode
averager 960 with mode.apprxeq.1. Each output 1010, 1020 indicates
exemplary desaturation events occurring around a first time 1030
and a second time 1040. The desaturation events correspond to a
patient experiencing a potentially critical oxygen supply shortage
due to a myriad of possible physiological problems. With
mode.apprxeq.1, the variable mode averager responds to the onset of
the desaturation events with less lag time 1050 than that of the
conventional weighted average. Further, the variable mode averager
responds to the full extent of the desaturations 1060 whereas the
conventional weighted average does not. When signal confidence is
low, the variable mode averager is adjusted to provide similar
smoothing features to those of a conventional weighted average.
When signal confidence is high, however, the variable mode averager
is advantageously adjusted to respond faster and more accurately to
a critical physiological event. The fast response advantage of the
variable mode averager has other physiological measurement
applications, such as blood-pressure monitoring and ECG.
[0072] The variable mode averager has been disclosed in detail in
connection with various embodiments of the present invention. One
of ordinary skill in the art will appreciate many variations and
modifications within the scope of this invention.
[0073] Thus, the variable mode averager disclosed in the foregoing
advantageously allows a signal processor the ability to reduce a
window of input values of, for example, a noisy signal, to a linear
fit of estimates of the desired signal, where a selected output
value from the estimates corresponds at least in part to the
selection of a time or mode. The mode can correspond, for example,
to a degree of confidence that the most recently received input
signal is an accurate representation of the desired signal.
However, a skilled artisan will recognize from the disclosure
herein that other mechanisms can be used to reduce a set of input
values to one or more appropriate output values.
[0074] For example, FIG. 11 illustrates a flow chart of an output
value selection process 1100 of a signal processor, according to an
embodiment of the invention. As shown in FIG. 11, the process 1100
includes BLOCK 1110, where the signal processor reduces a set or
window of input values to one or more or a set of estimates such as
the foregoing linear fit of the variable mode averager, or the
like. The process 1100 then moves to BLOCK 1112, where the
processor selects a time based, for example, on an indication of
confidence that the set of input values represents a desired
signal. The process 1100 in BLOCK 1114 then determines the output
value from the one or more, or set of estimates, which corresponds
to the selected time.
[0075] As will be appreciated by an artisan from the disclosure
herein, a wide variety of processes or mechanisms can be used to
reduce a set or window of input data to a set of estimates. For
example, the processor can execute the foregoing variable mode
averager, or other more conventional signal processing techniques,
such as, for example, simple averaging, weighted averaging, linear
averaging, filtering, prediction, or the like to reduce the set of
input data before selecting an appropriate time using the mode or
signal confidence.
[0076] According to one embodiment, the processor can reduce input
data through segmentation of a window of input values. For example,
FIG. 12 illustrates an amplitude versus time graph depicting an
input signal 1210, including a window 1212 of input values.
According to one embodiment, the input signal 1210 comprises, for
example, a desired signal corrupted by noise or a signal having
superfluous features. FIG. 12 shows an example of reduction of the
input values corresponding to the window 1212 to the linear fit
1214 of estimates using the foregoing variable mode averager. As
disclosed in the foregoing, when 0<mode<1, the mode variable
determines the equivalent time along the linear fit of estimates
for which an output estimate can be evaluated, thereby yielding an
output value between v.sup.WA and v.sup.WLA.
[0077] However, FIG. 12 also shows reduction of the input values
using segmentation. For example, a signal processor can segment the
window 1212 of input values into a plurality of segments, e.g.,
Segments A1, A2, A3, and A4. A artisan will recognize from the
disclosure herein that the use of four segments in FIG. 12 is for
illustration only, and the number of segments can be selected based
on a number of factors, such as, for example, the number of input
values in the window, signal processing speed and capacity,
experimental results, or the like.
[0078] According to one embodiment, the signal processor then
determines one or more or a set of estimates corresponding to each
segment. For example, in a straightforward implementation, the
signal processor may select simple weighted averages 1216, 1218,
1220, 1222, as estimates for each of the Segments A1, A2, A3, and
A4, respectively, of the window 1212 of input values. However, an
artisan will recognize from the disclosure herein that the
estimates for each segment may range in complexity from simple
selection of one or more of the input values, to more complex
calculations, such as application of the foregoing variable mode
averager or the like for the input values of each segment.
Moreover, the artisan will recognize from the disclosure herein
that the signal confidence indicator could be used to select one,
some, or all of the input values corresponding to one, some, or
all, of the segments for the generation of the estimate values.
[0079] Once the estimates for each segment are determined, the
signal processor selects a time corresponding to a degree of
confidence that the input values represent a desired signal. A
signal confidence indicator representative of whether the more
recently received input signal values are accurate representations
of a desired signal can be derived from, for example, an analysis
of the amount of noise in the signal, comparing the signal to
expected patterns or templates, or the like. The analysis of noise
can include a measurement of the entropy of the signal, adherence
of the signal to predetermined mathematical models based on a
priori information about the expected or desired signal, or the
like.
[0080] In the example illustrated in FIG. 12, the signal processor
may have higher confidence that the estimates from the segmentation
are representative of the desired signal, and therefore choose a
time 1224 where the estimates 1216-1222 are to be evaluated.
According to an embodiment using a more straightforward reduction
of the segments, such as, for example, the simple weighted
averaging, the signal processor may interpolate between estimates,
such as, output value 1228. When more complex mechanisms are used
to reduce the input data, determination of the output value 1228
may be directly calculated, such as, for example, calculation of
the output value using the variable mode averager. A skilled
artisan will also recognize from the disclosure herein that the
output value 1228 may comprise an interpolation between more
complex estimates, such as, for example, zero, first, second, etc.
order interpolation.
[0081] Selection of the time 1224 allows the signal processor to
slide the output value along, for example, the exemplary line 1214
or one of the segment estimates 1216-1222, thereby providing an
output value deemed likely to indicate the value of the desired
signal for the most recent input value of the time window 1212. For
example, as disclosed in the foregoing, when the signal confidence
indicator represents a higher confidence in the input values, the
output value 1228 may slide toward the most recent input values,
whereas the output value 1228 may side in the opposite direction
during a time of lower signal confidence.
[0082] The signal processing techniques disclosed in the foregoing,
which use a confidence measure to select an output value from a set
of estimates of a window of input values, is particular applicable
to the monitoring of critical physiological parameters in
patient-care settings. When applied to pulse oximeter oxygen
saturation measurements, the mode parameter can be varied in
real-time to achieve a tradeoff between the suppression of false
alarms and signal artifacts and the immediate detection of life
threatening oxygen desaturation events. For example, during the
monitoring of physiological parameters, it is often common for
motion artifacts or other abnormalities to appear in the input
value stream. Such abnormalities often decrease the confidence
measure, or mode, being used by the signal processor. As disclosed
in the foregoing, a lower signal confidence may lead to the signal
processor selecting a smoothed output estimate for a specific time
window, such as for example, time windows ranging from
approximately 15 seconds to over 1 minute, thereby avoiding
crossing over alarm-activating output thresholds. Alternatively, as
discussed with reference to FIG. 10, a signal abnormality
accompanied by high signal confidence leads the signal processor to
the selection of an output estimate that more accurately reflects
the extent of a potentially life threatening desaturation event,
thereby ensuring an appropriate alarm activation.
[0083] Although the foregoing invention has been described in terms
of certain preferred embodiments, other embodiments will be
apparent to those of ordinary skill in the art from the disclosure
herein. Additionally, other combinations, omissions, substitutions
and modifications will be apparent to the skilled artisan in view
of the disclosure herein. Accordingly, the present invention is not
intended to be limited by the reaction of the preferred embodiments
which disclose by way of example only, but is to be defined by
reference to the appended claims.
[0084] Additionally, all publications, patents, and patent
applications mentioned in this specification are herein
incorporated by reference to the same extent as if each individual
publication, patent, or patent application was specifically and
individually indicated to be incorporated by reference.
* * * * *