EKG BASED HEART RATE MONITOR

Abstract: A convenient, low cost, heart rate monitor. In one embodiment, a digital filter structure (64) includes a low pass filter having a notch at 60 Hz and a bandpass filter which amplifies signals in a frequency range from 10 Hz to 40 Hz and has a notch at 60 Hz. This digital filter has a recursive structure and uses integer coefficients to simplify and speed up the calculations. A four bit microcontroller (70) may implement the digital filter. The output of the digital filter is subject to enhancement signal processing to emphasize QRS complexes indicative of human heartbeats.

Description: EKG BASED HEART RATE MONITOR STATEMENT OF RELATED APPLICATIONS This application is a continuation-in-part and claims priority from U.S. Patent App. No. 08/554,373 filed November 8, 1995. The contents of this parent application are incoφorated by reference herein for all purposes. BACKGROUND OF THE INVENTION The present invention pertains to the field of pulse monitors, and, more particularly, to the field of pulse monitors that use EKG signals to detect the pulse rate. In the prior art, two basic types of pulse rate monitors exist. The first type uses visible or infrared radiation which is projected through the skin to detect from radiation reflected from or penetrated through capillaries under the skin, pulsations of blood flow. Typically, these devices come in the form of a digital watch with a photodetector on the face of the watch or as a desktop unit or unit that clips to a belt with a clip connected to base unit, the clip for attaching to a fingertip or earlobe. Visible or infrared light passing through the skin is detected by the photodetector and gives an indication of pulsations in blood flow in capillaries. From these pulsations, the pulse rate is calculated. Numerous examples of this type pulse monitor exist as they are commonly found on fitness equipment such as treadmills, stationary bicycles and stair climbing machines. Another example of this type system is a pulse rate monitor wrist watch made by Casio. This watch reads both blood pressure and pulse. The watch has two sensors on top of the watch. The sensor on the lower left of the face of the watch is a photosensor which is to be covered with the wearer's right index finger. The other sensor is to be covered by the right middle finger and is an electrode to pick up the EKG signals. The bottom plate of the watch body serves as the other electrode. There are several disadvantages to the photosensor/flow pulsation detectors. First, the finger position on the photosensor must be stable. Also, the force pressing the finger or ear lobe to the photodetector must be nominal. If the force is too high, the blood flow will be cut off, and no detection of blood flow pulsations can occur. If the force is too low, then any slight motion between the body and the sensor may cause inaccurate readings. Also, the reliability of the readings depends upon the ambient illumination (unless a separate photodiode supplies light for transmission through the skin) and upon the wavelength. Further, the flow pulse in a capillary looks like a sinusoidal waveform in shape. This makes it difficult to distinguish legitimate flow pulse signals from sinusoidally shaped noise waveforms. The second type of pulse rate monitor is the EKG type. These type pulse monitors work by picking up an EKG signal from the heart muscle itself and calculating the pulse rate from the EKG signal. One example of this type system is a pulse rate monitor wrist watch made by Casio. This watch reads both blood pressure and pulse. The watch has two sensors on top of the watch. The sensor on the lower left of the face of the watch is a photosensor which is to be covered with the wearer's right index finger and which detects fluctuations in light passing through the finger from ambient sources to determine when blood flow pulses occur. The sensor on the lower right of the face is one of two sensors for an EKG signal. The bottom surface of the watch is the other sensor for picking up the EKG signal. To use this watch to read blood pressure and pulse, the user must first use another independent instrument to measure blood pressure and pulse in an at-rest condition. These readings are then input to the watch. After inputting this data, the watch takes about 10-20 heartbeats with the user's fingers in contact with the two contacts on the face of the watch. During these 10-20 heartbeats, the watch learns the timing between the EKG signals picked up by the EKG contacts and the corresponding blood flow pulses in an at-rest condition. This timing serves as a reference for determination of blood pressure. The operative principle is determination by the watch of the timing between the EKG signal that causes the left ventricle to pump blood to the resulting pulse of blood flow detected by the photodetector in the capillaries of the wearer's fingertip. A drawback of this design is that the timing between the EKG pulse and the blood flow pulse changes with fitness level as the aerobic effect takes over and new blood flow paths are formed in the body. As a result, the manufacturer recommends that the basic at-rest data read from an independent instrument be updated every three months. This is inconvenient unless the owner of the watch also owns independent instruments to measure blood pressure and pulse rate. Further, the watch is incapable of measuring only pulse rate without also measuring blood pressure. EMG noise is particularly troublesome in EKG pulse monitors because its frequency is in the same range as the frequency of the sought after EKG signal. Therefore, special signal processing must be accomplished to separate EMG noise from the desired EKG signal. One type of signal processing methodology that has been tried in the prior art is autocorrelation. The EKG signal is sensed by probes which are typically mounted on the handles of exercise equipment which the user grabs while exercising. The signals sensed by these probes, which contain the EKG signal, are passed through an autocorrelator which performs a correlation calculation between a piece of the signal represented by one buffer's worth of digital samples and an adjacent portion of the signal in time represented by another set of samples. Signal indication logic monitors the output of the autocorrelator for the presence of a periodic signal and generates a synthetic candidate heart rate signal that has the same frequency as the periodic signal in the output of the autocorrelator. The difficulty with this approach is that the EMG signals during exercise are also periodic and will cause peaks in the autocorrelator output that do not represent periodic EKG signal. The class of products described above are generally used by health conscious people while working out. Because of the drawbacks of the approaches described above, there has arisen a need for a reliable pulse monitor that is small and can be worn on the wrist or attached to exercise equipment and requires no electrode gel or moisture or chest strap and which can accurately find the EKG signal despite low signal to noise ratio. SUMMARY OF THE INVENTION A convenient low-cost heart rate monitor is provided by virtue of the present invention. In one embodiment, a digital filter structure includes a low pass filter having a notch at 60 Hz and a bandpass filter which amplifies signals in a frequency range from 10-40 Hz and has a notch at 60 Hz. This digital filter has a recursive structure and uses integer coefficients to simplify and speed up the calculations. A four bit microcontroller may implement the digital filter. The output of the digital filter is subject to enhancement signal processing to emphasize QRS complexes indicative of human heartbeats. In accordance with a first aspect of the present invention, a heart rate monitor includes at least two electrical contacts for detecting the electrical signals when placed in contact with the body, an analog circuit that conditions the electrical signals, an analog-to-digital converter coupled to receive an analog output signal from the analog circuit and convert the analog signals to a plurality of digital samples, a digital filter for receiving the digital samples and suppressing noise signals that have frequencies below about 5-15 Hertz, and signals having frequencies above about 25-40 Hertz to generate filtered data, the digital filter being a recursive filter having integer coefficients, and an enhancement signal processor to receive the filtered data and highlight signals therein that have predetermined characteristics of QRS complexes in human heartbeat signals so as to generate enhanced digital data. In accordance with a second aspect of the present invention, a method for distinguishing pulses caused by heartbeats from other pulses includes steps of discarding pulses that arrive at times inconsistent with plausible beat-to-beat variation in heartbeat rate as representing artifacts rather than heartbeats, and discarding pulses having amplitudes varying more than a predetermined amount from previously received pulses representing heartbeats. A further understanding of the nature and advantages of the inventions herein may be realized by reference to the remaining portions of the specification and the attached drawings. BRIEF DESCRIPTION OF THE DRAWINGS Fig. 1 shows a typical application in a digital wrist watch for the EKG type heart rate monitor according to the teachings of the invention. Fig. 2 is a block diagram of the preferred embodiment of the electronics of the invention. Fig. 3 is an illustration of some of the waveforms involved in illustrating some of the issues dealt with by the teachings of the invention. Fig. 4 is an overview flow chart of the software architecture according to the teachings of the invention. Fig. 5 is a graph of the filter response of a digital low pass filter used in the preferred embodiment of the invention. Fig. 6 is a graph of the filter response of a digital bandpass filter used in the preferred embodiment of the invention. Fig. 7 is a graph of the total filter response resulting from combining the effects of the digital low pass filter and the digital bandpass filter. Fig. 8 is a more detailed flow diagram of the enhancement signal processing of the right branch in Fig. 4. Fig. 9 is an illustration of the waveforms that illustrate the operation of the processing of Fig. 8. Fig. 10 is a flowchart describing steps of post-processing to determine the user's heart rate. Fig. 11 is a flowchart describing further steps of post-processing to determine the user's heart rate. DESCRIPTION OF SPECIFIC EMBODIMENTS Referring to Fig. 1 , there is shown a typical application in a digital wrist watch for the EKG type heart rate monitor according to the teachings of the invention. The digital watch 10 includes a display such as LCD display 12 which is used to display the time, and when the pulse monitor mode is selected, displays the user's heart rate. In some embodiments, a separate display can be used to show the pulse rate with the time simultaneously displayed in display 12. The digital watch embodiment uses a three contact approach to help eliminate noise. Two electrical contacts 14 and 16 are placed on the front of the watch for the user to place his or her fingers on when the pulse mode is entered. A third electrical contact is located on the back side of the watch and is indicated in phantom at 18. The three contacts are connected to a differential amplifier inside the watch so that common mode noise is suppressed. It should be understood that the present invention is not limited to three contacts. The circuitry and software described below is incorporated into the watch 10 so that the unit is stand alone. Referring to Fig. 2, there is shown a block diagram of the preferred embodiment for circuitry to implement the teachings of the invention. Block 58 represents the electrical contacts of any of the embodiments discussed above. Block 60 is a differential amplifier or instrumentation amplifier that is coupled via bus 62 to the contacts. The differential amplifier amplifies the analog signals on the three conductors of bus 62. The common input on bus 62 is coupled to analog ground and the two remaining conductors are coupled to the plus and minus inputs of the differential amplifier. The differential amplifier serves to provide gain and to simultaneously eliminate common mode noise in the signal such 60/50 Hertz hum etc. The gain of the differential amplifier is set at a relatively low figure of 1-10 to prevent saturation of the operational amplifiers therein by the low frequencies that are still in the analog signal. Next, the output of the amplifier is filtered by an active analog bandpass filter 64. Active filters using RC components in operational amplifier circuits are used to implement the bandpass filter. The passband of this filter is centered on some frequency between 5 and 20 Hertz, preferably 10-15 Hertz, and has a passband of approximately 5- 40 Hertz. The purpose of this bandpass filter is to remove high frequencies from the analog signal to prevent aliasing. The low frequency corner of the passband also eliminates DC components and any low frequency drift of the baseline caused by respiration muscle contractions or other muscle contractions such as typically occur when the user is exercising. The gain of the bandpass filter is set between 1 and 10 at the center frequency. A passive bandpass filter could be used, but generally is not preferred since it requires too many components and the rolloff is not sharp enough. In the preferred embodiment, the passband filter is comprised of two separate hardware filters: a low pass filter with a first order rolloff and a comer frequency between 25-40 Hertz; and a high pass filter with a second order rolloff with a corner frequency of from 5-15 Hertz. The reason these two filters have different order rolloffs is to allow the differentiator to emphasize the high frequency components in the signal in a manner described below. In other words, the steeper rolloff on the low frequency corner provides better selectivity, while the less steep rolloff on the high frequency corner allows more high frequency component to reach the differentiator such that the differentiator will generate bigger slope numbers because of the sharp peaks in the signal represented by the data reaching the differentiator because of the higher content of high frequency components in the analog signals reaching the analog-to-digital converter. These sharper corners cause the differentiation operation in the digital signal processing portions of the circuit to be described below to generate higher peaks. These higher peaks are filtered out by the moving average function, but in the process, the average rises thereby causing the EKG signals to stand out better against the background noise. Next, the analog signal is amplified in amplifier 66 which has a gain of 50-1000 so that the overall gain is about 1000-10,000. Next, the analog output of the amplifier 66 is applied to the input of an analog-to-digital converter (hereafter AD converter) 68, which, in the preferred embodiment is integrated onto the microcontroller integrated circuit. The analog signal is converted to 8-bit digital samples at a sampling rate of 180 Hertz, or some other multiple of 60 Hertz preferably. Other sampling rates can also be used so long as the high frequency components of the real signal from the electrodes have been filtered out prior to the real signal reaching the analog-to-digital converter. If these high frequency components have not been filtered out, alias signals will appear in the EKG frequency range resulting from beating of the sampling rate with the high frequency components. This is why use of an analog bandpass filter in front of the analog-to-digital converter is preferred. Different numbers of bits in each sample could be used as well as a higher or lower sampling rate, but 180 Hertz is preferred to make the digital filtering easier since the 180 Hertz sampling rate is a multiple of the 60 Hertz frequency of a common source of noise. Further, the coefficients for the digital signal processing stages described below are set for a sample rate of 180 samples per second, so if other sample rates are used, the coefficients must be optimized again. In some embodiments, the AD converter is part of a microcontroller integrated circuit 70. The AD converter should be able to operate on a 3 volt supply or some supply voltage easily achievable with batteries and, for size considerations in some embodiments, preferably has a serial format output data stream if the AD converter is not integrated onboard the microcontroller. The digital data stream from the AD converter is input to the microcontroller 70 for further signal processing to be described below. The microcontroller is preferably a 4-bit or 8-bit machine such as a Samsung KS57C2408 or Hitachi H8/3812 or equivalent. These microcontrollers have on-board analog-to-digital converter, dual clocks, LCD drive and buzzer drives. There is no need for an on-board DSP or a separate DSP since the digital filter coefficients are integers which substantially simplifies and speeds up processing in the software filtering modules. The microcontroller is also coupled to a number of user interface peripherals represented by block 72. The user interface peripherals include LCD displays, mode control switches, buzzer(s), sensors for monitoring track/ wheel speed or as part of an automatic feedback loop which will cause more drag on the wheel/track when the heart rate drops below a target range, and output ports to which different resistors may be connected to change the gain of the operational amplifiers, output signals to implement automatic load variation in embodiments where the drag on the belt/wheel is automatically varied in accordance with the user's heart rate, such as circuitry to change the gears on a mountain bike to a lower gear or higher gear automatically based upon the user's heart rate, and alarm units to give users audible alarms when something is not working or needs adjustment. The microcontroller incoφorates a main clock 74 which can be shut down in power down mode while an independent digital clock also incoφorated within the microcontroller is not disabled during power down mode. In some embodiments, a separate digital clock integrated circuit 76 with its own clock 78 serves to keep track of the time/date etc. and control the display thereof. In alternative embodiments, the digital clock chip can be any digital clock chip where display 80 displays only time and date so long as the clock chip has an interface to the microcontroller 70 to receive heart rate data. However, in the preferred embodiment, digital clock IC 76 is incoφorated into the microcontroller and receives for display data encoding the heart rate reading, calories burned, speed, distance covered, exercise time etc. via the conductors of bus 82 for display on LCD display 80. There follows a discussion of the digital signal processing implemented by the firmware which controls operations of the microcontroller 70. However, to better understand the approach used, the characteristics of a typical EKG signal and an EKG signal with noise will first be discussed. Referring to Fig. 3, there is shown a number of waveforms on time lines (A) through (G). Time line (A) shows a typical EKG signal, which is sometimes referred to as a QRS complex. An EKG signal is comprised of a first small positive peak designated as P on time line (A), followed by a negative peak designated Q. After the negative Q peak, a very large positive peak immediately follows which is designated as R on time line (A). The R peak is immediately followed by a negative S peak which is immediately followed by a smaller positive T peak. The slope of the R peak is symmetrical on both sides and has a unique characteristic value. Time line (B) shows a EKG signal superimposed with 60 Hertz line interference. Time line (C) shows the result of passing the signal of time line (B) through a second order Butterworth lowpass filter. The signal on time line (C) still exhibits some 60 Hertz noise. Time line (E) represents and EKG signal superimposed upon a low frequency noise sources such as respiration EMG or exercise EMG signals. Time line (F) shows the result of passing the signal of time line (B) through a second order Butterworth high pass filter showing distortion of the signal from the action of the filter. Time line (D) shows the signal resulting from passing the noisy signal of time line (B) through an integer coefficient low pass filter such as is used in the invention. Time line (G) shows the signal resulting from passing the signal of time line (E) through an integer coefficient high pass filter such as is used in the invention. Both low and high pass integer coefficient filters are used in the invention to eliminate both 60 Hertz noise and low frequency noise. Referring to Fig. 4, there is shown a flow diagram of the main processing carried out by microcontroller 70 on the digital samples received from the AD converter 68. The digital filtering which results in the signals oh time lines (D) and (G) in Fig. 3 is represented by the digital filtering block 90. The function of this block is to remove high and low frequency noise from the digital samples. The digital filtering steps represented by block 90 comprises, in the preferred embodiment, a first step of low pass filtering the incoming digital data with a low pass filter having a notch at 60 Hertz and then passing the resulting filtered data through a bandpass filter which amplifies the signals in a frequency range from 10-40 Hertz and has a notch at 60 Hertz. The reason a low pass filtering step is used prior to passing the data through is to remove remaining undesired high frequency components in the incoming data prior to passing the signals through the bandpass filter for amplification and further filtering. Fig. 5 represents the frequency response of the preferred embodiment for the digital low pass filter implemented by the preferred embodiment of the digital filtering step 90 in Fig. 4. This digital filtering is achieved by implementing a recursive filter having integer coefficients to simplify and speed up the calculations required to implement the filter. However, any digital or analog filter that implements a frequency response roughly equivalent to the frequency response of Fig. 5 will suffice for puφoses of practicing the invention, e.g. , non-recursive, recursive with different integer coefficients or floating point coefficients, separate DSP etc. , analog or any combination of the above. In fact, the low pass filtering step can be eliminated altogether in some embodiments. The purpose of the low pass digital filter is to remove 60 Hertz noise and to enhance signal to noise ratio. Fig. 6 represents the frequency response of the preferred embodiment of the bandpass filter implemented as the second stage of digital filtering represented by block 90 in the preferred embodiment. This digital filtering frequency response is achieved by implementing a recursive filter having integer coefficients to simplify and speed up the calculations required to implement the filter. However, any digital filter that implements a frequency response roughly equivalent to the frequency response of Fig. 6 will suffice for puφoses of practicing the invention, e.g. , non-recursive, recursive with different integer coefficients or floating point coefficients, separate DSP etc. or any combination of the above. The bandpass filter function could also be done using an analog filter. One purpose of the bandpass filter is to reduce low and high frequency EMG signals caused by exercise, respiration and muscle tremor in addition to further reducing 60 Hertz hum noise. Some of the above mentioned EMG signals lie outside the passband and are therefore attenuated. EMG and other noise signals in the passband are removed by a learning, adaptive threshold detect operation and further uses rules of reason implemented in the software to arbitrate whether pulses which exceed the adaptive threshold are true heart beats or are artifacts or noise. The low pass filtering step can be eliminated in some alternative embodiments since the bandpass filter also removes the high frequencies. However, the low pass filter is preferred because if it is not present, there is less effective filtering out of 50 Hertz noise which is only an issue if the invention is to be used in any European or other country where 50 Hertz power is used. Returning to the consideration of the overall digital signal processing represented by Fig. 4, after digital filtering is performed, two different processes are performed to find the EKG signal in the filtered data. In the preferred embodiment, only the enhancement signal processing represented by block 92 is performed. In another embodiment, template matching or cross-correlation is also used to provide alternative results which can be cross-checked against the results of the enhancement signal processing. Referring to Fig. 8, there is shown a flow chart of the basic operations that are performed in the enhancement signal processing block 92. The first step is differentiation, represented by block 96. The reason this differentiation operation is performed is because the filtering process removed some of the information content of the EKG signal, but there is still a fairly high spectral content of high frequency Fourier components of the EKG signal caused by the Q, R and S peaks which is within the passband of both the analog and the digital filters. To enhance this component, the differentiation process is performed on the array of sample data to find the slopes of all peaks in the data. The incoming filtered data has a signal waveform which can look like the waveform at time line A in Fig. 9. The differentiation process receives this waveform and outputs a waveform that looks like the signal on time line B in Fig. 9. The slopes of the two sides of each peak in the signal on time line A are successively positive and then negative. Because a moving average (an integration step) is to be calculated to smooth out the output of the enhancement signal processing output and to improve the signal to noise ratio, negative peaks are undesirable because they tend to cancel positive peaks and make the signal to noise ratio worse. To get rid of the negative peaks and possibly improve the signal to noise ratio, in the preferred embodiment, a squaring operation represented by block 98 is performed. The squaring operation outputs a waveform like that shown on time line C of Fig. 9. Note that all negative peaks are converted to positive peaks. Because squaring requires multiplication, and because multiplication is slow and consumes too much computing resource, the preferred embodiment is to substitute a look up table containing the squares of all values likely to be found in the input signal to avoid the processing necessary in multiplication. This is much faster than actually performing the multiplication. In an alternative embodiment, an "absolute value" step can be performed for block 98. This absolute value operation receives both positive and negative peaks and outputs a signal which is all positive peaks, each representing the absolute value of the magnitude of a corresponding positive or negative peak. Squaring is preferred since this has the effect of multiplying the size of the peaks in the signal thereby enhancing the signal to noise ratio. More than one squaring operation may be applied, preferably two, to further enhance the signal-to-noise ratio. Finally, a moving average is computed as represented by block 100. The purpose of calculating this moving average is to smooth out any shaφ spike-like peaks in the output of the squaring operation or absolute value step. The moving average computation is like an integration which calculates the area under each peak in the output from the squaring or absolute value step. The moving average step also increases the signal to noise ratio by taking each pair of peaks in the signal output by block 98 and summing the area under each curve. This enhances the amplitude of the resulting single peak which results from each pair of adjacent peaks in the signal on time line C. For example, peak 102 results in the output of the moving average step from the integration or filtering of the pair of peaks 104 and 106 that arrived from the squaring step. The moving average is calculated by taking a predetermined number of sequential samples and adding their values and then dividing the sum by the number of samples so added. The individual samples in each moving average can be weighted in some embodiments. This process is carried out continuously for each contiguous group of samples. Equation (1) below represents the mathematical expression which completely specifies the digital signal processing which implements the recursive low pass filter step of block 90 in Fig. 4 with a notch at 60 Hertz. Equation (1): Y π = l/8*(2Y n ., - Y n _ 2 + X n - 2 X^ + X n _ 8 ) The Y terms represent previous outputs such that Y n _, represents the most recent previous output while Y n _ 2 represents the second most recent previous output. The X terms represent recent data, except that the result of a previous stage's calculation, e.g. , Y n in equation 1 becomes raw data point X n for the next stage, e.g. , X n in Equation (2) below is actually the result Y n from the calculation process represented by Equation (1). For example X n represents the most recent data while X n ^ represent the fourth most recent data and so on. Note how the coefficients of the recursive filter specification represented by Equation (1) are all integers thereby greatly speeding up and simplifying the calculation. There are many different combination of coefficients which can result in acceptable filter transfer functions. There may even be other filter specifications with more points or different subscripts which result in acceptable filter responses. Equation (1) only represents one acceptable example, and any alternative that results in a similar range of frequencies in the passband as shown in Fig. 5, and relatively similar gain levels will be acceptable. The factor 1/8 in the equation of Equation (1) is a normalization factor based upon the gain of the filter. Equation (2) represents the mathematical expression which completely specifies the digital signal processing which implements the recursive bandpass filter step of block 90 in Fig. 4 with a notch at 60 Hertz. Equation (2): Y n = l/12*(2Y n . 1 - 3Y n . 2 + 2Y n.3 + X n - 2 X n _ 6 + X n . 12 ) The same can be the about other possible alternatives to the filter specification of Equation (2) as was said about Equation (1). The factor 1/12 in the equation of Equation (2) is a normalization factor based upon the gain of the filter. Equation (3) represents the mathematical expression which completely specifies the digital signal processing which implements the differentiation step 96 in Fig. 8. Equation (3): Y n = l/4*(2* X n + X^ - X n . 3 -2* X^ ) Many other combinations of weighting coefficients, numbers of sample points and possibly even different subscripts exist. For example, the denominator 4 in Equation (3) is chosen so as to make the result of the differentiation process larger such that the input data to the squaring process is larger. This results in greater dynamic range. However, other denominator factors exist which can be used without departing from the invention defined in the claims. Any such combination that result in a filter characteristic that has the same relative range of frequencies within the first major loop of the transfer function where most of the useful work gets done will be acceptable to practice the invention. For example, different numbers of sample points with a different divisor will also work to practice the invention. Equation (4) represents the mathematical expression which completely specifies the digital signal processing which implements the moving average step 100 in Fig. 8. Equation (4): Y N = 77 ∑ X N-i ° i=0 The moving average function has the effect of amplifying the low frequency components. The number of points selected for the "window" over which the moving average is calculated is important in that it defines where the first notch is in the transfer function which has the characteristic of defining how high the amplitude is of the resulting moving average peak. Eight points were selected in the preferred embodiment to enhance the signal-to-noise ratio by raising the amplitude of the peak that results from each peak pair in the signal from the squaring or absolute value operation of block 98 in Fig. 8. Other values for signal-to-noise ratio would also work, but perhaps not as well. For example, 16 points would smooth the output more, but the amplitude of the peak is lower. A number of points fewer than 8 may result in a shaφer peak with more adjacent noise thereby resulting in lower signal to noise ratio. The 1/64 factor in front of the summation is a scaling factor which can be used as a digital gain control factor. In some embodiments, the adaptive learning process will be used to affect this digital gain control factor based upon characteristics found in the sample data. Referring again to Fig. 4, in an alternative embodiment, a second type of signal processing of the digital data after digital filtering is carried out as a cross check against the results of the enhancement signal processing or as an alternative thereto. The alternative or additional processing is symbolized by block 108 and involves template matching in the preferred embodiment or cross-correlation where adequate processing power is available to do the multiplications involved in the cross-correlation calculation. The template matched filtering is basically a crude but fast way of performing rudimentary cross-correlation to determine the degree of likeness between two waveforms. Template matching is discussed in greater detail in the parent application, U.S. Patent App. No. 08/554,373. The processes of block 108 and 92 in Fig. 4 have the effect of removing artifacts and noise and enhancing the peaks in the incoming data which are likely to be actual QRS EKG waveforms. In the process of block 92, the differentiation step of block 96 in Fig. 8 tends to remove or suppress EMG peaks and enhance EKG peaks because the EKG peaks have steeper slopes and shaφer tips than typical EMG waveforms. This results in larger numbers being output from the differentiator for EKG signals that have been differentiated than for EMG signals. This fact translates to higher peaks in both the positive and negative amplitudes in the signals on time line B of Fig. 9 representing the differentiator results from differentiating EKG QRS waveforms than result from differentiation of typical EMG pulses. This further suppresses EMG noise and enhances the signal to noise ratio. The template matching or cross-correlation process of block 108 removes artifacts by virtue of suppressing peaks that do not have the shape of the template. The template is designed to simulate closely the shape of the QRS waveform in a typical EKG waveform. In some embodiments, the shape of the template will be adjusted "on-the-fly" after actual EKG signals are isolated for this particular user so as to more closely match the shape of the QRS waveform of this particular user. Suppressing of EMG waveforms and other noise and artifacts occurs because these spurious signals do not have the same shape as the template and therefore result in lower correlation peaks in the output data of the template matching process. After enhancement of the digital data and removal of as many artifacts as possible in the enhancement process, either by the process of block 92 or block 108 in Fig. 4, the resulting digital data is analyzed to determine the user's current heart rate. This is done by post-processing heart rate determination module 109 in Fig. 4. The process represented by block 109 could be any one of a large number of different types of discrimination or arbitration routines to decide which of the pulses in the filtered, enhanced data from either path 110 or path 112 in Fig. 4 represent actual heart beats and to calculate the heart rate therefrom. Fig. 10 is a flowchart describing steps of post-processing to determine the user's heart rate in accordance with one embodiment of the present invention. Fig. 10 shows steps of first establishing that a series of pulses correspond to the user's heartbeat. The steps of Fig. 10 rely on both the amplitudes and positions of pulses to establish that a series of pulses correspond to heartbeats rather than noise artifacts that have survived the previous processing stages. At step 1002, post-processing heart rate determination module 109 awaits the first pulse above a predetermined amplitude threshold. In one embodiment, this threshold is 1/4 of the full scale value of the A/D converter output. Once this pulse arrives, post-processing heart rate determination module 109, at step 1004, looks for a second pulse having an amplitude within 50% of the amplitude of the first pulse and arriving at a time indicative of a realistic human heart rate, e.g., between 40 and 240 bpm. If no second pulse meeting these criteria arrives, processing returns to step 1002 to reawait a first pulse. It should be noted that if a second pulse arrives but does not meet the criteria for a second pulse, it may meet the criteria for a first pulse and step 1002 will be skipped. If a second pulse meeting these criteria arrives, this suggests that both the first and second pulse may both be heartbeats. At step 1006, post-processing heart rate determination module 109 awaits a third pulse having 50% of the amplitude of the average amplitude of the first and second pulses and arriving at a time defining an inteφulse period having a duration within 6.75% of the interval between the first pulse and the second pulse. If no such third pulse arrives, the first two pulses are discarded and processing returns to step 1002 to await a new first pulse. If a third pulse meeting the criteria arrives, post-processing heart rate determination module 109 begins a process of confirming the current measured heart rate by awaiting a fourth pulse. However, post¬ processing heart rate determination module 109 takes extra precautions to insure that the fourth pulse is not noise. First, at step 1008, post-processing heart rate determination module 109 waits for 50% of an average period determined to be the average of the period between the first and the second pulses and the period between the second and the third pulses. Post-processing heart rate determination module 109 then looks for a noise pulse that might begin before the expected arrival of the fourth pulse and extend into the expected arrival period. In one embodiment, the threshold for detecting such noise pulses starts at approximately 50% of the mean amplitude of the first three pulses and decreases in four steps to approximately 19% of the mean amplitude. At step 1010, post-processing heart rate determination module 109 spends the next 12.5% (or fourth of the remaining time) of the period until the expected arrival of the fourth pulse checking for a noise pulse having an amplitude above the initial noise pulse threshold of 50%. If such a pulse begins but does not end during this subperiod, then at step 1012, post- processing heart rate determination module 109 sets a noise pulse flag. If no such pulse arrives, or after step 1012, post-processing heart rate determination module 109 checks if a previous noise pulse ends during this subperiod without a new one starting, at step 1014. If a previous pulse ends, then the noise pulse flag clears at step 1016. After the noise pulse flag clears, or if the noise pulse flag is not cleared, at step 1018, the noise pulse threshold is lowered for the next subperiod of the last 50% of the period before the expected arrival of the fourth pulse. Then post-processing heart rate determination module 109 checks at step 1020 whether, the next 12.5% subperiod is the last before the expected arrival of the fourth pulse. If the next subperiod is not be the last, post¬ processing heart rate determination module 109 returns to step 1010 to adjust the noise pulse flag. If the next 12.5% subperiod is the last, at step 1022, the preferred embodiment sets and clears the noise pulse flag based on any detected pulse activity. The noise pulse threshold has now stepped down to its minimum. Once the last 6.75% of the expected inteφulse period arrives, a new pulse may be the expected heartbeat. If, at step 1026, a pulse arrives within 6.75% of the expected arrival time, and having amplitude within 50% of the average of the first three qualified pulses, and while the noise pulse flag is clear, then this is considered to be the fourth qualified pulse and the heart rate based on the first four qualified pulses is read out at step 1028. Requiring the noise pulse flag to be clear eliminates artifacts caused by earlier noise pulses extending into the expected arrival time of the fourth pulse. If no such fourth pulse arrives, the first three pulses are discarded and post-processing heart rate determination module 109 proceeds to step 1002 to await a new first pulse. After step 1028, post-processing heart rate determination module 109 may be considered to be in a steady state, with a current displayed heart rate being based on the current average period between pulses. However, post-processing heart rate determination module 109 continues to guard against erroneous readings caused by noise. The process of qualifying successive pulses as heartbeats is similar to the steps of qualifying the fourth pulse as shown in Fig. 10. In facts, steps 1102, 1104, 1106, 1108, 1110, 1112, and 1114 are essentially identical to steps 1002-1020 of Fig. 10. In Fig. 11, post-processing heart rate determination module 109 looks for noise pulses during the last 50% of the period between the last heartbeat and the expected arrival time of the next heartbeat as determined by the mean inteφulse period. At step 1116, during the last 12.5% of this inteφulse period, post-processing heart rate determination module 109 continues to set and clear the noise pulse flag based on received noise pulses but also awaits the next heartbeat pulse during the last 6.75% of the inteφulse period. At step 1118, post-processing heart rate determination module 109 determines if a pulse arrives within 50% of the median amplitude, within 6.75% of the average period, and while the noise pulse flag is clear. If such a pulse arrives, heartbeat display continues at step 1120. If no such pulse arrives, then post-processing heart rate determination module 109 checks at step 1122 whether a qualified pulse has in fact arrived in the last five seconds. If no qualified pulse has arrived in the last five seconds, it is necessary to reacquire the heartbeat at step 1124 by repeating the steps of Fig. 10. If a qualified pulse has arrived in the last five seconds, heartbeat display continues at step 1120 and post-processing heart rate determination module 109 repeats the steps of Fig. 11, looking for a new qualified pulse at the next expected arrival time. In the foregoing specification, the invention has been described with reference to specific exemplary embodiments thereof. It will, however, be evident that various modifications and changes may be made thereunto without departing from the broader spirit and scope of the invention as set forth in the appended claims and their full scope of equivalents.

