WO1993005574A1 - Ecg muscle artifact filter system - Google Patents

Ecg muscle artifact filter system Download PDF

Info

Publication number
WO1993005574A1
WO1993005574A1 PCT/US1992/007482 US9207482W WO9305574A1 WO 1993005574 A1 WO1993005574 A1 WO 1993005574A1 US 9207482 W US9207482 W US 9207482W WO 9305574 A1 WO9305574 A1 WO 9305574A1
Authority
WO
WIPO (PCT)
Prior art keywords
slope
determining
signal
ecg signal
ecg
Prior art date
Application number
PCT/US1992/007482
Other languages
French (fr)
Inventor
Victor M. De Pinto
Original Assignee
Quinton Instrument Company
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Quinton Instrument Company filed Critical Quinton Instrument Company
Publication of WO1993005574A1 publication Critical patent/WO1993005574A1/en

Links

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03HIMPEDANCE NETWORKS, e.g. RESONANT CIRCUITS; RESONATORS
    • H03H17/00Networks using digital techniques
    • H03H17/02Frequency selective networks
    • H03H17/06Non-recursive filters
    • AHUMAN NECESSITIES
    • A61MEDICAL OR VETERINARY SCIENCE; HYGIENE
    • A61BDIAGNOSIS; SURGERY; IDENTIFICATION
    • A61B5/00Measuring for diagnostic purposes; Identification of persons
    • A61B5/24Detecting, measuring or recording bioelectric or biomagnetic signals of the body or parts thereof
    • A61B5/30Input circuits therefor
    • AHUMAN NECESSITIES
    • A61MEDICAL OR VETERINARY SCIENCE; HYGIENE
    • A61BDIAGNOSIS; SURGERY; IDENTIFICATION
    • A61B5/00Measuring for diagnostic purposes; Identification of persons
    • A61B5/24Detecting, measuring or recording bioelectric or biomagnetic signals of the body or parts thereof
    • A61B5/30Input circuits therefor
    • A61B5/307Input circuits therefor specially adapted for particular uses
    • A61B5/308Input circuits therefor specially adapted for particular uses for electrocardiography [ECG]
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03HIMPEDANCE NETWORKS, e.g. RESONANT CIRCUITS; RESONATORS
    • H03H17/00Networks using digital techniques
    • H03H17/02Frequency selective networks
    • H03H17/0294Variable filters; Programmable filters

Definitions

  • the instant invention relates to a filter system for removing small amplitude, high frequency signals such as muscle artifact signals from an ECG signal, and more
  • a filter system having a low pass filter with variable cutoff frequencies which cutoff frequencies are implemented in response to the detection of a QRS complex in an ECG signal.
  • a common solution for the muscle artifact problem has been to pass the ECG signal through a low pass filter having a low cut-off frequency, typically approximately 25Hz. Since muscle artifact signals typically have significant energy at frequencies higher than 25Hz, the low pass filter effectively reduces the muscle artifact signal.
  • the low pass filter has the disadvantage of reducing the amplitude of the QRS complex because the high frequency components of the ECG signal necessary to describe the relatively high peaks of the QRS signal are also removed as the ECG signal passes through the low pass filter.
  • the input ECG signal is passed through a low pass filter having variable cut-off frequencies.
  • the filter is operated at a low cut-off frequency to filter the muscle artifact signals for a maximum smoothing effect.
  • the cut-off frequency is incrementally increased to a higher cut-off frequency to pass the QRS complex with a minimum reduction of amplitude of the QRS signal.
  • the cut-off frequency of the filter is
  • a system to determine the variable cut-off frequency of the low-pass filter is provided.
  • the R wave of the QRS complex typically has the largest
  • the R wave is detected and used to direct when the cut-off frequency of the low pass filter is to be altered.
  • the input ECG signal is simultaneously presented to an electronic delay and to the system which determines the variable cut-off frequency in response to the detection of the R wave.
  • the output of the electronic delay is in turn connected to the variable frequency low-pass filter which is directed by the R wave detection system to determine the variable cut-off frequency.
  • the cut-off frequency of the low pass filter under the direction of the system for determining the variable cut-off frequency, is incrementally altered to higher and higher cut-off frequencies until the maximum cut-off frequency is reached.
  • the filter remains at this maximum cut-off
  • the filter incrementally returns to its lowest cut-off frequency.
  • the filter Since the filter is directed to move to the higher cutoff frequency only upon the detection of the R wave, which is located in the middle of the QRS complex, the original input ECG signal is electronically delayed for a time sufficient to allow the R wave of the input ECG signal to be centered in the time span during which the variable cut-off frequency low pass filter is operating at its highest cutoff frequency. After passing through the delay circuitry, the ECG signal is passed to the variable cut-off frequency low pass filter for filtering. In this way, the filter is directed to operate at its highest low pass frequency during the time the QRS complex passes through the filter
  • the filter is directed to operate at its lowest low pass frequency during the passing of the part of the ECG signal between QRS complexes.
  • Figure 1 is a block diagram of the instant invention.
  • Figure 2 is a more detailed block diagram of the elements of the block diagram of Figure 1.
  • FIG. 3 is a graphic representation of the ECG signal in various stages of processing by the instant invention.
  • Figure 4 is a schematic representation of the
  • Figure 5 is a state diagram showing the implementation of the reference slope detection system.
  • Figure 6A is a schematic representation of the FIR filter of the instant invention.
  • Figure 6B is a chart containing the co-efficient values for the multiplication blocks of the FIR filter of Figure 6A and the corresponding cut-off frequencies.
  • the filter system generally labeled 10
  • An analog ECG signal taken from each of a series of electrodes placed on a patient is first converted to a digital signal through an A to D converter 9 such as is common in the art.
  • the digitized ECG signals from each electrode are thereafter passed to input 12 of the filter system 10.
  • Input 12 comprises all the ECG leads from the patient. All of the ECG signals are simultaneously passed to delay 16. Selected ECG signals are also simultaneously passed to the slope determination system 20.
  • parallel processing it is meant that a series of input signals produce a corresponding series of output signals.
  • This parallel processing is preferably accomplished by sequential processing by a single digital device such as a microprocessor of the individual input signals during the interval between the collection of samples so that a virtual or apparent parallel processing is performed.
  • a single digital device such as a microprocessor of the individual input signals during the interval between the collection of samples so that a virtual or apparent parallel processing is performed.
  • actual parallel processing of the ECG signals could be done by parallel hardware where the input signals are each processed by their own processing hardware.
  • individual pieces of processing hardware could include individual microprocessors for each signal.
  • ECG signals from the II, V2 and V5 leads of the commonly applied ECG leads are passed to the slope determination system 20 while each and every ECG lead from the patient's chest is passed to delay 16.
  • a typical input ECG signal is shown in Figure 3 labeled as "I" .
  • the horizontal axis represents time and the various electrical signals displayed are aligned vertically so that simultaneous events occur on the same vertical line. It is recognized that the ECG signal shown is representative of the ECG signals detected by each ECG electrode which signals may vary from ECG lead to ECG lead. However, for the purpose of illustrating the
  • ECG leads are labeled in Figure 2 as 12A-N, where N represents the total number of ECG leads attached to the patient.
  • the II, V2 and V5 ECG leads are referred to as "basis leads" and are numbered 22A, 22B and 22C respectively.
  • basis leads 22A, B, C correspond to their respective ECG input leads 12 so that the ECG signals from these ECG leads are passed to both the delay 16 and the slope determination system 20.
  • ECG leads II, V2 and V5 are for the purpose of
  • slope determination system 20 is contained within the block with the dotted outline labeled 20.
  • Each of the basis leads 22A, B, and C is connected to a respective difference system 24A, B, and C.
  • the difference system 24 is a software system shown in block diagram in Figure 4 which implements the following transfer function:
  • Difference system 24 comprises a series of unit delays 72 connected in serial to an input 25.
  • the unit delays 72 delay the signal for a preselected time.
  • the digital signal from the basis leads 22 is presented to input 25 where it passes from unit delay 72 to unit delay 72 after a pause at each delay corresponding to one sample interval.
  • the digital signal from basis leads 22 presented at input 25 is also simultaneously presented to adder/substracter 27 via line 29. Adder/substracter 27 substracts the value of the input signal delayed by the series of unit delays 72 from the value of the current sample present at input 25.
  • difference system 20 The purpose of difference system 20 is to get a kind of long term average slope of the input ECG signal.
  • the comparatively long term slope is used because the filter 10 responds to the detection of the R wave to control the filtering process, which R wave has the highest amplitude and also the highest slope over several samples of any part of the ECG signal. The reason the sample point 5 samples prior to the current sample point is used to determine the average slope of the input signal rather than the
  • the difference system determines the slope over 5 sample points so that the local variations due to such things as noise and muscle artifact signals may be effectively averaged out. Because the sample rate in the preferred embodiment is 500 samples per second, the average slope over 5 samples is the average slope over the last 1/100th of a second. The ultimate effect of this difference system 24 is that the R wave clearly stands out from the noise.
  • Absolute value system 26 contains individual absolute value systems 26A, B, C, connected to difference system 24A, B, C
  • Absolute value system 26 finds the absolute value of each slope found by the difference system 24 and passes this absolute value to its output. The slope
  • determination system 20 is interested in determining the absolute slope of the ECG signal since the slope of the R wave will typically have a large positive value as the amplitude of the R wave increases and a large negative value as the amplitide of the R wave decreases.
  • the absolute value of the slope if for some reason the large positive slope of the increase in the amplitude of the R wave is masked or distorted, the system would still be able to detect the R wave from the large absolute value of the slope of the R wave as the amplitude of the R wave
  • the output of the difference system 24 is passed directly to the maximum slope determination system 28.
  • the large negative slope of the R wave as its amplitude decreases would not be used to detect the R wave if the slope of the R wave as its amplitude increases is masked or distorted.
  • the maximum slope determination system 28 compares the values of the outputs of each absolute value system 26A, B and C and passes the maximum value to its output.
  • the output of maximum slope determination system 28 is shown in Figure 3 as "A". Because the basis leads II, V2 and V5 are placed in various positions on the body, they each detect the ECG signal in different ways. For this reason, one of the basis leads 22 may detect a higher amplitude of the R wave, which will most likely result in a correspondingly greater slope than that found from the detection of the R wave from other leads.
  • the maximum slope determined by each of the difference systems 24 is used to detect the R wave and consequently control the band width control mechanism 30.
  • the slope determination system 20 described above uses three basis leads in its determination of the maximum value of the slope of the R wave. However, a greater or lesser number of basis leads could be used where each basis lead would be provided with its own difference system 24 and absolute value determination system 26 whose output would then be passed to maximum slope determination system 28. In fact, a single basis lead having its corresponding
  • difference system 24 and absolute value determination system 26 could be used if desired.
  • the output of the maximum slope determination system 28 is passed from the slope determination system 20 to the band width control mechanism 30.
  • an erode system 32 is located at the input to the band width control mechanism 30. The purpose of the erode system 32 is to minimize the high frequency noise between QRS complexes present on the output of the maximum slope determination system 28. This high frequency noise is manifest as "fuzz" on the ECG signal at the output of the maximum slope
  • the particular erosion system 32 used in the instant invention is a special case of grayscale erosion defined as:
  • G the domain of g.
  • the structuring function g(j) is defined as:
  • W erode is the number of sample points used in the erosion operation.
  • W erode equals 4, so that the values of "j" are 0, 1, 2 and 3.
  • the grayscale erosion is a special case of the well known erosion operation where the value of the structuring function g(j) equals 0 wherever g(j) is defined.
  • the erode system 32 in the preferred embodiment takes the last four samples and finds the minimum value.
  • the minimum value is then passed to the output of the erode system 32.
  • the output of the erosion system 32 is shown in Figure 3 and is labeled "S".
  • S As can been by comparison to the maximum absolute slope "A", also shown in Figure 3, the eroded slope signal "S" has slightly lower amplitudes on the QRS signal, but has a significant reduction of noise between the QRS complexes.
  • the structuring function g(j) equals 0 wherever g(j) is defined, other values of the structuring function may be used as desired.
  • the output of the erosion system 32 is simultaneously passed to a dilation system 34 and a reference slope
  • the dilation system 34 used in the instant invention is a special case of grayscale dilation defined as:
  • G the domain of g.
  • the structuring function g(j) is defined as:
  • G ⁇ 0, - 1, Vietnamese, - (W dilate - 1) ⁇ .
  • W dilate is the number of sample points used in the dilation operation.
  • W dilate equals 4, so that the values of "j" are 0, 1, 2 and 3.
  • the grayscale dilation is a special case of the well known dilation operation where the value of the structuring function g(j) equals zero wherever g(j) is defined.
  • the structuring function g(j) in the preferred embodiment equals 0 wherever g(j) is defined, other values of the structuring function may be used as desired.
  • the dilation system 34 passes to its output the maximum value for the last predetermined number of samples, called a "dilation sample length", from the erosion system 32.
  • the dilation sample length equals 47 samples so that the output of dilation system 34 equals the maximum value contained in the last 47 samples.
  • the number 47 is chosen because at a sample rate of 500 samples per second, 47/500 of a second is slightly larger than the time length of a QRS complex.
  • the output of dilation system 34 will eventually be used to time the duration that the linear smoothing filter 18 operates at its highest low pass cut-off frequency in order to pass the QRS wave with a minimum of amplitude reduction.
  • the output of dilation system 34 is passed to a ratio determination system 38 at ratio input 39 (b).
  • the output signal of dilation system 34 is shown in Figure 3 labeled as "D".
  • the output from the erosion system 32 is passed to a reference slope determination system 36
  • the reference slope determination system 36 holds the long term maximum slope found by the maximum slope determination system 28 and passed through the erosion system 32 as directed by a software controlled state machine shown symbolically in Figure 5.
  • the state machine is used to find the new peak on the reference slope shown in Figure 3, labeled as "R”.
  • a slope threshold, shown in Figure 3 labeled as "L” is used as a long term maximum value of the eroded slope "S” which may decay in time if the values of "S" fail to periodically have comparatively high values.
  • the state machine compares the values of the eroded slope "S" to the slope threshold "L” to determine the reference slope "R".
  • the state machine consists of states "0", “1", “2”, and "3" which represent logical conditions.
  • Counter 1 is used as the timer for "State 1", the logical state where the slope threshold "L” is a constant.
  • Counter 2 is used as a timer for logical “State 2” which causes the slope of threshold “L” to decay while no new peak value of the eroded slope "S” is found.
  • Counter 3 is used as the timer for logical "State 3" which finds a new peak for slope threshold “L” when the eroded slope "S" is greater than or equal to the slope threshold "L”.
  • step 40 initializes Counter 0 to 75 and Counter 1 to 160.
  • the value of the register R which contains the reference slope "R”
  • the value of register L which contains the slope threshold "L”
  • step 40 the program passes from step 40 to "State 0" which is labeled 42.
  • "State 0" 42 is the Initial Clearing Time state for the state machine. While at “State 0", the program passes in a loop from "State 0" 42 back to "State 0
  • step 44 decrements Counter 0 from its initial value of 75 to 0. During this time, transient effects from turning on the device are allowed to dissipate and a collection of sample points is accumulated.
  • Counter 0 has decremented to 0, the program leaves "State 0" 42 and passes to "State 1" labeled 46 along path 45.
  • State 1 is a logical state where the program will reside while the value of the slope threshold “L” is held constant. As noted above, in the initialization step 40, the value of the slope threshold “L” is set equal to zero. At “State 1", the value of the eroded slope "S" is
  • Step 58 initializes Counter 3 to 75 and sets the value of the slope threshold "L” equal to the value of the eroded slope "S". In other words, the value of the slope threshold "L” is now set equal to the higher or equal value of the eroded slope "S".
  • step 58 the program passes to "State 3" labeled 60.
  • the purpose of "State 3" 60 is to find a new peak for the reference slope "R". While at “State 3" 60, so long as the value of the eroded slope "S" is greater than or equal to the value of the threshold slope "L", the program will loop from “State 3" 60 through step 58 back to "State 3" 60. This has the effect of raising the value of "L” to the continuously increasing value of "S”. However, if the value of "S" becomes less than the value of "L”, the program will pass from "State 3" 60 through step 62, which decrements Counter 3 by 1, back to "State 3" 60.
  • Step 50 initializes Counter 2 to 1000. Thereafter, the program continues on path 47 to
  • Step 54 decrements Counter 2 by 1 and multiplies the current value of the slope threshold "L” by a decay value.
  • the decay value equals .9995. So long as the value of "S" is less than “L” the value of "L” will decay by .05% on each pass through step 54 until the value of Counter 2 is decremented to 0. Because Counter 2 was initialized to contain 1000 and because "L” decays by .05% on each loop through step 54, after passing through step 54 for the 1000 counts in Counter 2, the value of "L” will decay to .606 its original value. This process of having "L” decay is shown in Figure 3 labeled "State 2" on the signal line corresponding to the threshold slope "L".
  • Step 56 initializes Counter 2 to a new value of 1000, and sets "R", the reference slope value, and the slope threshold "L” equal to R 0 .
  • R 0 is chosen to represent a small, possibly even zero value. A non-zero value for R 0 may be chosen so that the program will remain at "State 2" 52 for small values of the eroded slope. If a zero value is chosen for R 0 , the program will immediately leave "State 2" 52 via path 57 to step 58 because the value for "S" will be greater than or equal to the zero value for "L".
  • step 56 the program continues back to "State 2" 52. If “S" remains less than “L”, the program will continue to pass through step 54, looping from "State 2" back to "State 2" as described above. In this way, the value of the slope threshold "L” will continue to decay.
  • the program exits "State 2" 52 along path 57 and passes to step 58 where the process of finding a new peak value for the reference slope "R" is determined as described above.
  • the value of "160” is used to initialize Counter 1 so that "L” will remain constant for a time of 160/500 of a second before the value of "L” is decayed by passing to "State 2" 52. This allows the state machine to avoid moving to "State 3" 60 upon detection of a value for "S” larger than the decayed value of "L”. Therefore, if the state machine moved from "State 1" 46 to "State 2" 52 immediately upon "S" becoming less than "L”, the value of "L” would immediately begin to decay by the program passing through step 54.
  • step 58 may be entered from either “State 1" along path 49, "State 2" along path 57 or “State 3" along path 59. Regardless of the path taken to step 58, the actions of step 58, and the corresponding passing of the program into and the operation of "State 3", occur
  • Ratio determination system 38 compares the output from the dilation system 34, which is shown in Figure 3 labeled as the dilated slope "D", with the output of the reference sloped determination system 36 which is shown in Figure 3 labeled as reference slope "R" to produce a ratio "r".
  • the value of the dilated slope "D" increases substantially with the presence of the R wave, and remains high for the "dilation sample length", which in the preferred embodiment is 47 samples. This is because the current dilated slope value is the maximum value of the slopes of the last 47 samples.
  • the slope values of the ECG signal are typically comparatively small.
  • the slope of the ECG signal at the R wave becomes quite high so that as the R wave begins its rapid climb in amplitude, a correspondingly high slope is also present.
  • the reference slope "R” is the maximum value for the eroded slope found during operation of the state machine unless no R waves are found.
  • the reference slope "R" is set to a low value RQ by step 56 of "State 2" of the state machine of the reference slope determination system 36. As soon as a subsequent R wave is detected, the state machine will re-establish a maximum value for the reference slope "R" as explained above.
  • Filter 18 is preferably a finite impulse response (FIR) filter as shown schematically in Figure 6A.
  • FIR finite impulse response
  • the FIR filter is a twelfth order filter.
  • filter 18 has six different cut-off frequencies shown in the chart of Figure 6B corresponding to different values of ratio "r" so that the filter 18 can smoothly change cut-off frequencies from the lowest to the highest cut-off
  • the cut-off frequency used in filter 18 depends on the ratio "r" of the dilated slope "D" to the reference slope "R” as explained above. Different values of ratio “r” are designated by subscripts from 0 to 5 corresponding to the 6 different cut-off frequencies. As shown in Figure 6B, when the ratio “r” is greater than or equal to .64, corresponding to a ratio of "r 0 ", the filter operates at its maximum cutoff frequency. Conversely, when the ratio "r” is less than .2, corresponding to a ratio of "r 5 ", the filter operates at its minimum cut-off frequency.
  • the other four cut-off frequencies correspond to the following values for "r”: .53 ⁇ r 1 ⁇ .64, .42 ⁇ r 2 ⁇ .53,
  • FIG. 6A the schematic representation of the filter 18 is shown in Figure 6A.
  • the ECG signal from delays 16A-N are passed to filter input 70.
  • the filter input 70 In the
  • filter 18 is implemented on a
  • each ECG signal is preferably passed to filter 18 in a sequential order so that virtual parallel processing of the ECG signals takes place.
  • each ECG signal may have its own filter 18 as desired.
  • filter input 70 the input ECG signal is sequentially passed through a series of unit delays 72.
  • filter 18 has 12 unit delays 72.
  • a multiplication block 74 denoted as C n according to the coefficient values it will contain as explained hereafter, is connected to the line before each unit delay 72.
  • a line connecting unit delays 72 or leading from the line connecting unit delays 72 to multiplication blocks 74 indicates that
  • unit delays 72 there are 12 unit delays 72 with 12 corresponding multiplication blocks C 0 through C 11 connected to the inputs of the 12 unit delays 72.
  • output of the twelfth and farthest unit delay 72 from filter input 70 is connected to a multiplication block C 12
  • Multiplication blocks C 0 through C 12 contain
  • multiplication blocks C 0 through C 12 The values of the coefficients determines the cut-off frequency of the filter 18 according to the operation of such FIR filters as is well understood in the art.
  • the coefficients C 0 through C 12 for the respective cut-off frequencies are shown in the chart of Figure 6B.
  • the cut-off frequencies corresponding to the use of respective coefficients C 0 through C 12 are also shown in Figure 6B.
  • the resulting values from multiplication blocks 74 are passed to adder 76 which adds the values from each of the multiplication blocks 74 and passes the sum to normalizing block 78.
  • Normalizing block 78 multiplies the output from adder 76 by the inverse of the sum of the values of the coefficients C 0 through C 12 . The result of this
  • each of the ECG inputs 12A-N are passed to the delay 16 which delays the input ECG signal for an amount of time equal to the processing time of the slope determination system 20 and the band width control mechanism 30 plus one half of the dilation sample length.
  • This timing allows the R wave in the input ECG signal to be precisely centered in time on the "window" that the filter 18 is open to its maximum cut-off frequency as directed by the band width control mechanism 30 as described above.
  • each individual ECG input signal 12A-N is passed to its corresponding FIR filter 18A-N.
  • each of these individual ECG signals is preferably sequentially passed to a single digital FIR filter 18 so that a series of virtual parallel filters 18A-N is produced.
  • the filtered ECG signal is output through output 14A-N of filter 18 to an appropriate device to record or display the respective filtered ECG signals such as a video display screen or a chart recorder.
  • the bandwidth is controlled by the slope
  • bandwidth is reduced in order to attenuate low amplitude noise.
  • This maximum absolute slope is passed through an erosion operator and then a dilation operator.
  • abslope0 fads(difference(basiss_x, difsamples0, difference_order));
  • abslope1 fabs(difference(basis_ y, difsamptes1, difference_order));
  • abslope2 fabs(differen ce(ba sis_z, difsamples2, differcnce_order));
  • max_absolute_slope3 max(absIope2, (max(abslope0, abslope1)) );
  • eroded_slope erode_ (max_absolute_slope3, erode_delays, erosion_size);
  • dilated_slope dilate_ (eroded_slope, dilate_delays, dilation_size );
  • FIR_bandwidth BANDWIDTH_17_HZ
  • FIR_bandwidth B ANDWIDTH_25_HZ;
  • FIR_ bandwid h BANDWI DTH_32_HZ
  • FIR_bandwidth BANDWIDTH_45_HZ
  • FIR_bandwidth BANDWIDTH_77_HZ
  • FIR_bandwidth BANDWIDTH_100_HZ
  • This delay function is used ahead of the display FIR filters.
  • FIR lowpass filter used in the display channels.
  • the cutoff frequency of this filter can be varied from 17 Hz
  • the filter will normally operate at 100 Hz bandwidth during
  • output_multiplier 0.576701268743; /* 1 / (1 + 2 * 0367) */
  • output_nultiplier 0.2; /* 1/5 */
  • output_multiplier 0.142857142857; /* 1/7 */ break;
  • filter _out sum * output_multiplier; /* Multiply sum by output gain. */ return (filter_ out);
  • the reference slope is essentially a long term maximum of the
  • slope _threshold is set equal to _slope and a counter is started, when the counter times out, the short term maximum slope has been found, and reference _slope is set equal to slope _threshold.
  • reference _sope is modified only if slope exceeds
  • slope _threshold is a long-term maximum absolute slope.
  • This function is a state machine.