Claims: WHAT IS CLAIMED IS: 1. Apparatus for determining heart rate from electrical signals generated within a body, comprising: at least two electrical contacts for detecting said electrical signals when placed in contact with said body; an analog circuit that conditions said electrical signals; an analog-to-digital converter coupled to receive an analog output signal from said analog circuit and convert said analog signals to a plurality of digital samples; a digital filter for receiving said digital samples and suppressing noise signals that have frequencies below about 5-15 Hertz, and signals having frequencies above about 25-40 Hertz to generate filtered data, said digital filter being a recursive filter having integer coefficients; an enhancement signal processor to receive said filtered data and highlight signals therein that have predetermined characteristics of QRS complexes in human heartbeat signals so as to generate enhanced digital data; and a post-processing heart rate determination signal processor that analyzes said enhanced digital data and determining the heart rate therefrom. 2. The apparatus of claim 1 wherein said analog circuit comprises: a differential amplifier having a gain of from approximately 1-10 coupled to said electrical contact means for amplifying any signals detected by said electrical contact means and suppressing any common mode noise; and an analog bandpass filter coupled to receive the output of said differential amplifier and having a passband from approximately 5 to 40 Hertz, said bandpass filter comprising a low pass analog active filter having a first order rolloff characteristic with a corner frequency between 25 and 40 Hertz, and a high pass analog active filter having a second order rolloff characteristic with a corner frequency between 5 and 15 Hertz. 3. The apparatus of claim 1 wherein said analog-to-digital converter uses a sample rate that is a multiple of the powerline AC voltage frequency; 4. The apparatus of claim 1 wherein said enhancement signal processor comprises: a differentiator for determining the slope of peaks in said filtered data and generating a slope signal which defines the magnitude and sign of the slopes of each portion of each said peak; a squaring processor for squaring the results from said differentiator; and a moving average processor for computing a moving average of said positive values only signal and outputting a moving average signal which defines said moving average over time. 5. The apparatus of claim 1 wherein said differentiator is a digital signal processor which computes the mathematical expression Y n = [2X n + X n _, - X n _ 3 -2X^/4, where Y n = represents slope at any particular sample time N, 2X n = represents twice the amplitude of the most recent digital data sample from the output of the previous filter, X Q .! = represents the amplitude of the next most recent digital data sample from the output of the previous filter, X n _ 3 = represents the amplitude of the third most recent digital data sample in the stream from the output of the previous filter, and 2X n _ 4 = represents twice the amplitude of the fourth most recent digital data sample from the output of the previous filter. 6. The apparatus of claim 4 wherein said moving average processor calculates said moving average as a stream of digital data samples with the most recent digital data sample representing the moving average represented by Y N and wherein each Y N in said moving average data stream is calculated by summing the 8 most recent data samples in said stream of data samples representing said filtered data and dividing the sum by 64. 7. The apparatus of claim 1 further comprising a display for displaying said heart rate determined by said post-processing heart rate determination signal processor means. 8. A method of detecting a heartbeat rate among unwanted signals such as EMG signals and AC hum, comprising the steps of: sensing signals from a body using electrodes in contact with the skin of the body; amplifying said signals while cancelling common mode noise therein; filtering out noise below and above the frequency range in which the desired heartbeat rate will lie; converting the filtered analog signal to a plurality of digital samples; digitally filtering the digital samples to remove further remnants of frequencies above and below the range of frequencies in which said heartbeat will lie and to suppress powerline hum at approximately 50-60 Hertz so as to generate filtered digital samples; digitally processing said filtered digital samples to enhance heartbeat peaks in the signals represented by said filtered digital samples to generate enhanced digital samples; processing said enhanced digital samples to determine said heartbeat rate. 9. The method of claim 8 wherein the step of digitally filtering the digital samples comprises the step of recursively filtering the sample data derived from the signals sensed from said body according to the following recursive filter specifications, recursively low pass filtering according to the equation: Y n = 1/8 (2Y n _, - Y n _ 2 + X n -2X n _ 4 + X n _ 8 ) where, Y n represents the output digital sample on each iteration, Y n .ι and Y n _ 2 represent previous outputs such that Y n .ι represents the most recent previous output while Y n _ 2 represents the second most recent previous output, and wherein X terms such as X n X n ^ and X n _ 8 represent recent raw data inputs such that X n represents the most recent raw data input, X n _ 4 represents the 4th most recent raw data input and X n _ 8 represents the 8th most recent raw data input, and recursively bandpass filtering according to the equation: Y„ = 1 1 (2Y n _, - 3Y n _ 2 + 2Y n _ 3 + X n -2X n ^ + X n . 12 ) where, Y n represents the output digital sample of the bandpass filtering step on each iteration, and Y n _ ! and Y n . 2 represent previous output digital samples of the bandpass filtering step such that Y n . l represents the most recent previous output while Y n _ 2 represents the second most recent previous output, and Y n _ 3 represents the third most previous output, and wherein X terms such as X n X Ώ and X n _ 8 represent recent sample inputs such as samples derived from the raw or analog filtered data or digital sample results of a previous stage's calculation such as the digital low pass filtering step, e.g., Y n output from the digital low pass filter becomes sample X^ for the recursive bandpass filter step defined by the equation given herein, and X^ represents the 6th most recent data input from the previous stage and X n _ 12 represents the 12th most recent raw data input from the previous stage. 10. The process of claim 9 wherein said process of digitally enhancing comprises the steps of: using a computer to differentiate the samples output from said recursive bandpass filter to determine the slope of peaks encoded in said digital sample data, and outputting differentiator digital samples encoding the results of said differentiating operation; using a computer to square the amplitude of signals encoded in said differentiator digital samples by looking up the squares in a lookup table so as to generate squared digital samples; and using a computer to compute the moving average of said squared digital samples. 11. The process of claim 10 wherein said step of using a computer to calculate said moving average comprises the steps of: using a computer to calculate a moving average of said squared digital samples according to the mathematical expression, ! 7 Y = ∑ X N-i w i-O where Y N represents moving average at any particular sample time N, X N _i = represents the amplitude of the digital data sample at time N-i. 12. Apparatus for determining heart rate from electrical signals generated within a body, comprising: at least two electrical contacts for detecting said electrical signals when placed in contact with said body; an analog circuit that conditions said electrical signals; an analog-to-digital converter coupled to receive an analog output signal from said analog circuit and convert said analog signals to a plurality of digital samples; a digital filter for receiving said digital samples and suppressing unwanted signals; an enhancement signal processor to receive said filtered data and highlight signals therein that have predetermined characteristics of QRS complexes in human heartbeat signals so as to generate enhanced digital data, said enhancement signal processor comprising: a differentiator for determining the slope of peaks in said filtered data and generating a slope signal which defines the magnitude and sign of the slopes of each portion of each said peak; a squaring processor for squaring the results from said differentiator; and a moving average processor for computing a moving average of said positive values only signal and outputting a moving average signal which defines said moving average over time. 13. In a heart rate monitoring system wherein heart activity is converted to electrical signals, a method for distinguishing pulses caused by heartbeats from other pulses comprising the steps of: a) discarding pulses that arrive at times inconsistent with plausible beat-to-beat variation in heartbeat rate as representing artifacts rather than heartbeats; and b) discarding pulses having amplitudes varying more than a predetermined amount from previously received pulses representing heartbeats. 14. The method of claim 13 further comprising the steps of: c) identifying an artifact pulse arriving before an expected arrival time of a heartbeat pulse; and d) identifying a pulse that arrives at said expected arrival time as a heartbeat pulse only if said artifact pulse has subsided. 15. The method of claim 13 wherein said a) step comprises discarding pulses that arrive at a time indicative of a change of period between heartbeats greater than approximately 6.75%. 16. The method of claim 13 wherein said b) step comprises discarding pulses that have amplitudes varying more than 50% from previously received pulses representing heartbeats. 17. The method of claim 14 wherein said c) step comprises the steps of: after approximately 50 % of a period between a last heartbeat pulse and said expected arrival time of a heartbeat pulse, setting a noise pulse threshold for detecting artifact pulses; lowering said noise pulse threshold until said expected arrival time; and identifying non-heartbeat pulses above said noise pulse threshold as artifact pulses. 18. In a heart rate monitoring system wherein heart activity is converted to electrical signals, a post-processing heartbeat determining system configured to distinguish heartbeat pulses from other pulses by virtue of being configured to: discard pulses that arrive at times inconsistent with plausible beat-to-beat variation in heartbeat rate as representing artifacts rather than heartbeats; and discard pulses having amplitudes varying more than a predetermined amount from previously received pulses representing heartbeats. 19. The system of claim 18 further configured to: identify an artifact pulse arriving before an expected arrival time of a heartbeat pulse; and identify a pulse that arrives at said expected arrival time as a heartbeat pulse only if said artifact pulse has subsided. 20. The system of claim 18 configured to discard pulses that arrive at a time indicative of a change of period between heartbeats greater than approximately 6.75%. 21. The system of claim 18 configured to discard pulses that have amplitudes varying more than 50% from previously received pulses representing heartbeats. 22. The system of claim 19 configured to: after approximately 50 % of a period between a last heartbeat pulse and said expected arrival time of a heartbeat pulse, set a noise pulse threshold for detecting artifact pulses; lower said noise pulse threshold until said expected arrival time; and identify non-heartbeat pulses above said noise pulse threshold as artifact pulses.

Inventors: LO THOMAS YING-CHING, TSAI YUH SHOW, LO, THOMAS, YING-CHING, TSAI, YUH, SHOW
Applicants: LO THOMAS YING CHING, SALUTRON INC, TSAI YUH SHOW, LO, THOMAS, YING-CHING, SALUTRON, INC., TSAI, YUH, SHOW
Application year: 1996
Main classification: A61B5
IPC codes: A61B5, G06F17