Abstract

A filter system for removing small amplitude, high frequency signals such as muscle artifact signals from an ECG signal is provided. The filter system includes a low pass filter with variable cutoff frequencies, an electronic delay and a system for detecting the R wave in the ECG signal and determining the variable cutoff frequency in response to the detection of the R wave. A digitized input ECG signal is simultaneously presented to the electronic delay and the system for detecting the R wave. During the portion of the ECG signal exclusive of the QRS complex, the filter is operated at a low cutoff frequency to filter the muscle artifact signals for a maximum smoothing effect. At a time slightly prior to the onset of the QRS complex, the cutoff frequency is rapidly incrementally increased to a higher cutoff frequency to pass the QRS complex with a minimum reduction of amplitude of the QRS signal. At the end of the QRS signal, the cutoff frequency of the filter is rapidly incrementally returned to the low cutoff frequency.

Description

ECG MUSCLE ARTIFACT FILTER SYSTEM
Technical Field
The instant invention relates to a filter system for removing small amplitude, high frequency signals such as muscle artifact signals from an ECG signal, and more
particularly relates to a filter system having a low pass filter with variable cutoff frequencies which cutoff frequencies are implemented in response to the detection of a QRS complex in an ECG signal.
Background Art
A common problem in electrocardiography is the
contamination of the ECG signal with artifacts from skeletal muscle tremors, which appear on the ECG signal as rapid, wavy deflections. These deflections render the
electrocardiogram difficult to read. A common solution for the muscle artifact problem has been to pass the ECG signal through a low pass filter having a low cut-off frequency, typically approximately 25Hz. Since muscle artifact signals typically have significant energy at frequencies higher than 25Hz, the low pass filter effectively reduces the muscle artifact signal. However, the low pass filter has the disadvantage of reducing the amplitude of the QRS complex because the high frequency components of the ECG signal necessary to describe the relatively high peaks of the QRS signal are also removed as the ECG signal passes through the low pass filter.
Disclosure of Invention
The input ECG signal is passed through a low pass filter having variable cut-off frequencies. During the portion of the ECG signal exclusive of the QRS complex, the filter is operated at a low cut-off frequency to filter the muscle artifact signals for a maximum smoothing effect. At a time slightly prior to the onset of the QRS complex, the cut-off frequency is incrementally increased to a higher cut-off frequency to pass the QRS complex with a minimum reduction of amplitude of the QRS signal. At the end of the QRS signal, the cut-off frequency of the filter is
incrementally returned to the low cut-off frequency.
A system to determine the variable cut-off frequency of the low-pass filter is provided. In the system, because the R wave of the QRS complex typically has the largest
amplitude and corresponding slope of any portion of the ECG signal, the R wave is detected and used to direct when the cut-off frequency of the low pass filter is to be altered.
The input ECG signal is simultaneously presented to an electronic delay and to the system which determines the variable cut-off frequency in response to the detection of the R wave. The output of the electronic delay is in turn connected to the variable frequency low-pass filter which is directed by the R wave detection system to determine the variable cut-off frequency. Upon detection of the R wave, the cut-off frequency of the low pass filter, under the direction of the system for determining the variable cut-off frequency, is incrementally altered to higher and higher cut-off frequencies until the maximum cut-off frequency is reached. The filter remains at this maximum cut-off
frequency for a time slightly longer than the time length of the QRS signal so that the QRS complex may pass through the filter while it is operating at its maximum cut-off
frequency. Thereafter, the filter incrementally returns to its lowest cut-off frequency.
Since the filter is directed to move to the higher cutoff frequency only upon the detection of the R wave, which is located in the middle of the QRS complex, the original input ECG signal is electronically delayed for a time sufficient to allow the R wave of the input ECG signal to be centered in the time span during which the variable cut-off frequency low pass filter is operating at its highest cutoff frequency. After passing through the delay circuitry, the ECG signal is passed to the variable cut-off frequency low pass filter for filtering. In this way, the filter is directed to operate at its highest low pass frequency during the time the QRS complex passes through the filter
whereafter the filter is directed to operate at its lowest low pass frequency during the passing of the part of the ECG signal between QRS complexes. This system maximizes the reduction of muscle artifact signals without greatly
reducing the amplitude of the QRS complex.
It is therefore an object of the instant invention to provide a filter system for filtering muscle artifact signals which maximizes the filtering of the muscle artifact signals during part of the ECG signal where the QRS complex is not present, yet which passes the QRS signal with a minimum of distortion due to filtering.
It is a further object of the instant invention to provide a filtering system which may be readily implemented on a digital processing system.
It is a further object of the instant invention to provide a filter system which may be easily implemented with other filter systems in an ECG monitoring system.
Finally, it is an object of the instant invention to provide a filtering system which is relatively simple and easy to make and use.
These and other objects of the instant invention will become clear from the description contained herein and more particularly with reference to the following detailed description where like elements are referred to by like reference numbers.
Brief Description of Drawings
Figure 1 is a block diagram of the instant invention. Figure 2 is a more detailed block diagram of the elements of the block diagram of Figure 1.
Figure 3 is a graphic representation of the ECG signal in various stages of processing by the instant invention.
Figure 4 is a schematic representation of the
difference system of the instant invention.
Figure 5 is a state diagram showing the implementation of the reference slope detection system. Figure 6A is a schematic representation of the FIR filter of the instant invention.
Figure 6B is a chart containing the co-efficient values for the multiplication blocks of the FIR filter of Figure 6A and the corresponding cut-off frequencies.
Best Mode for Carrying Out the Invention In Figure 1, the filter system generally labeled 10, is shown in a block diagram of its basic elements. An analog ECG signal taken from each of a series of electrodes placed on a patient is first converted to a digital signal through an A to D converter 9 such as is common in the art. The digitized ECG signals from each electrode are thereafter passed to input 12 of the filter system 10. Input 12 comprises all the ECG leads from the patient. All of the ECG signals are simultaneously passed to delay 16. Selected ECG signals are also simultaneously passed to the slope determination system 20.
Throughout this disclosure reference will be made to parallel processing in various elements of the filter system 10 of either all or selected of the ECG signals. By
parallel processing it is meant that a series of input signals produce a corresponding series of output signals. This parallel processing is preferably accomplished by sequential processing by a single digital device such as a microprocessor of the individual input signals during the interval between the collection of samples so that a virtual or apparent parallel processing is performed. Of course, actual parallel processing of the ECG signals could be done by parallel hardware where the input signals are each processed by their own processing hardware. These
individual pieces of processing hardware could include individual microprocessors for each signal.
In the preferred embodiment, only the ECG signals from the II, V2 and V5 leads of the commonly applied ECG leads are passed to the slope determination system 20 while each and every ECG lead from the patient's chest is passed to delay 16. A typical input ECG signal is shown in Figure 3 labeled as "I" . In Figure 3 , the horizontal axis represents time and the various electrical signals displayed are aligned vertically so that simultaneous events occur on the same vertical line. It is recognized that the ECG signal shown is representative of the ECG signals detected by each ECG electrode which signals may vary from ECG lead to ECG lead. However, for the purpose of illustrating the
operation of the instant invention, only one ECG signal is shown. The inputs for the entire group of ECG leads are labeled in Figure 2 as 12A-N, where N represents the total number of ECG leads attached to the patient.
The II, V2 and V5 ECG leads are referred to as "basis leads" and are numbered 22A, 22B and 22C respectively.
Basis leads II, V2 and V5 are used in slope determination system 20 because of their approximate location on
orthogonal axes to each other on the human body. Of course, it is clear that basis leads 22A, B, C correspond to their respective ECG input leads 12 so that the ECG signals from these ECG leads are passed to both the delay 16 and the slope determination system 20. The designation of ECG leads II, V2 and V5 as "basis leads" is for the purpose of
clarifying their role in the R wave detection.
In Figure 2, the details of slope determination system 20 is contained within the block with the dotted outline labeled 20. Each of the basis leads 22A, B, and C is connected to a respective difference system 24A, B, and C. The difference system 24 is a software system shown in block diagram in Figure 4 which implements the following transfer function:
transfer function = 1 - Z-D
where "D" is the difference parameter. "D" stands for the number of the previous sample whose value is to be
subtracted from the value of the current sample. In the preferred embodiment, "D" equals 5 so that the value of the sample 5 previous to the current sample is subtracted from the value of the current sample. Difference system 24 comprises a series of unit delays 72 connected in serial to an input 25. The unit delays 72 delay the signal for a preselected time. The digital signal from the basis leads 22 is presented to input 25 where it passes from unit delay 72 to unit delay 72 after a pause at each delay corresponding to one sample interval. The digital signal from basis leads 22 presented at input 25 is also simultaneously presented to adder/substracter 27 via line 29. Adder/substracter 27 substracts the value of the input signal delayed by the series of unit delays 72 from the value of the current sample present at input 25.
The purpose of difference system 20 is to get a kind of long term average slope of the input ECG signal. The comparatively long term slope is used because the filter 10 responds to the detection of the R wave to control the filtering process, which R wave has the highest amplitude and also the highest slope over several samples of any part of the ECG signal. The reason the sample point 5 samples prior to the current sample point is used to determine the average slope of the input signal rather than the
immediately prior sample point or sample points less than five from the current sample point is that random
fluctuations from sample point to sample point or across sample intervals caused by noise including muscle artifact signals may cause measured slopes on these shorter sample intervals to be comparable to the slope of the R wave over the same shorter sample intervals.
This is particularly true where, as is common for such devices, the sample rate for the ECG signal is high,
typically on the order of 500 samples per second. However, the muscle artifact signals tend to be random in nature so that the occasionally measured high slopes due to noise or muscle artifact signals are also random and not sustained over several sampling intervals. By contrast, in the case of an R wave, there is a relatively high slope over several sample points upon the sampling of the R wave. Therefore, in order to detect and distinguish the R wave from noise such as muscle artifact noise, a high slope must be
maintained over several sample point intervals to indicate the detection of the R wave. For this reason, the
difference system determines the slope over 5 sample points so that the local variations due to such things as noise and muscle artifact signals may be effectively averaged out. Because the sample rate in the preferred embodiment is 500 samples per second, the average slope over 5 samples is the average slope over the last 1/100th of a second. The ultimate effect of this difference system 24 is that the R wave clearly stands out from the noise.
The output from the difference system 24A, B, C is passed in parallel to an absolute value system 26. Absolute value system 26 contains individual absolute value systems 26A, B, C, connected to difference system 24A, B, C
respectively. Absolute value system 26 finds the absolute value of each slope found by the difference system 24 and passes this absolute value to its output. The slope
determination system 20 is interested in determining the absolute slope of the ECG signal since the slope of the R wave will typically have a large positive value as the amplitude of the R wave increases and a large negative value as the amplitide of the R wave decreases. By using the absolute value of the slope, if for some reason the large positive slope of the increase in the amplitude of the R wave is masked or distorted, the system would still be able to detect the R wave from the large absolute value of the slope of the R wave as the amplitude of the R wave
decreases. After the absolute values of the slopes
determined by the difference systems 24 have been found by the absolute value systems 26, the corresponding outputs of the absolute value systems 26A, B, and C are passed in parallel to the maximum slope determination system 28.
Although the absolute value system 26 is used in the
preferred embodiment, in an alternate embodiment it may be eliminated so that the output of the difference system 24 is passed directly to the maximum slope determination system 28. In this embodiment, the large negative slope of the R wave as its amplitude decreases would not be used to detect the R wave if the slope of the R wave as its amplitude increases is masked or distorted.
The maximum slope determination system 28 compares the values of the outputs of each absolute value system 26A, B and C and passes the maximum value to its output. The output of maximum slope determination system 28 is shown in Figure 3 as "A". Because the basis leads II, V2 and V5 are placed in various positions on the body, they each detect the ECG signal in different ways. For this reason, one of the basis leads 22 may detect a higher amplitude of the R wave, which will most likely result in a correspondingly greater slope than that found from the detection of the R wave from other leads. In order to maximize the ability of the instant invention to detect the R wave in a possibly noisy signal contaminated by, among other things, muscle artifact signals, the maximum slope determined by each of the difference systems 24 is used to detect the R wave and consequently control the band width control mechanism 30.
The slope determination system 20 described above uses three basis leads in its determination of the maximum value of the slope of the R wave. However, a greater or lesser number of basis leads could be used where each basis lead would be provided with its own difference system 24 and absolute value determination system 26 whose output would then be passed to maximum slope determination system 28. In fact, a single basis lead having its corresponding
difference system 24 and absolute value determination system 26 could be used if desired.
The output of the maximum slope determination system 28 is passed from the slope determination system 20 to the band width control mechanism 30. As shown in Figure 2, an erode system 32 is located at the input to the band width control mechanism 30. The purpose of the erode system 32 is to minimize the high frequency noise between QRS complexes present on the output of the maximum slope determination system 28. This high frequency noise is manifest as "fuzz" on the ECG signal at the output of the maximum slope
determination system 28 which output signal is shown in Figure 3 labeled "A".
The particular erosion system 32 used in the instant invention is a special case of grayscale erosion defined as:
[f θ g] (n) = min {f(m) - g(m - n)} where
f(k) = the signal to be eroded
g(j) = the structuring function
θ = the erosion operator
and where
m ε F and m - n ε G,
F = the domain of f, and
G = the domain of g.
The structuring function g(j) is defined as:
g(j) - {0: 0 ≥ j> - Werode }
i.e. G = {0, - 1,..., - (Werode - 1)}
where Werode is the number of sample points used in the erosion operation. In the preferred embodiment, Werode equals 4, so that the values of "j" are 0, 1, 2 and 3.
In this case, the grayscale erosion is a special case of the well known erosion operation where the value of the structuring function g(j) equals 0 wherever g(j) is defined. Simply put, the erode system 32 in the preferred embodiment, takes the last four samples and finds the minimum value.
The minimum value is then passed to the output of the erode system 32. The output of the erosion system 32 is shown in Figure 3 and is labeled "S". As can been by comparison to the maximum absolute slope "A", also shown in Figure 3, the eroded slope signal "S" has slightly lower amplitudes on the QRS signal, but has a significant reduction of noise between the QRS complexes. Although in the preferred embodiment the structuring function g(j) equals 0 wherever g(j) is defined, other values of the structuring function may be used as desired.
An excellent discussion of grayscale erosion is found in Chapter 6 of Non-linear Digital Filter; Principles and Applications by I. Pitas and A. N. Venetsanopulos, published by Kluwer Academic Publishers, copyright 1990, the teaching of which is incorporated herein by reference.
The output of the erosion system 32 is simultaneously passed to a dilation system 34 and a reference slope
determination system 36.
The dilation system 34 used in the instant invention is a special case of grayscale dilation defined as:
[f θ g] (n) = max {f(m) + g(m - n) } where
f(k) = the signal to be dilated
g(j) = the structuring function
θ = the dilation operator
and where
m ε F and m - n ε G,
F = the domain of F, and
G = the domain of g.
The structuring function g(j) is defined as:
g(j) = {0: 0≥ j > - W dilate}
i.e. G = {0, - 1,....., - (Wdilate - 1)}.
where Wdilate is the number of sample points used in the dilation operation. In the preferred embodiment, Wdilate equals 4, so that the values of "j" are 0, 1, 2 and 3.
In this case, the grayscale dilation is a special case of the well known dilation operation where the value of the structuring function g(j) equals zero wherever g(j) is defined. Although the structuring function g(j) in the preferred embodiment equals 0 wherever g(j) is defined, other values of the structuring function may be used as desired.
The dilation system 34 passes to its output the maximum value for the last predetermined number of samples, called a "dilation sample length", from the erosion system 32. In the preferred embodiment, the dilation sample length equals 47 samples so that the output of dilation system 34 equals the maximum value contained in the last 47 samples. The number 47 is chosen because at a sample rate of 500 samples per second, 47/500 of a second is slightly larger than the time length of a QRS complex. The output of dilation system 34 will eventually be used to time the duration that the linear smoothing filter 18 operates at its highest low pass cut-off frequency in order to pass the QRS wave with a minimum of amplitude reduction. The output of dilation system 34 is passed to a ratio determination system 38 at ratio input 39 (b). The output signal of dilation system 34 is shown in Figure 3 labeled as "D".
An excellent discussion of grayscale dilation is found in Chapter 6 of Non-linear Digital Filter: Principles and
Applications by I. Pitas and A. N. Venetsanopulos, published by Kluwer Academic Publishers, copyright 1990, the teaching of which is incorporated herein by reference.
As stated, the output from the erosion system 32 is passed to a reference slope determination system 36
simultaneously as the output from the erosion system 32 is passed to the dilation system 34. The reference slope determination system 36 holds the long term maximum slope found by the maximum slope determination system 28 and passed through the erosion system 32 as directed by a software controlled state machine shown symbolically in Figure 5. The state machine is used to find the new peak on the reference slope shown in Figure 3, labeled as "R". A slope threshold, shown in Figure 3 labeled as "L", is used as a long term maximum value of the eroded slope "S" which may decay in time if the values of "S" fail to periodically have comparatively high values. The state machine compares the values of the eroded slope "S" to the slope threshold "L" to determine the reference slope "R".
The state machine consists of states "0", "1", "2", and "3" which represent logical conditions. The logical
conditions are dependent upon the relative values of "L", "S", and "R" as well as the values stored in counters used with the state machine. When the relationships or values of these registers and counters changes, the state machine moves from whatever state it is in to a different state as will be described hereafter. The state machine of Figure 5 uses "Counters 0-3" which correspond to "States 0-3". Counter 0 is used to time an initial pause while the state machine accumulates a
reservoir of samples for the state machine to work with. Counter 1 is used as the timer for "State 1", the logical state where the slope threshold "L" is a constant. Counter 2 is used as a timer for logical "State 2" which causes the slope of threshold "L" to decay while no new peak value of the eroded slope "S" is found. Counter 3 is used as the timer for logical "State 3" which finds a new peak for slope threshold "L" when the eroded slope "S" is greater than or equal to the slope threshold "L".
A special symbol, "==", is used in Figure 5 between a reference to one of the Counters 0-3 on its left side and the number 0 on its right side such as "Counter 1==0".
This symbol, "==", means that when the respective Counter contains the value "0", the program leaves the logical state corresponding to that counter along the path adjacent to the phrase containing the "==",symbol.
The machine begins at step 40 which initializes Counter 0 to 75 and Counter 1 to 160. In addition, the value of the register R, which contains the reference slope "R", and the value of register L, which contains the slope threshold "L", are both set equal to 0. After Counters 0 and 1 have been initialized and registers R and L set equal to 0, the program passes from step 40 to "State 0" which is labeled 42. "State 0" 42 is the Initial Clearing Time state for the state machine. While at "State 0", the program passes in a loop from "State 0" 42 back to "State 0
42 through step 44 which decrements Counter 0 from its initial value of 75 to 0. During this time, transient effects from turning on the device are allowed to dissipate and a collection of sample points is accumulated. When Counter 0 has decremented to 0, the program leaves "State 0" 42 and passes to "State 1" labeled 46 along path 45.
"State 1" is a logical state where the program will reside while the value of the slope threshold "L" is held constant. As noted above, in the initialization step 40, the value of the slope threshold "L" is set equal to zero. At "State 1", the value of the eroded slope "S" is
constantly compared to the value of the slope threshold "L". These relative values must either be such that the value of "S" is less than, equal to, or greater than the value of "L". Accordingly, in "State 1" as well as in "State 2" and "State 3", the relationship between "S" and "L" determines the path from the respective "States 1, 2 and 3". The only exception to this general rule is where a counter associated with "States 1, 2 or 3" has been allowed to decrement to zero. When this occurs, regardless of the relationship between "S" and "L", the program must exit that "State" along the path indicating that the counter has decremented to zero.
Initially, as the program passes from "State 0" 42 to "State 1" 46, the value of the eroded slope "S" will be equal to or greater than the initial value of threshold slope "L" which has been initialized to zero. Therefore, the program will pass from "State 1" along path 49 to step 58. Step 58 initializes Counter 3 to 75 and sets the value of the slope threshold "L" equal to the value of the eroded slope "S". In other words, the value of the slope threshold "L" is now set equal to the higher or equal value of the eroded slope "S".
From step 58, the program passes to "State 3" labeled 60. The purpose of "State 3" 60 is to find a new peak for the reference slope "R". While at "State 3" 60, so long as the value of the eroded slope "S" is greater than or equal to the value of the threshold slope "L", the program will loop from "State 3" 60 through step 58 back to "State 3" 60. This has the effect of raising the value of "L" to the continuously increasing value of "S". However, if the value of "S" becomes less than the value of "L", the program will pass from "State 3" 60 through step 62, which decrements Counter 3 by 1, back to "State 3" 60. So long as "S" remains less than "L", and the value of Counter 3 is greater than zero, the program will loop from "State 3" 60 through step 62 back to "State 3" 60 while decrementing Counter 3. If, however, the value of "S" becomes greater than or equal to "L", the program will immediately exit "State 3" 60 and loop through step 58 back to "State 3" 60 thereby raising "L" to the new higher value of "S" and re-initializing Counter 3. If, however, no value of "S" is greater than or equal to "L" while Counter 3 decrements, when Counter 3 reaches 0, the program passes from "State 3" 60 along path 63 to step 64. Step 64 initializes Counter 1, in the preferred embodiment, to 160, and sets the value of the reference slope "R" equal to the value of the slope threshold "L". Leaving "State 3" 60 by path 63 indicates that a new peak for the reference slope
"R" has been found. Thereafter, the program continues along path 63 from step 64 to "State 1" 46, where the value of the slope threshold "L" will be continuously compared to the value of the eroded slope "S".
The program will stay at "State 1" 46 and the value of the slope threshold "L" will be held constant while the value of the eroded slope "S" is less than the value of the slope threshold "L" and Counter 1 has a value greater than 0.
When both of these conditions occur, the program loops from "State 1" back to "State 1" through step 48 which decrements Counter 1 from its initial value of 160. However, if the value of "S" becomes equal to or greater than the value of "L", the program exits "State 1" 46 through path 49 to step 58 as explained above.
If Counter 1 is allowed to decrement to 0, "State 1" is exited through path 47 marked "Counter 1 == 0" where the program passes to step 50. Step 50 initializes Counter 2 to 1000. Thereafter, the program continues on path 47 to
"State 2" labeled 52, which is the state where the value of the slope threshold "L" is decayed. In "State 2", if the value of the eroded slope "S" is less than the value of the slope threshold "L" the program passes through step 54.
Step 54 decrements Counter 2 by 1 and multiplies the current value of the slope threshold "L" by a decay value. In the preferred embodiment, the decay value equals .9995. So long as the value of "S" is less than "L" the value of "L" will decay by .05% on each pass through step 54 until the value of Counter 2 is decremented to 0. Because Counter 2 was initialized to contain 1000 and because "L" decays by .05% on each loop through step 54, after passing through step 54 for the 1000 counts in Counter 2, the value of "L" will decay to .606 its original value. This process of having "L" decay is shown in Figure 3 labeled "State 2" on the signal line corresponding to the threshold slope "L".
When the value of Counter 2 has decremented to 0, as indicated by the label "Counter 2 == 0", the program passes to step 56. Step 56 initializes Counter 2 to a new value of 1000, and sets "R", the reference slope value, and the slope threshold "L" equal to R0. R0 is chosen to represent a small, possibly even zero value. A non-zero value for R0 may be chosen so that the program will remain at "State 2" 52 for small values of the eroded slope. If a zero value is chosen for R0, the program will immediately leave "State 2" 52 via path 57 to step 58 because the value for "S" will be greater than or equal to the zero value for "L". From step 56, the program continues back to "State 2" 52. If "S" remains less than "L", the program will continue to pass through step 54, looping from "State 2" back to "State 2" as described above. In this way, the value of the slope threshold "L" will continue to decay.
However, if the value of the eroded slope "S" becomes greater than or equal to the value of the slope threshold "L", the program exits "State 2" 52 along path 57 and passes to step 58 where the process of finding a new peak value for the reference slope "R" is determined as described above.
The value of "160" is used to initialize Counter 1 so that "L" will remain constant for a time of 160/500 of a second before the value of "L" is decayed by passing to "State 2" 52. This allows the state machine to avoid moving to "State 3" 60 upon detection of a value for "S" larger than the decayed value of "L". Therefore, if the state machine moved from "State 1" 46 to "State 2" 52 immediately upon "S" becoming less than "L", the value of "L" would immediately begin to decay by the program passing through step 54. Since "L" is decaying, a value of "S" greater than or equal to the decayed value of "L" will cause the program to exit "State 2" 52 along path 57 and pass to "State 3" 60 through step 58. Once in "State 3" 60, the program will exit "State 3" 60 through step 64 which will set the value of the reference slope "R" to the value of "L" which was set in step 58 to the comparatively lower value of "S". This value of the eroded slope "S" which now has set the value of the reference slope "R" could be lower than value of the eroded slope "S" that would move the program from "State 1" 46 to "State 3" 60 when the program pauses at "State 1" 46 by looping through step 48. By pausing at "State 1" 46, the value of "L" remains higher than the decayed value of "L" found in "State 2" 52 so that a higher value of the eroded slope "S" is required to enter "State 3" 60 which higher value of the eroded slope "S" becomes the new value for the reference slope "R".
As can be seen, step 58 may be entered from either "State 1" along path 49, "State 2" along path 57 or "State 3" along path 59. Regardless of the path taken to step 58, the actions of step 58, and the corresponding passing of the program into and the operation of "State 3", occur
independently of the path taken to enter step 58. Further, it is to be noted that paths 49, 57 and 59 all leave their respective states upon the condition that the value of "S" is greater than or equal to the value of "L". This has the effect of allowing a new peak for the reference slope "R" to be found regardless of which state the state machine finds itself in. The output of the reference slope determination system 36 is the reference slope "R". The reference slope "R" is passed to the ratio system 38 through ratio input 39(a).
Ratio determination system 38 compares the output from the dilation system 34, which is shown in Figure 3 labeled as the dilated slope "D", with the output of the reference sloped determination system 36 which is shown in Figure 3 labeled as reference slope "R" to produce a ratio "r".
As can be seen in Figure 3, the value of the dilated slope "D" increases substantially with the presence of the R wave, and remains high for the "dilation sample length", which in the preferred embodiment is 47 samples. This is because the current dilated slope value is the maximum value of the slopes of the last 47 samples. In the time before the presence of the R wave in the ECG signal, the slope values of the ECG signal are typically comparatively small. However, with the presence of the R wave, the slope of the ECG signal at the R wave becomes quite high so that as the R wave begins its rapid climb in amplitude, a correspondingly high slope is also present. By contrast, the reference slope "R" is the maximum value for the eroded slope found during operation of the state machine unless no R waves are found. If for some reason, no subsequent R waves are detected after an initial R wave is detected, the reference slope "R" is set to a low value RQ by step 56 of "State 2" of the state machine of the reference slope determination system 36. As soon as a subsequent R wave is detected, the state machine will re-establish a maximum value for the reference slope "R" as explained above.
Referring to Figure 3, after an initial time has elapsed to establish a reference slope "R" having a
relatively high value corresponding to the detection of the "R" wave, when the value of reference slope "R" and dilated slope "D" differ substantially, the "dilation sample length" after the detection of the R wave has passed. The resulting dilated slope "D" with a relatively low value corresponds to the portion of the input ECG signal between QRS complexes. As an R wave is detected, the ratio "r" of "R" to "D" will approach 1. The ratio "r" of reference slope "R" to dilated slope "D" will be near 1 when the dilation slope "D" indicates the presence of an "R" wave and for the "dilation sample length" thereafter. After the R wave passes and the dilation time length has passed, the ratio "r" will decrease toward 0. Ratio determination system 38 produces an output signal indicative of the ratio "r" of the reference slope "R" to the dilated slope "D". The output signal from ratio determination system 38 is passed to linear smoothing filter 18 to determine the cut-off frequency of filter 18.
Filter 18, is preferably a finite impulse response (FIR) filter as shown schematically in Figure 6A. Chapter 8 of Digital Signal Processing, 42nd Edition, by William D. Stanley, Gary R. Dougherty and Ray Dougherty contains an excellent treatment of digital FIR filters and their design, the teaching of which is incorporated herein by reference.
In the preferred embodiment, the FIR filter is a twelfth order filter. Also in the preferred embodiment, filter 18 has six different cut-off frequencies shown in the chart of Figure 6B corresponding to different values of ratio "r" so that the filter 18 can smoothly change cut-off frequencies from the lowest to the highest cut-off
frequencies, and vice-versa, without abrupt changes in the output of filter 18. Without such transitional filtering, the switch from the minimum to maximum filtering would manifest itself in an abrupt transition in the output ECG signal which would affect the diagnostic value of the ECG.
The cut-off frequency used in filter 18 depends on the ratio "r" of the dilated slope "D" to the reference slope "R" as explained above. Different values of ratio "r" are designated by subscripts from 0 to 5 corresponding to the 6 different cut-off frequencies. As shown in Figure 6B, when the ratio "r" is greater than or equal to .64, corresponding to a ratio of "r0", the filter operates at its maximum cutoff frequency. Conversely, when the ratio "r" is less than .2, corresponding to a ratio of "r5", the filter operates at its minimum cut-off frequency. The other four cut-off frequencies correspond to the following values for "r": .53 ≤ r1 < .64, .42 ≤ r2 < .53,
.31 ≤ r3 < .42, and .2 ≤ r4 < .31.
As stated, the schematic representation of the filter 18 is shown in Figure 6A. In Figure 6A, the ECG signal from delays 16A-N are passed to filter input 70. In the
preferred embodiment, filter 18 is implemented on a
microprocessor. In this case, each ECG signal is preferably passed to filter 18 in a sequential order so that virtual parallel processing of the ECG signals takes place.
However, each ECG signal may have its own filter 18 as desired. From filter input 70, the input ECG signal is sequentially passed through a series of unit delays 72. In the preferred embodiment, filter 18 has 12 unit delays 72. A multiplication block 74, denoted as Cn according to the coefficient values it will contain as explained hereafter, is connected to the line before each unit delay 72. In the schematic representation of Figure 6A, a line connecting unit delays 72 or leading from the line connecting unit delays 72 to multiplication blocks 74 indicates that
whatever digital value is present on the line is presented to all points along the line simultaneously. In the
preferred embodiment there are 12 unit delays 72 with 12 corresponding multiplication blocks C0 through C11 connected to the inputs of the 12 unit delays 72. In addition, the output of the twelfth and farthest unit delay 72 from filter input 70 is connected to a multiplication block C12
so that there are a total of 13 multiplication blocks 74.
Multiplication blocks C0 through C12 contain
corresponding coefficients also denoted as values of C0 through C12 which are multiplied by the values of the
processed ECG signal presented to the inputs of
multiplication blocks C0 through C12. The values of the coefficients determines the cut-off frequency of the filter 18 according to the operation of such FIR filters as is well understood in the art. The coefficients C0 through C12 for the respective cut-off frequencies are shown in the chart of Figure 6B. The cut-off frequencies corresponding to the use of respective coefficients C0 through C12 are also shown in Figure 6B.
The resulting values from multiplication blocks 74 are passed to adder 76 which adds the values from each of the multiplication blocks 74 and passes the sum to normalizing block 78. Normalizing block 78 multiplies the output from adder 76 by the inverse of the sum of the values of the coefficients C0 through C12. The result of this
multiplication operation is passed to the output 14 of the filter 18.
As mentioned, each of the ECG inputs 12A-N are passed to the delay 16 which delays the input ECG signal for an amount of time equal to the processing time of the slope determination system 20 and the band width control mechanism 30 plus one half of the dilation sample length. This timing allows the R wave in the input ECG signal to be precisely centered in time on the "window" that the filter 18 is open to its maximum cut-off frequency as directed by the band width control mechanism 30 as described above. After each ECG input 12A-N is delayed in its respective delay 16A-N, each individual ECG input signal 12A-N is passed to its corresponding FIR filter 18A-N. As mentioned, each of these individual ECG signals is preferably sequentially passed to a single digital FIR filter 18 so that a series of virtual parallel filters 18A-N is produced. After each ECG input signal 12A-N has been filtered in filter 18, the filtered ECG signal is output through output 14A-N of filter 18 to an appropriate device to record or display the respective filtered ECG signals such as a video display screen or a chart recorder.
The source code implementing the instant invention, including the state machine shown in Figure 5 and described above, is in the attached Appendix I.
The instant invention has been described in connection with a specific embodiment. However, the details described herein in connection with the disclosure of the embodiment have been given by means of example and not for limitation. It is clear that changes and modifications may be made to the description contained herein and still be within the scope of the invention. Further, obvious changes and modifications will occur to those skilled in the art.
APPENDIX I
*****************************************************************************
Written by Victor M. dePinto
© 1991 QUINTON INSTRUMENT CO. AU rights reserved.
***********************************************************************************************************
#include <math. h>
#include <stdlib.h>
#include <psdef.h>
/* Unit delays for the analysis lowpass filters */
static double analys_LPF _unit_delay[NUMBER_OF_ECG_CHANNELS][3];
/* Unit delays for the display variable bandwidth lowpass filters */
static double
display_LPF_unit_delay[NUMBER_OF_ECG_CHANNELS][MUSCLE_FILTER_LENGTH];
/* Unit delays for the delays ahead of the display FIR filters */
static double
display_ delay_ unit_ delay
[N UMBER_OF_ECG_CHANN ELS][PREFILTER_DELAY_ LENGTH];
/* Unit delays for the 3 basis lead differences */
static double dis ampIes0[DIFFERENCE_ ORDER],
difs ampIes1[D IFFERENCE_ORDER],
difsamples2 [DIFFΕRENCE_ORDER];
static int State; /* State of Reference Slope state machine */
static int Ctr1, ctr2, ctr3, ctr4; /* Counters used by the state machine */
static double reference_slope; /* Variables used by the state machine */
static double slope_threshold;
static double _max_absolute_slope3, eroded_slope, dilated_slope;
static enum filter_bandwidth FIR_bandwidth; /* Bandwidth of display FIR filter */
stadc double dilate_delays[DILATlON_SIZE], /* Data history of dilation */
erode_delays[EROSION_SIZ E]; /* Data history of erosion */
static int dilate_ ndx , erode_ndx;
/*----------------------------------------------------------------
*/
int
init_ muscle_artifact_ filter()
{
int channel, k;
reference_ slope = slope_threshold = 0.0;
State = INTIAL_CL EARING;
ctr1 = CTR1_PERIOD;
ctr2 = CTR2_PERIOD;
ctr3 - CTR3_ PERIOD;
ctr4 = CTR4_PERIOD;
dilate_ ndx = erode_ ndx = 0; /* Init analysis LPF unit delays. */
for (channel = 0; channel < NUMBER_ OF_ ECG_ CHANNELS; + + channel) for (k = 0; k < 3; + +k)
analysis_LPF_unit_delay [channel][k] = 0.0;
/* Init display prefilter delay unit delays. */
for (channel = 0; channel < NUMBER_ OF_ ECG_ CHANNELS; + + channel) for (k = 0; k < PREFILTΕR_DELAY _L ENGTH; + +k)
display_delay_unit_delay[chann el][k] = 0.0;
/* Init display LPF unit delays. */
for (channel = 0; channel < NUMBER OF ECG CHANNELS; + + channel) for (k = 0; k < MUSCLE _FILTER _LENGTH; + +k)
display_LPF_unit_delay [channel][k] = 0.0;
/* Init erosion unit delays. */
for (k = 0; k < EROSION_SIZE; + +k)
erode_delays[k] = 0.0;
/* Init dilation unit delays. */
for (k = O, k < DILATION_ SIZE; + +k)
dilate_delays[k] = 0.0;
/* Init difference unit delays. */
for (k = 0; k < DIFFERENCE_ ORDER; + +k) {
difsamples0[k] = 0.0;
difsamplesl[k] = 0.0;
difsamples2[k] = 0.0:
}
}
/*--------------------------------------------------------------------------------------
Determine the bandwidth of the FIR lowpass filter for the
display channels. The bandwidth is controlled by the slope
of the ECG signal; When slope is greatest, as during the QRS
complex, the bandwidth is maximum. When slope is low, the
bandwidth is reduced in order to attenuate low amplitude noise.
First, the maximum of the absolute values of the slopes of
3 ECG channels is found. This maximum absolute slope is passed through an erosion operator and then a dilation operator.
the resulting dilated slope is compared with a reference slope
in order to determine the instantaneous bandwidth of the FIR
lowpass filter.
The reference slope mentioned above is essentially the
long-term maximum of the absolute slope.
This function returns the instantaneous bandwidth of the
display lowpass filter.
/*
enum FIR_ filter_ bandwidth
bandwidth _control(basss_x, basis_y, basis_z,
difference_order, erosion_size, dilation_size)
double basis_x, /* The three basis leads whose slope is used */ basis_y, /* to control the bandwidth of the muscle */ basis_z; /* artifact filter */ int difference_order; /* Order of the difference */
int erosion_size; /* Size of the erosion */
int dilation_ size; /* Size of the dilation */
{
int j;
double abslope0, abslope1, abslope2;
double filter_out, sum, output_multiplier;
/* Find max absolute slope of three basis leads */
abslope0 = fads(difference(basiss_x, difsamples0, difference_order));
abslope1 = fabs(difference(basis_ y, difsamptes1, difference_order));
abslope2 = fabs(differen ce(ba sis_z, difsamples2, differcnce_order));
max_absolute_slope3 = max(absIope2, (max(abslope0, abslope1)) );
/* Erode max absolute slope of the 3 basis leads */
eroded_slope = erode_ (max_absolute_slope3, erode_delays, erosion_size);
/* Dilate the eroded slope */
dilated_slope = dilate_ (eroded_slope, dilate_delays, dilation_size );
/* Adjust the reference slope value */
determine_reference_slope(eroded_slope);
/* Determine the bandwidth of the display FIR lowpass filter as a function of the ratio of dilated_slope to reference_slope.
/*
if (dilated_ slope < .2 * reference_ slope)
FIR_bandwidth = BANDWIDTH_17_HZ;
else
if (dilated_ slope < .31 * reference_slope)
FIR_bandwidth = B ANDWIDTH_25_HZ;
else
if (dilated_ slope < .42 * reference_ slope)
FIR_ bandwid h = BANDWI DTH_32_HZ;
else
if (dilated_slope < .5 3 * reference_ slope)
FIR_bandwidth = BANDWIDTH_45_HZ; else
if (dilated_ slope < .64 * reference_ slope)
FIR_bandwidth = BANDWIDTH_77_HZ;
else
FIR_bandwidth = BANDWIDTH_100_HZ;
return (FIR_ bandwidth); /* Return bandwidth */
} /* End bandwidth_coιιtrol() */
/*----------------------------------------------------------------------
Delay the ECG signal by a certain number of samples.
This delay function is used ahead of the display FIR filters.
*/
double
display_prefilter_delay(input_sample, channel)
double input_sample; /* The present input sample value */ int channel; /* Channel number */
{ double output_sample;
int j;
output_ sample = display_ delay_unit_ delay[channel ][PREFIL TER_ DELAY_ LENGTH - 1]; for (j = PREFILTER _DEL AY_L ENGTH - 1; j > 0; --j) /* Shift in new sample */ display_delay_unit_delay[channe l][j] =
display_delay_unit_delay[channe l][j - 1];
display_delay_unit_delay[channe l][0] = input _sample;
return (output_ sample);
} /* End dispay_prefilter_delay() */
/* -------------------------------------------------------------------------
FIR lowpass filter used in the display channels.
The cutoff frequency of this filter can be varied from 17 Hz
to 100 Hz. If the muscle artifact filter is switched on,
the filter will normally operate at 100 Hz bandwidth during
the QRS complex and at lower bandwidth during other parts
of the ECG wave in order to reduce low amplitude noise.
/*
double
display_FIR_filter(new_sample, bandwidth, channel)
double new_sample; /* The present input sample value */ enum FIR_filter_bandwidth bandwidth; /* Desired bandwidth */ int channel; /* Channel number */
{
int j;
double sum, filter_out, output_multiplier;
for (j = MUSCLE_FILTER_LENGTH - 1; j > 0; --j) /* Shift in new sample */ display_LPF_unit_delay[channel ][j] = display_LPF_unit_delay(channe l][j-1];
display_LPF _unit_delay[channel][0] = new_sample;
/* Form the sum of a number of points which depends on the desired bandwidth */ sum = 0.0;
switch (bandwidth) {
case BANDWIDTH_100_HZ:
sum = display_LPF_unit_delay[ch annel][6]; /* Length = 3 */ sum + = 0_367 * display_LPF_unit_delay[channel][5]; /* Zone r0 */ sum + = 0-367 * display_LPF_unit_delay[channel][7];
output_multiplier = 0.576701268743; /* 1 / (1 + 2 * 0367) */
break;
case BANDWIDTH_ 77_ HZ: /* Length = 3 */
for (j = 5; j <≡ 7F + +J) /* Zone r1 */
sum + = display_ LPF_ unit_ delay[ch annel][j];
output_nultipiier = 0333333333333; /* 1/3 */
break;
case BANDWIDTH_ 45_ HZ: /* Length = 5 */
for (j = 4; j < = 8; + +j) /* Zone r2 */
sum + = display_LPF_unit_delay[ch annel][j];
output_nultiplier = 0.2; /* 1/5 */
break;
case BANDWIDTH_ 32_ HZ: /* Length = 7 */
for (j = 3; j < - 97; + +j) /* Zone r3 */
sum + = display_ LPF_ unit_ delay[channel][j];
output_multiplier = 0.142857142857; /* 1/7 */ break;
case BANDWIDTH_ 25_ HZ: /* Length = 9 */
for (j = 2; j <= 10; ++j) /* Zone r4 */
sum + = display_ LPF_ unit_ delay[channel][j];
output_ multiplier = 0.11111111111; /* 1/9 */
break;
case BANDWIDTH_ 17_ HZ: /* Length = 13 */
for (j = 0; j <= 12; ++j) /* Zone r5 */
sum + = display_ LPF_ unit_ delay[channel][j];
output_multiplier = 0.0769230769231; /* 1/13 */
break;
default:
printf("FIR filter bandwidth error.\n");
}
filter _out = sum * output_multiplier; /* Multiply sum by output gain. */ return (filter_ out);
} /* En d FIR_filter */
/*---------------------------------------------------------------------------------
100 Hz lowpass filter for analysis channels.
This is a second order (3 tap) FIR filter.
/*
double
analysis_ FIR_fitler(new_sample, channel)
double new_sample; /* The present input sample value */
int channel; /* Channel number */
{
intj;
double sum, filter_out, output_multiplier;
for (j = 2; j > 0; -- j) /* Execute the delay */
analysis _LPF_unit_delay[channel]j] = analysis _L PF_unit_delay(channel][j-1]; analysis_LPF_unit_de lay[channeI][0] = new_sample; /* Shift in new sample */ sum = 0367 * analysis _LPF_unit_delay [channel][0];
sum += analysis _LPF _unit_delay[channel][1];
sum += 0367 * analysis_ LPF_ unit_ delay[channel ][2];
output_multiplier = 0.576701268743; /* 1 / (1 + 2 * 0.3 67) */ filter_out = sum * output_multiplier; /* Multiply sum by output gain. */ return (filter_ out);
} /* End analysis_ LPF */
/*---------------------------------------------------------------------------------
Find the minimum value of the latest N samples, and store
the latest sample in a history array.
/*
double
erode_ (new_sample, past_samples, size)
double new_ample; /* The present sample value */
double past_samples[ ]; /* Storage for past samples */
int size; /* N in the above description */
{
double min_val;
intj; past_samples[erode_ndx+ +] = new_sample; /* Put new value in array */ if (erode _ndx > = size) /* Bump array index */
erode _ndx = 0;
min_ val = 1.0e300; /* Find min */
for (j = 0; j < size; + + j)
if (past _samples[j] < min_val)
min_val = past_samples[j];
return(min_ val);
} /* End erode_ */
/* -----------------------------------------------------------------------
Find the maximum value of the latest N samples, and store
the latest sample in a history array.
/*
double
dilate_ (new_sample, past _samples, size)
double new_s ample; /* The present sample value */
double past_samples[ ]; /* Storage for past samples */
int size; /* N in the above description */
{
double max_val;
int j;
past_samples[dilate_ndx+ +] = new_sample; /* Put new value in array */ if (dilate_ndx > = size) /* Bump array index */
dilate _ndx = 0;
max_val = 0.0; /* Find max */
for (j = 0; j < size; + +j)
if (past_samples[j] > max_val)
max_val = past_samples[j];
return(max_ val);
} /* End dil ate_ */
/* ----------------------------------------------------------------------
Determine the reference slope, which is compared with dilated slope in order to determine the display LPF bandwidth.
The reference slope is essentially a long term maximum of the
absolute value of the slope of the ECG signal. An exponentially decaying quantity called the slope threshold is compared with
the parameter _slope. If _ slope is greater than slope _threshold, slope _threshold is set equal to _slope and a counter is started, when the counter times out, the short term maximum slope has been found, and reference _slope is set equal to slope _threshold.
Note that reference _sope is modified only if slope exceeds
slope _threshold, and is a long-term maximum absolute slope.
This function is a state machine.
/*
determine _reference_slope(_slope)
double _slope;
{
switch (State) { case INITIAL_CLEARING:
if(-ctr4<=0)
State = SLOPE _THRESHOLD_CONSTANT; break;
case SLOPE_THRESHOLD_CONSTANT:
if (_ slope >= slope _threshold) {
State = FINDING_NEW_PEAK;
ctr2 = CTR2_PERIOD;
slope _threshold = _ slope;
break;
}
if(--ctr1<=0){
State = SLOPE_THRESHOLD_ DECAYING; ctr3 = CTR3_PERIOD;
break;
}
break;
case SLOPE_THRESHOLD_DECAYING:
if (_slope > = slope _threshold) {
State = FINDING_ NEW_ PEAK;
ctr2 = CTR2_PERIO D;
slope_ threshold =_ slope;
}
else{
slope_ threshold *= 0.9995;
if(-ctr3 <=0){
ctr3 = CTR3_PERIOD;
slope_threshold = 100.0;
reference_ slope = 100.0;
}
}
break;
case FINDING_NEW_PEAK:
if ( _slope > = slope _threshold) {
ctr2 = CTR2_PERIOD;
slope_threshold = slope;
break;
}
if(--ctr2<=0){
reference _slope = slope_ threshold; /* New peak found */ ctr1 = CTR1_ PERIOD;
State = SLOPE_ THRESHOLD_CONSTANT; break;
}
break;
} /* End switch*/
} /* End determine_reference_slope */
/*----------------------------------------------------------------------------------
Compute the Nth order difference, (ie. the value of the
present sample minus the value N sample intervals previous.) */
double
difference(new_sample, past_samples, difference _order)
double new_sample; /* The present sample value */ double past_amples[ ]; /* Storage for past samples */
int difference_ order; /* N in the above description */
{
int j;
double difference;
/* Compute value of nth order difference */
difference = new_sample - past_amples[difference_order-1];
for (j = difference _order-1; j > 0; --j) /* Shift the history array */ past _amples[j] = past_samples[j-1]; /* Element 0 is most recent */ past _amples[0] = new_ample; /* Enter new sample in history array */ return(difference);
}
/*-------------------------------------------------------------------

Claims

ECG MUSCLE ARTIFACT FILTER SYSTEM CLAIMS
1. A device for filtering unwanted electrical signals from an electrocardiograph (ECG) signal presented to an input comprising:
a) a variable cutoff frequency low pass filter capable of operating at at least two different cutoff frequencies, each specific cutoff frequency enabled in response to a control signal;
b) means, connected to the input and said low pass filter, for delaying an ECG signal presented at the input before passing the ECG signal to said low pass filter;
c) means, connected to the input, for determining the presence of a QRS complex in the ECG signal and for creating a control signal in response thereto, said control signal passed to said low pass filter;
whereby during the part of the ECG signal presented to the input not having a QRS complex, the low pass filter operates at a relatively low cutoff frequency and when a QRS complex is detected in the ECG signal by said means for determining the presence of a QRS complex, a control signal directs said low pass filter to operate at a relatively higher cutoff frequency so that the QRS complex of the ECG signal delayed by said means for delaying is presented to said low pass filter just after said low pass filter begins operating in its relatively higher cutoff frequency mode, thereby passing the QRS complex through said low pass filter with relatively little attenuation.
2. The device of claim 1 wherein said means for determining the presence of a QRS complex includes a means for determining the instantaneous slope of the ECG signal.
3. The device of claim 1 wherein said means for delaying an ECG signal includes an electronic memory for storing the ECG signal presented to the input for later recall.
4. The device of claim 1 wherein said control signal created by said means for determining the presence of a QRS complex is maintained, in response to a determination that a QRS complex is present, for a time approximately equal to the time duration of a QRS complex in an ECG signal.
5. The device of claim 1 wherein said means for determining the presence of a QRS complex comprises:
a) means for determining the slope of the ECG signal; and,
b) means for generating said control signal in
response to the slope found by said means for determining the slope.
6. The device of claim 5 wherein said means for determining the slope of the ECG signal includes means for determining the slope of the ECG signal over several
samples.
7. The device of claim 5 wherein said means for determining the slope of the ECG signal includes means for determining the absolute value of the slope of the ECG signal.
8. The device of claim 5 wherein a plurality of ECG signals are presented to the input from a plurality of ECG leads and wherein said means for determining the slope of the ECG signal includes means for determining the maximum slope of the ECG signal determined from said plurality of ECG leads.
9. The device of claim 5 wherein said slope
determination system includes: a) a plurality of ECG signals presented to the input from a plurality of ECG leads;
b) means for determining the slope of the ECG signal over several samples for each ECG signal presented to the input;
c) means for determining the absolute value of the slope determined over several samples for each ECG signal presented to the input; and,
d) means for determining the maximum value of the absolute value of the slope determined over several samples for each ECG signal presented to the input.
10. The device of claim 5 wherein said means for generating said control signal includes:
a) means for creating a dilation slope signal
representative of the maximum value of the slope found by said means for determining the slope over a time interval approximately equal to the time length of a QRS complex on an ECG signal;
b) means for creating a reference slope signal representing the maximum value of the slope found over a relatively long time interval by said means for determining the slope; and,
c) means for determining a ratio of said dilation slope signal and said reference slope signal whereby a control signal is generated in response to the ratio determined by said means for determining a ratio.
11. The device as in claim 10 wherein said means for creating a reference slope signal includes:
a) means for generating a threshold slope signal representative of the maximum slope determined by said means for determining the slope of the ECG signal over an
intermediate time period; b) means for comparing the instantaneous slope of the ECG signal determined by said means for determining the slope to said threshold slope signal;
c) means for decaying the value of said threshold slope if the instantaneous value of the slope found by said means for determining the slope does not become greater than the instantaneous slope within a preset time interval;
d) means for generating a reference slope signal representing the maximum slope determined by said means for determining the slope of the ECG signal over a relatively long time period; and
e) means for replacing the current value of said reference slope signal with the instantaneous slope value of the ECG signal determined by said means for determining the slope when the instantaneous slope value has a greater value than said threshold slope signal.
12. The device of claim 1 wherein said variable frequency low pass filter operates at at least three
different cutoff frequencies, said filter operating at the lowest cutoff frequency during the time the ECG signal exclusive of the QRS complex is passing through said filter, said filter operating at its highest cutoff frequency during the time the ECG signal containing the QRS complex is passing through said filter, and said filter operating at cutoff frequencies between the lowest and highest cutoff frequencies for relatively short time periods so that the ECG signal output from said filter will appear relatively undistorted by the transition in cutoff frequencies from the lowest to the highest cutoff frequencies and from the highest to the lowest cutoff frequencies in response to a detection of a QRS complex by said means for determining the presence of a QRS complex.
13. A device for filtering unwanted electrical signals from an electrocardiograph (ECG) signal presented to an input comprising: a) a variable cutoff frequency low pass filter capable of operating at at least two different cutoff frequencies, each specific cutoff frequency enabled in response to a control signal;
b) means, connected to the input and said low pass filter, for delaying an ECG signal presented at the input before passing the ECG signal to said low pass filter;
c) means, connected to the input, for determining the presence of a QRS complex in the ECG signal and for creating a control signal in response thereto, said control signal passed to said low pass filter comprising:
i) means for determining the slope of the ECG signal further comprising:
1) a plurality of ECG signals presented to the input from a plurality of ECG leads;
2) means for determining the slope of the ECG signal over several samples for each ECG signal
presented to the input;
3) means for determining the absolute value of the slope determined over several samples for each ECG signal presented to the input;
4) means for determining the maximum value of the absolute value of the slope determined over several samples for each ECG signal presented to the input;
ii) means for generating said control signal in response to the slope found by said means for determining the slope further comprising:
1) means for creating a dilation slope signal representative of the maximum value of the slope found by said means for determining the slope over a time interval approximately equal to the time length of a QRS complex on an ECG signal;
2) means for creating a reference slope signal representing the maximum value of the slope found over a relatively long time interval by said means for determining the slope; and. 3) means for determining a ratio of said dilation slope signal and said reference slope signal whereby a control signal is generated in response to the ratio determined by said means for determining a ratio;
whereby during the part of the ECG signal presented to the input not having a QRS complex, the low pass filter operates at a relatively low cutoff frequency and when a QRS complex is detected in the ECG signal by said means for determining the presence of a QRS complex, a control signal directs said low pass filter to operate at a relatively higher cutoff frequency so that the QRS complex of the ECG signal delayed by said means for delaying is presented to said low pass filter just after said low pass filter begins operating in its relatively higher cutoff frequency mode, thereby passing the QRS complex through said low pass filter with relatively little attenuation.
14. A device for filtering unwanted electrical signals from an electrocardiograph (ECG) signal presented to an input comprising:
a) a variable cutoff frequency low pass filter capable of operating at at least two different cutoff frequencies, each specific cutoff frequency enabled in response to a control signal;
b) means, connected to the input and said low pass filter, for delaying an ECG signal presented at the input before passing the ECG signal to said low pass filter comprising an electronic memory for storing the ECG signal presented to the input for later recall;
c) means, connected to the input, for determining the presence of a QRS complex in the ECG signal and for creating a control signal in response thereto, said control signal passed to said low pass filter comprising:
i) means for determining the slope of the ECG signal further comprising:
1) a plurality of ECG signals presented to the input from a plurality of ECG leads; 2) means for determining the slope of the ECG signal over several samples;
3) means for determining the cibsolute value of the slope determined over several samples;
4) means for determining the maximum value of the absolute value of the slope determined over several samples for each ECG signal presented to the input;
ii) means for generating said control signal in response to the slope found by said means for determining the slope further comprising:
1) means for creating a dilation slope signal representative of the maximum value of the slope found by said means for determining the slope over a time interval approximately equal to the time length of a QRS complex on an ECG signal;
2) means for creating a reference slope signal representing the maximum value of the slope found over a relatively long time interval by said means for determining the slope comprising:
i) means for generating a threshold slope signal representative of the maximum slope determined by said means for determining the slope of the ECG signal over an
intermediate time period;
ii) means for comparing the instantaneous slope of the ECG signal determined by said means for determining the slope to said threshold slope signal;
iii) means for decaying the value of said
threshold slope if the instantaneous value of the slope found by said means for determining the slope does not become greater than the instantaneous slope within a preset time interval;
iv) means for generating a reference slope signal representing the maximum slope determined by said means for determining the slope of the ECG signal over a relatively long time period; and
v) means for replacing the current value of said reference slope signal with the instantaneous slope value of the ECG signal determined by said means for determining the slope when the instantaneous slope value has a greater value than said threshold slope signal; and
3) means for determining a ratio of said dilation slope signal and said reference slope signal whereby a control signal is generated in response to the ratio determined by said means for determining a ratio;
whereby during the part of the ECG signal presented to the input not having a QRS complex, the low pass filter operates at a relatively low cutoff frequency and when a QRS complex is detected in the ECG signal by said means for determining the presence of a QRS complex, a control signal directs said low pass filter to operate at a relatively higher cutoff frequency so that the QRS complex of the ECG signal delayed by said means for delaying is presented to said low pass filter just after said low pass filter begins operating in its relatively higher cutoff frequency mode, thereby passing the QRS complex through said low pass filter with relatively little attenuation.
15. A method for filtering unwanted electrical signals from an electrocardiograph (ECG) signal presented to an input comprising:
a) delaying an ECG signal presented at the input;
b) determining the presence of a QRS complex in the ECG signal presented at the input;
c) creating a control signal in response to a
determination of the presence of a QRS complex;
d) operating a variable cutoff frequency low pass filter capable of operating at at least two different cutoff frequencies, the specific cutoff frequency enabled in response to said control signal, at a relatively low cutoff frequency during the part of the ECG signal presented to the input not having a QRS complex, while operating said
variable cutoff frequency low pass filter at a relatively higher cutoff frequency when a QRS complex is detected in the ECG signal; e) passing said delayed ECG signal through said variable cutoff frequency low pass filter;
whereby during the part of the ECG signal presented to the input not having a QRS complex, said low pass filter operates at a relatively low cutoff frequency and when a QRS complex is detected in the ECG signal, said control signal directs said low pass filter to operate at a relatively higher cutoff frequency so that the QRS complex of said delayed ECG signal is presented to said low pass filter just after said low pass filter begins operating in its
relatively higher cutoff frequency mode, thereby passing the QRS complex through said low pass filter with relatively little attenuation.
PCT/US1992/007482 1991-09-09 1992-09-09 Ecg muscle artifact filter system WO1993005574A1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US07/756,933 US5259387A (en) 1991-09-09 1991-09-09 ECG muscle artifact filter system
US756,933 1991-09-09

Publications (1)

Publication Number Publication Date
WO1993005574A1 true WO1993005574A1 (en) 1993-03-18

Family

ID=25045668

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/US1992/007482 WO1993005574A1 (en) 1991-09-09 1992-09-09 Ecg muscle artifact filter system

Country Status (3)

Country Link
US (1) US5259387A (en)
AU (1) AU2590692A (en)
WO (1) WO1993005574A1 (en)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0634135A1 (en) * 1993-07-16 1995-01-18 Siemens-Elema AB Device for filtering ECG signals
EP0647426A2 (en) * 1993-10-12 1995-04-12 Hewlett-Packard Company A dynamic filter for real-time artifact removal from waveforms
EP0687442A1 (en) * 1994-06-17 1995-12-20 Gram Corporation Method of, and apparatus for, measuring electrogastrogram and intestinal electrogram
ES2155384A1 (en) * 1999-05-12 2001-05-01 Univ Alcala Henares Electronic system for measuring electric impedance in the thorax.
DE102004060366A1 (en) * 2004-12-15 2006-07-06 Infineon Technologies Ag Digital filter arrangement for mobile radio telephone standards has signal input and output with signal paths and digital filters and for delivery of adjusting signal, signals at input side are arranged against the adjusting entrance
EP1834578A1 (en) * 2004-12-22 2007-09-19 Dainippon Sumitomo Pharma Co., Ltd. Electrocardiogram waveform correction display and electrocardiogram waveform correction display method
CN110755069A (en) * 2019-10-25 2020-02-07 山东省计算中心(国家超级计算济南中心) Dynamic electrocardiosignal baseline drift correction method for jump mutation noise

Families Citing this family (166)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE4106856A1 (en) * 1991-03-04 1992-09-10 Siemens Ag METHOD AND DEVICE FOR FILTERING BASELINE FLUCTUATIONS FROM AN ELECTROCARDIOGRAM
US5713367A (en) * 1994-01-26 1998-02-03 Cambridge Heart, Inc. Measuring and assessing cardiac electrical stability
US5706823A (en) * 1995-08-18 1998-01-13 Quinton Instrument Company Electrophysiology filtering system
US5762068A (en) * 1995-11-27 1998-06-09 Quinton Instrument Company ECG filter and slew rate limiter for filtering an ECG signal
US5791944A (en) * 1996-06-18 1998-08-11 Cambridge Heart, Inc. Electrode connector
DE19638738B4 (en) * 1996-09-10 2006-10-05 Bundesrepublik Deutschland, vertr. d. d. Bundesministerium für Wirtschaft und Technologie, dieses vertr. d. d. Präsidenten der Physikalisch-Technischen Bundesanstalt Method for obtaining a diagnostic statement from signals and data of medical sensor systems
US7799337B2 (en) 1997-07-21 2010-09-21 Levin Bruce H Method for directed intranasal administration of a composition
JP3235535B2 (en) * 1997-09-26 2001-12-04 松下電器産業株式会社 Robot control device and control method thereof
DE19752094C1 (en) 1997-11-25 1999-07-15 Bundesrep Deutschland Method for determining at least one piece of diagnostic information from signal patterns of medical sensor systems
US6161047A (en) 1998-04-30 2000-12-12 Medtronic Inc. Apparatus and method for expanding a stimulation lead body in situ
US6319241B1 (en) * 1998-04-30 2001-11-20 Medtronic, Inc. Techniques for positioning therapy delivery elements within a spinal cord or a brain
US5908393A (en) * 1998-05-04 1999-06-01 Cambridge Heart, Inc. Reducing noise in a biological signal
AU3732000A (en) * 1999-03-12 2000-09-28 Cardiac Pacemakers, Inc. Cardiac rhythm management system with time-dependent frequency response
US6109269A (en) * 1999-04-30 2000-08-29 Medtronic, Inc. Method of treating addiction by brain infusion
US6353762B1 (en) * 1999-04-30 2002-03-05 Medtronic, Inc. Techniques for selective activation of neurons in the brain, spinal cord parenchyma or peripheral nerve
US6176242B1 (en) 1999-04-30 2001-01-23 Medtronic Inc Method of treating manic depression by brain infusion
US6871098B2 (en) * 2000-10-30 2005-03-22 Medtronic, Inc. Method for treating obsessive-compulsive disorder with electrical stimulation of the brain internal capsule
US6944497B2 (en) * 2001-10-31 2005-09-13 Medtronic, Inc. System and method of treating stuttering by neuromodulation
US6912414B2 (en) * 2002-01-29 2005-06-28 Southwest Research Institute Electrode systems and methods for reducing motion artifact
US7588581B2 (en) * 2002-03-26 2009-09-15 Medtronic, Inc. Placement of chronic micro-catheter device and method
US7383079B2 (en) * 2004-04-08 2008-06-03 Welch Allyn, Inc. Nonlinear method and apparatus for electrocardiogram pacemaker signal filtering
US7725196B2 (en) 2004-05-04 2010-05-25 The Cleveland Clinic Foundation Corpus callosum neuromodulation assembly
US7640063B2 (en) * 2004-05-04 2009-12-29 The Cleveland Clinic Foundation Methods of treating medical conditions by neuromodulation of the cerebellar pathways
US7346382B2 (en) 2004-07-07 2008-03-18 The Cleveland Clinic Foundation Brain stimulation models, systems, devices, and methods
US20060235321A1 (en) * 2005-04-15 2006-10-19 Simske Steven J ECG filtering
US7962201B2 (en) * 2005-04-15 2011-06-14 Hewlett Packard Development Company, L.P. Methods of generating a virtual lead associated with a physiological recording
US7742812B2 (en) * 2006-03-29 2010-06-22 Medtronic, Inc. Method and apparatus for detecting arrhythmias in a medical device
EP2094352A4 (en) 2006-12-06 2010-05-19 Cleveland Clinic Foundation Method and system for treating acute heart failure by neuromodulation
US9220889B2 (en) 2008-02-11 2015-12-29 Intelect Medical, Inc. Directional electrode devices with locating features
US8019440B2 (en) 2008-02-12 2011-09-13 Intelect Medical, Inc. Directional lead assembly
US8473062B2 (en) 2008-05-01 2013-06-25 Autonomic Technologies, Inc. Method and device for the treatment of headache
US9272153B2 (en) 2008-05-15 2016-03-01 Boston Scientific Neuromodulation Corporation VOA generation system and method using a fiber specific analysis
US8412336B2 (en) 2008-12-29 2013-04-02 Autonomic Technologies, Inc. Integrated delivery and visualization tool for a neuromodulation system
US9320908B2 (en) 2009-01-15 2016-04-26 Autonomic Technologies, Inc. Approval per use implanted neurostimulator
US8494641B2 (en) 2009-04-22 2013-07-23 Autonomic Technologies, Inc. Implantable neurostimulator with integral hermetic electronic enclosure, circuit substrate, monolithic feed-through, lead assembly and anchoring mechanism
US20110037514A1 (en) * 2009-08-17 2011-02-17 Edan Instruments, Inc. Method for the Elimination of Ringing of Power Line Interference Filter
EP2470258B1 (en) 2009-08-27 2017-03-15 The Cleveland Clinic Foundation System and method to estimate region of tissue activation
WO2011068997A1 (en) 2009-12-02 2011-06-09 The Cleveland Clinic Foundation Reversing cognitive-motor impairments in patients having a neuro-degenerative disease using a computational modeling approach to deep brain stimulation programming
US8509882B2 (en) 2010-06-08 2013-08-13 Alivecor, Inc. Heart monitoring system usable with a smartphone or computer
US9351654B2 (en) 2010-06-08 2016-05-31 Alivecor, Inc. Two electrode apparatus and methods for twelve lead ECG
EP2580710B1 (en) 2010-06-14 2016-11-09 Boston Scientific Neuromodulation Corporation Programming interface for spinal cord neuromodulation
EP2418773A1 (en) * 2010-07-28 2012-02-15 Brandenburgische Technische Universität Cottbus Glitch-free switchable FIR-filter
US8145307B2 (en) 2010-08-26 2012-03-27 Medtronic, Inc. Method and apparatus for enhancing treatable arrhythmia detection specificity by using accumulated patient activity
EP2691899A2 (en) 2011-03-29 2014-02-05 Boston Scientific Neuromodulation Corporation System and method for leadwire location
DE102011016804B4 (en) 2011-04-12 2016-01-28 Drägerwerk AG & Co. KGaA Device and method for data processing of physiological signals
US9592389B2 (en) 2011-05-27 2017-03-14 Boston Scientific Neuromodulation Corporation Visualization of relevant stimulation leadwire electrodes relative to selected stimulation information
US9925382B2 (en) 2011-08-09 2018-03-27 Boston Scientific Neuromodulation Corporation Systems and methods for stimulation-related volume analysis, creation, and sharing
US9126055B2 (en) 2012-04-20 2015-09-08 Cardiac Science Corporation AED faster time to shock method and device
EP2879757B1 (en) 2012-08-04 2019-06-26 Boston Scientific Neuromodulation Corporation Systems and methods for storing and transferring registration, atlas, and lead information between medical devices
EP2890454B1 (en) 2012-08-28 2017-11-08 Boston Scientific Neuromodulation Corporation Point-and-click programming for deep brain stimulation using real-time monopolar review trendlines
WO2014070290A2 (en) 2012-11-01 2014-05-08 Boston Scientific Neuromodulation Corporation Systems and methods for voa model generation and use
WO2014074913A1 (en) 2012-11-08 2014-05-15 Alivecor, Inc. Electrocardiogram signal detection
EP2938247B1 (en) * 2012-12-31 2020-09-16 Koninklijke Philips N.V. Method and apparatus for reducing motion artifacts in ecg signals
CN104902809B (en) * 2012-12-31 2020-08-18 皇家飞利浦有限公司 Method and apparatus for reducing motion artifacts in ECG signals
WO2014107700A1 (en) 2013-01-07 2014-07-10 Alivecor, Inc. Methods and systems for electrode placement
US8825145B1 (en) 2013-03-14 2014-09-02 Medtronic, Inc. Beat-morphology matching scheme for cardiac sensing and event detection
US8983586B2 (en) 2013-03-14 2015-03-17 Medtronic, Inc. Beat-morphology matching scheme for cardiac sensing and event detection
WO2014145927A1 (en) 2013-03-15 2014-09-18 Alivecor, Inc. Systems and methods for processing and analyzing medical data
US9247911B2 (en) 2013-07-10 2016-02-02 Alivecor, Inc. Devices and methods for real-time denoising of electrocardiograms
EP3079571A4 (en) 2013-12-12 2017-08-02 Alivecor, Inc. Methods and systems for arrhythmia tracking and scoring
US9192759B2 (en) 2014-03-31 2015-11-24 Dennison Hamilton System and method for stabilizing implanted spinal cord stimulators
CN111790047B (en) 2014-05-22 2022-09-27 卡迪诺米克公司 Catheter and catheter system for electrical neuromodulation
US9959388B2 (en) 2014-07-24 2018-05-01 Boston Scientific Neuromodulation Corporation Systems, devices, and methods for providing electrical stimulation therapy feedback
US10272247B2 (en) 2014-07-30 2019-04-30 Boston Scientific Neuromodulation Corporation Systems and methods for stimulation-related volume analysis, creation, and sharing with integrated surgical planning and stimulation programming
US10265528B2 (en) 2014-07-30 2019-04-23 Boston Scientific Neuromodulation Corporation Systems and methods for electrical stimulation-related patient population volume analysis and use
WO2016040038A1 (en) 2014-09-08 2016-03-17 CARDIONOMIC, Inc. Methods for electrical neuromodulation of the heart
WO2016040037A1 (en) 2014-09-08 2016-03-17 CARDIONOMIC, Inc. Catheter and electrode systems for electrical neuromodulation
WO2016057544A1 (en) 2014-10-07 2016-04-14 Boston Scientific Neuromodulation Corporation Systems, devices, and methods for electrical stimulation using feedback to adjust stimulation parameters
CN109568786A (en) 2015-01-05 2019-04-05 卡迪诺米克公司 Heart, which is adjusted, promotes method and system
US10220213B2 (en) 2015-02-06 2019-03-05 Cardiac Pacemakers, Inc. Systems and methods for safe delivery of electrical stimulation therapy
WO2016130477A2 (en) 2015-02-09 2016-08-18 Cardiac Pacemakers, Inc. Implantable medical device with radiopaque id tag
WO2016141046A1 (en) 2015-03-04 2016-09-09 Cardiac Pacemakers, Inc. Systems and methods for treating cardiac arrhythmias
EP3282933B1 (en) 2015-05-13 2020-07-08 Alivecor, Inc. Discordance monitoring
US10780283B2 (en) 2015-05-26 2020-09-22 Boston Scientific Neuromodulation Corporation Systems and methods for analyzing electrical stimulation and selecting or manipulating volumes of activation
EP3268082B1 (en) 2015-05-26 2019-04-17 Boston Scientific Neuromodulation Corporation Systems and methods for analyzing electrical stimulation and selecting or manipulating volumes of activation
EP3280491B1 (en) 2015-06-29 2023-03-01 Boston Scientific Neuromodulation Corporation Systems for selecting stimulation parameters by targeting and steering
EP3280490B1 (en) 2015-06-29 2021-09-01 Boston Scientific Neuromodulation Corporation Systems for selecting stimulation parameters based on stimulation target region, effects, or side effects
EP3337559B1 (en) 2015-08-20 2019-10-16 Cardiac Pacemakers, Inc. Systems and methods for communication between medical devices
CN108136186B (en) 2015-08-20 2021-09-17 心脏起搏器股份公司 System and method for communication between medical devices
WO2017040153A1 (en) 2015-08-28 2017-03-09 Cardiac Pacemakers, Inc. Systems and methods for behaviorally responsive signal detection and therapy delivery
US10226631B2 (en) 2015-08-28 2019-03-12 Cardiac Pacemakers, Inc. Systems and methods for infarct detection
WO2017040115A1 (en) 2015-08-28 2017-03-09 Cardiac Pacemakers, Inc. System for detecting tamponade
CN108136185B (en) 2015-10-08 2021-08-31 心脏起搏器股份公司 Apparatus and method for adjusting pacing rate in an implantable medical device
WO2017062378A1 (en) 2015-10-09 2017-04-13 Boston Scientific Neuromodulation Corporation System and methods for clinical effects mapping for directional stimulations leads
WO2017106693A1 (en) 2015-12-17 2017-06-22 Cardiac Pacemakers, Inc. Conducted communication in a medical device system
US10905886B2 (en) 2015-12-28 2021-02-02 Cardiac Pacemakers, Inc. Implantable medical device for deployment across the atrioventricular septum
WO2017127548A1 (en) 2016-01-19 2017-07-27 Cardiac Pacemakers, Inc. Devices for wirelessly recharging a rechargeable battery of an implantable medical device
US10350423B2 (en) 2016-02-04 2019-07-16 Cardiac Pacemakers, Inc. Delivery system with force sensor for leadless cardiac device
AU2017229496B2 (en) 2016-03-09 2022-03-31 CARDIONOMIC, Inc. Cardiac contractility neurostimulation systems and methods
US11116988B2 (en) 2016-03-31 2021-09-14 Cardiac Pacemakers, Inc. Implantable medical device with rechargeable battery
US10716942B2 (en) 2016-04-25 2020-07-21 Boston Scientific Neuromodulation Corporation System and methods for directional steering of electrical stimulation
US10328272B2 (en) 2016-05-10 2019-06-25 Cardiac Pacemakers, Inc. Retrievability for implantable medical devices
US10668294B2 (en) 2016-05-10 2020-06-02 Cardiac Pacemakers, Inc. Leadless cardiac pacemaker configured for over the wire delivery
AU2017281934B2 (en) 2016-06-24 2019-11-14 Boston Scientific Neuromodulation Corporation Systems and methods for visual analytics of clinical effects
WO2018005373A1 (en) 2016-06-27 2018-01-04 Cardiac Pacemakers, Inc. Cardiac therapy system using subcutaneously sensed p-waves for resynchronization pacing management
US11207527B2 (en) 2016-07-06 2021-12-28 Cardiac Pacemakers, Inc. Method and system for determining an atrial contraction timing fiducial in a leadless cardiac pacemaker system
US10426962B2 (en) 2016-07-07 2019-10-01 Cardiac Pacemakers, Inc. Leadless pacemaker using pressure measurements for pacing capture verification
US10688304B2 (en) 2016-07-20 2020-06-23 Cardiac Pacemakers, Inc. Method and system for utilizing an atrial contraction timing fiducial in a leadless cardiac pacemaker system
WO2018035343A1 (en) 2016-08-19 2018-02-22 Cardiac Pacemakers, Inc. Trans septal implantable medical device
CN109641129B (en) 2016-08-24 2023-06-30 心脏起搏器股份公司 Cardiac resynchronization with timing management using fusion facilitation
WO2018039335A1 (en) 2016-08-24 2018-03-01 Cardiac Pacemakers, Inc. Integrated multi-device cardiac resynchronization therapy using p-wave to pace timing
WO2018044881A1 (en) 2016-09-02 2018-03-08 Boston Scientific Neuromodulation Corporation Systems and methods for visualizing and directing stimulation of neural elements
US10780282B2 (en) 2016-09-20 2020-09-22 Boston Scientific Neuromodulation Corporation Systems and methods for steering electrical stimulation of patient tissue and determining stimulation parameters
US10758737B2 (en) 2016-09-21 2020-09-01 Cardiac Pacemakers, Inc. Using sensor data from an intracardially implanted medical device to influence operation of an extracardially implantable cardioverter
WO2018057318A1 (en) 2016-09-21 2018-03-29 Cardiac Pacemakers, Inc. Leadless stimulation device with a housing that houses internal components of the leadless stimulation device and functions as the battery case and a terminal of an internal battery
US10994145B2 (en) 2016-09-21 2021-05-04 Cardiac Pacemakers, Inc. Implantable cardiac monitor
CN109803719B (en) 2016-10-14 2023-05-26 波士顿科学神经调制公司 System and method for closed loop determination of stimulation parameter settings for an electrical simulation system
WO2018081237A1 (en) 2016-10-27 2018-05-03 Cardiac Pacemakers, Inc. Use of a separate device in managing the pace pulse energy of a cardiac pacemaker
US10413733B2 (en) 2016-10-27 2019-09-17 Cardiac Pacemakers, Inc. Implantable medical device with gyroscope
WO2018081275A1 (en) 2016-10-27 2018-05-03 Cardiac Pacemakers, Inc. Multi-device cardiac resynchronization therapy with timing enhancements
EP3532159B1 (en) 2016-10-27 2021-12-22 Cardiac Pacemakers, Inc. Implantable medical device delivery system with integrated sensor
AU2017350759B2 (en) 2016-10-27 2019-10-17 Cardiac Pacemakers, Inc. Implantable medical device with pressure sensor
US10561330B2 (en) 2016-10-27 2020-02-18 Cardiac Pacemakers, Inc. Implantable medical device having a sense channel with performance adjustment
CN109890456B (en) 2016-10-31 2023-06-13 心脏起搏器股份公司 System for activity level pacing
US10434317B2 (en) 2016-10-31 2019-10-08 Cardiac Pacemakers, Inc. Systems and methods for activity level pacing
WO2018089311A1 (en) 2016-11-08 2018-05-17 Cardiac Pacemakers, Inc Implantable medical device for atrial deployment
CN109952129B (en) 2016-11-09 2024-02-20 心脏起搏器股份公司 System, device and method for setting cardiac pacing pulse parameters for a cardiac pacing device
JP6843240B2 (en) 2016-11-21 2021-03-17 カーディアック ペースメイカーズ, インコーポレイテッド Implantable medical device with permeable housing and induction coil placed around the housing
US10881869B2 (en) 2016-11-21 2021-01-05 Cardiac Pacemakers, Inc. Wireless re-charge of an implantable medical device
EP3541473B1 (en) 2016-11-21 2020-11-11 Cardiac Pacemakers, Inc. Leadless cardiac pacemaker with multimode communication
US10639486B2 (en) 2016-11-21 2020-05-05 Cardiac Pacemakers, Inc. Implantable medical device with recharge coil
US10894163B2 (en) 2016-11-21 2021-01-19 Cardiac Pacemakers, Inc. LCP based predictive timing for cardiac resynchronization
KR102580266B1 (en) * 2016-11-29 2023-09-19 삼성전자주식회사 Bio signal processing apparatus, apparatus and method for living body information detecting
JP6834005B2 (en) 2017-01-03 2021-02-24 ボストン サイエンティフィック ニューロモデュレイション コーポレイション Systems and methods for selecting MRI-matched stimulus parameters
US11207532B2 (en) 2017-01-04 2021-12-28 Cardiac Pacemakers, Inc. Dynamic sensing updates using postural input in a multiple device cardiac rhythm management system
ES2821752T3 (en) 2017-01-10 2021-04-27 Boston Scient Neuromodulation Corp Systems and procedures for creating stimulation programs based on user-defined areas or volumes
WO2018140617A1 (en) 2017-01-26 2018-08-02 Cardiac Pacemakers, Inc. Intra-body device communication with redundant message transmission
CN110198759B (en) 2017-01-26 2023-08-11 心脏起搏器股份公司 Leadless implantable device with removable fasteners
EP3573709A1 (en) 2017-01-26 2019-12-04 Cardiac Pacemakers, Inc. Leadless device with overmolded components
US10625082B2 (en) 2017-03-15 2020-04-21 Boston Scientific Neuromodulation Corporation Visualization of deep brain stimulation efficacy
US10905872B2 (en) 2017-04-03 2021-02-02 Cardiac Pacemakers, Inc. Implantable medical device with a movable electrode biased toward an extended position
WO2018187090A1 (en) 2017-04-03 2018-10-11 Boston Scientific Neuromodulation Corporation Systems and methods for estimating a volume of activation using a compressed database of threshold values
AU2018248361B2 (en) 2017-04-03 2020-08-27 Cardiac Pacemakers, Inc. Cardiac pacemaker with pacing pulse energy adjustment based on sensed heart rate
FR3066023B1 (en) * 2017-05-04 2019-06-28 Elichens DEVICE AND METHOD FOR MEASURING AND MONITORING THE QUANTITY OR CONCENTRATION OF A COMPONENT IN A FLUID
EP3651849B1 (en) 2017-07-14 2023-05-31 Boston Scientific Neuromodulation Corporation Estimating clinical effects of electrical stimulation
EP3634569A1 (en) 2017-08-15 2020-04-15 Boston Scientific Neuromodulation Corporation Systems and methods for controlling electrical stimulation using multiple stimulation fields
US11065459B2 (en) 2017-08-18 2021-07-20 Cardiac Pacemakers, Inc. Implantable medical device with pressure sensor
US10918875B2 (en) 2017-08-18 2021-02-16 Cardiac Pacemakers, Inc. Implantable medical device with a flux concentrator and a receiving coil disposed about the flux concentrator
WO2019055434A1 (en) 2017-09-13 2019-03-21 CARDIONOMIC, Inc. Neurostimulation systems and methods for affecting cardiac contractility
CN111107899B (en) 2017-09-20 2024-04-02 心脏起搏器股份公司 Implantable medical device with multiple modes of operation
US11185703B2 (en) 2017-11-07 2021-11-30 Cardiac Pacemakers, Inc. Leadless cardiac pacemaker for bundle of his pacing
EP3717060B1 (en) 2017-12-01 2022-10-05 Cardiac Pacemakers, Inc. Leadless cardiac pacemaker with reversionary behavior
EP3717059A1 (en) 2017-12-01 2020-10-07 Cardiac Pacemakers, Inc. Methods and systems for detecting atrial contraction timing fiducials within a search window from a ventricularly implanted leadless cardiac pacemaker
US11071870B2 (en) 2017-12-01 2021-07-27 Cardiac Pacemakers, Inc. Methods and systems for detecting atrial contraction timing fiducials and determining a cardiac interval from a ventricularly implanted leadless cardiac pacemaker
EP3717064B1 (en) 2017-12-01 2023-06-07 Cardiac Pacemakers, Inc. Methods and systems for detecting atrial contraction timing fiducials during ventricular filling from a ventricularly implanted leadless cardiac pacemaker
EP3735293B1 (en) 2018-01-04 2022-03-09 Cardiac Pacemakers, Inc. Dual chamber pacing without beat-to-beat communication
US11529523B2 (en) 2018-01-04 2022-12-20 Cardiac Pacemakers, Inc. Handheld bridge device for providing a communication bridge between an implanted medical device and a smartphone
EP3768369A1 (en) 2018-03-23 2021-01-27 Medtronic, Inc. Av synchronous vfa cardiac therapy
CN111902187A (en) 2018-03-23 2020-11-06 美敦力公司 VFA cardiac resynchronization therapy
EP3768160B1 (en) 2018-03-23 2023-06-07 Medtronic, Inc. Vfa cardiac therapy for tachycardia
EP3784331B1 (en) 2018-04-27 2023-01-18 Boston Scientific Neuromodulation Corporation Multi-mode electrical stimulation systems and methods of making and using
US11285329B2 (en) 2018-04-27 2022-03-29 Boston Scientific Neuromodulation Corporation Systems and methods for visualizing and programming electrical stimulation
JP2021535776A (en) 2018-08-13 2021-12-23 カーディオノミック,インク. Systems and methods that act on systole and / or relaxation
US11235161B2 (en) 2018-09-26 2022-02-01 Medtronic, Inc. Capture in ventricle-from-atrium cardiac therapy
US11951313B2 (en) 2018-11-17 2024-04-09 Medtronic, Inc. VFA delivery systems and methods
US11679265B2 (en) 2019-02-14 2023-06-20 Medtronic, Inc. Lead-in-lead systems and methods for cardiac therapy
US11697025B2 (en) 2019-03-29 2023-07-11 Medtronic, Inc. Cardiac conduction system capture
US11213676B2 (en) 2019-04-01 2022-01-04 Medtronic, Inc. Delivery systems for VfA cardiac therapy
JP2022531658A (en) 2019-05-06 2022-07-08 カーディオノミック,インク. Systems and methods for noise reduction of physiological signals during electrical neural regulation
US11712188B2 (en) 2019-05-07 2023-08-01 Medtronic, Inc. Posterior left bundle branch engagement
US11305127B2 (en) 2019-08-26 2022-04-19 Medtronic Inc. VfA delivery and implant region detection
US11813466B2 (en) 2020-01-27 2023-11-14 Medtronic, Inc. Atrioventricular nodal stimulation
US11911168B2 (en) 2020-04-03 2024-02-27 Medtronic, Inc. Cardiac conduction system therapy benefit determination
US11813464B2 (en) 2020-07-31 2023-11-14 Medtronic, Inc. Cardiac conduction system evaluation
CN115804607A (en) * 2021-09-14 2023-03-17 疆域康健创新医疗科技成都有限公司 Electrocardiosignal detection equipment and method
US11707233B1 (en) 2022-12-16 2023-07-25 Wisear Simultaneous sub-Nyquist acquisition of a plurality of bioelectric signals

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2166913A5 (en) * 1971-12-29 1973-08-17 Perkin Elmer Corp
US4157711A (en) * 1977-04-01 1979-06-12 Ramot University Authority For Applied Research & Industrial Development Ltd. Electrocardiograph apparatus capable of discerning the H-wave in the P-Q interval

Family Cites Families (37)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3581219A (en) * 1967-10-24 1971-05-25 Ibm System for dynamically adjusting clipping in editing electrocardiogram waves
US3590811A (en) * 1968-12-06 1971-07-06 American Optical Corp Electrocardiographic r-wave detector
US3569852A (en) * 1969-01-23 1971-03-09 American Optical Corp Frequency selective variable gain amplifier
FR2218078B1 (en) * 1973-02-16 1977-04-22 Hoffmann La Roche
US3903874A (en) * 1973-08-27 1975-09-09 Mediscience Technology Corp Cardiographic signal processing means and method
US4000461A (en) * 1973-10-04 1976-12-28 Textronix, Inc. R-wave detector
DE2362063C3 (en) * 1973-12-13 1979-11-29 Siemens Ag, 1000 Berlin Und 8000 Muenchen Circuit arrangement for the acquisition of physiological electrical measurement signals
US3905364A (en) * 1974-04-17 1975-09-16 Marquette Electronics Inc Artifact detector
US3927663A (en) * 1974-05-02 1975-12-23 Phsiological Electronics Corp Method and apparatus for detecting cardiac arrhythmias
FR2393370B1 (en) * 1977-05-31 1980-09-19 Inst Nat Sante Rech Med APPARATUS FOR ACQUIRING AND PRETREATING ELECTROCARDIOGRAPHIC OR VECTOCARDIOGRAPHIC DATA
US4161945A (en) * 1977-10-25 1979-07-24 Cambridge Instrument Company, Inc. Selective interference filter
DE2805681C2 (en) * 1978-02-10 1979-11-22 Siemens Ag, 1000 Berlin Und 8000 Muenchen Circuit arrangement for suppressing interference signals in a useful signal
US4213467A (en) * 1978-08-11 1980-07-22 Harvard College, President And Fellows Monitoring myoelectric signals
US4192318A (en) * 1978-09-13 1980-03-11 Bios Inc. Method and apparatus for locating the QRS portion of an electrocardiographic signal
US4457315A (en) * 1978-09-18 1984-07-03 Arvin Bennish Cardiac arrhythmia detection and recording
US4527567A (en) * 1980-04-01 1985-07-09 Yeda Research & Development Company, Ltd. Method and apparatus for automatically evaluating the quality of the performance of a cardiac pacing system
US4453218A (en) * 1980-11-24 1984-06-05 Oximetrix, Inc. Signal filter method and apparatus
US4408615A (en) * 1981-03-02 1983-10-11 Cambridge Instruments, Inc. Interference filter
US4537196A (en) * 1981-12-21 1985-08-27 American Home Products Corporation (Del.) Systems and methods for processing physiological signals
US4458692A (en) * 1982-02-11 1984-07-10 Arrhythmia Research Technology, Inc. System and method for predicting ventricular tachycardia with a gain controlled high pass filter
US4458691A (en) * 1982-02-11 1984-07-10 Arrhythmia Research Technology, Inc. System and method for predicting ventricular tachycardia by adaptive high pass filter
US4448202A (en) * 1982-04-26 1984-05-15 Wajszczuk Waldemar J Biological signal amplifier system with noise level reduction
US4494551A (en) * 1982-11-12 1985-01-22 Medicomp, Inc. Alterable frequency response electrocardiographic amplifier
US4478224A (en) * 1982-11-26 1984-10-23 Camino Laboratories, Inc. Artifact detector for heartbeat rate measuring system
US4646258A (en) * 1982-12-30 1987-02-24 Memorial Hospital For Cancer And Allied Diseases Sampled N-path filter
US4537200A (en) * 1983-07-07 1985-08-27 The Board Of Trustees Of The Leland Stanford Junior University ECG enhancement by adaptive cancellation of electrosurgical interference
US4664116A (en) * 1984-04-18 1987-05-12 Hewlett-Packard Company Pace pulse identification apparatus
US4617938A (en) * 1984-12-26 1986-10-21 Yair Shimoni Method and system for distinguishing R-wave electrocardiograph signals for synchronizing purposes
US4781201A (en) * 1984-12-27 1988-11-01 American Home Products Corporation (Del.) Cardiovascular artifact filter
US5002064A (en) * 1985-08-09 1991-03-26 Allain Joseph L Portable life detection monitor including lead fail detector and unique signal processing system
US4751931A (en) * 1986-09-22 1988-06-21 Allegheny-Singer Research Institute Method and apparatus for determining his-purkinje activity
US4832041A (en) * 1987-02-26 1989-05-23 Hewlett-Packard Company Pace pulse eliminator
US4793361A (en) * 1987-03-13 1988-12-27 Cardiac Pacemakers, Inc. Dual channel P-wave detection in surface electrocardiographs
US4887609A (en) * 1987-05-13 1989-12-19 The Methodist Hospital System Apparatus and method for filtering electrocardiograph signals
JPH01227739A (en) * 1988-03-07 1989-09-11 Nec Corp Electrocardiograph
JPH01227740A (en) * 1988-03-08 1989-09-11 Nec Corp System for removing power frequency noise for electrocardiograph signal
AU3297089A (en) * 1988-03-25 1989-10-16 Arzco Medical Electronics, Inc. Artifact suppressing apparatus and method

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2166913A5 (en) * 1971-12-29 1973-08-17 Perkin Elmer Corp
US4157711A (en) * 1977-04-01 1979-06-12 Ramot University Authority For Applied Research & Industrial Development Ltd. Electrocardiograph apparatus capable of discerning the H-wave in the P-Q interval

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
IEEE TRANSACTIONS ON CIRCUITS AND SYSTEMS vol. 36, no. 11, November 1989, NEW YORK US pages 1473 - 1478 ZAROUR ET AL 'a design technique for variable digital filters' *

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0634135A1 (en) * 1993-07-16 1995-01-18 Siemens-Elema AB Device for filtering ECG signals
EP0647426A2 (en) * 1993-10-12 1995-04-12 Hewlett-Packard Company A dynamic filter for real-time artifact removal from waveforms
EP0647426A3 (en) * 1993-10-12 1996-04-03 Hewlett Packard Co A dynamic filter for real-time artifact removal from waveforms.
EP0687442A1 (en) * 1994-06-17 1995-12-20 Gram Corporation Method of, and apparatus for, measuring electrogastrogram and intestinal electrogram
ES2155384A1 (en) * 1999-05-12 2001-05-01 Univ Alcala Henares Electronic system for measuring electric impedance in the thorax.
DE102004060366A1 (en) * 2004-12-15 2006-07-06 Infineon Technologies Ag Digital filter arrangement for mobile radio telephone standards has signal input and output with signal paths and digital filters and for delivery of adjusting signal, signals at input side are arranged against the adjusting entrance
DE102004060366B4 (en) * 2004-12-15 2009-09-10 Infineon Technologies Ag Digital filter arrangement, use of the digital filter arrangement and method for controlling a switching time in a digital filter
EP1834578A1 (en) * 2004-12-22 2007-09-19 Dainippon Sumitomo Pharma Co., Ltd. Electrocardiogram waveform correction display and electrocardiogram waveform correction display method
EP1834578A4 (en) * 2004-12-22 2010-02-17 Dainippon Sumitomo Pharma Co Electrocardiogram waveform correction display and electrocardiogram waveform correction display method
US8103335B2 (en) 2004-12-22 2012-01-24 Nihon Kohden Corporation Cardiogram waveform correcting and displaying device and a method of correcting and displaying cardiogram waveforms
CN110755069A (en) * 2019-10-25 2020-02-07 山东省计算中心(国家超级计算济南中心) Dynamic electrocardiosignal baseline drift correction method for jump mutation noise
CN110755069B (en) * 2019-10-25 2020-10-16 山东省计算中心(国家超级计算济南中心) Dynamic electrocardiosignal baseline drift correction method for jump mutation noise

Also Published As

Publication number Publication date
US5259387A (en) 1993-11-09
AU2590692A (en) 1993-04-05

Similar Documents

Publication Publication Date Title
WO1993005574A1 (en) Ecg muscle artifact filter system
Van Alste et al. ECG baseline wander reduction using linear phase filters
US5647366A (en) Method and system for automatic measurements of doppler waveforms
US5297557A (en) Stress test system with bidirectional filter
US5025794A (en) Method for analysis of electrocardiographic signal QRS complex
US5682902A (en) ECG pace pulse detection and processing
US4185168A (en) Method and means for adaptively filtering near-stationary noise from an information bearing signal
DE3533912C2 (en)
CA1210074A (en) System and method for predicting ventricular tachycardia by derivative analysis
US5318036A (en) Method and apparatus for removing baseline wander from an ECG signal
US4781201A (en) Cardiovascular artifact filter
US6280391B1 (en) Method and apparatus for removing baseline wander from an egg signal
EP0285238B1 (en) Digital bandpass oscilloscope
US4887609A (en) Apparatus and method for filtering electrocardiograph signals
US4140110A (en) Systolic pressure determining apparatus and process using integration to determine pulse amplitude
US4458691A (en) System and method for predicting ventricular tachycardia by adaptive high pass filter
US5792069A (en) Method and system for the extraction of cardiac artifacts from EEG signals
EP0862928B1 (en) Pacemaker with morphological filtering of sensed cardiac signals
US4137907A (en) Systolic pressure determining apparatus and process using integration to determine pulse amplitude
US5357969A (en) Method and apparatus for accurately displaying an ECG signal
US5117833A (en) Bi-spectral filtering of electrocardiogram signals to determine selected QRS potentials
EP0634134B1 (en) Method and device for enhancing the signal-to-noise ratio of ECG signals
JP2635079B2 (en) Method of removing pace pulse signal from ECG wave signal and apparatus for removing pace pulse signal from ECG wave signal
EP0850593B1 (en) Apparatus for accurate counting of paced heartbeats
US5433208A (en) Device for filtering out baseline fluctuations from physiological measurement signals

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A1

Designated state(s): AU BB BG BR CA CS FI HU JP KP KR LK MG MN MW NO PL RO RU SD US

AL Designated countries for regional patents

Kind code of ref document: A1

Designated state(s): AT BE CH DE DK ES FR GB GR IE IT LU MC NL SE BF BJ CF CG CI CM GA GN ML MR SN TD TG

LE32 Later election for international application filed prior to expiration of 19th month from priority date or according to rule 32.2 (b)

Ref country code: UA

LE32 Later election for international application filed prior to expiration of 19th month from priority date or according to rule 32.2 (b)

Ref country code: UA

122 Ep: pct application non-entry in european phase
NENP Non-entry into the national phase

Ref country code: CA