Source: http://www.google.com/patents/US20070203419?ie=ISO-8859-1
Timestamp: 2014-04-19 02:25:15
Document Index: 479867996

Matched Legal Cases: ['art 405', 'art 410', 'art 410', 'art 405', 'art 405', 'art 410', 'art 410', 'art 405', 'art 405', 'art 410', 'art 405', 'art 410', 'art 505', 'art 505', 'art 505', 'art 505', 'art 505', 'art 505', 'art 505', 'art 505', 'art 505', 'art 505', 'art 505']

Patent US20070203419 - Tachyarrhythmia detection and discrimination based on curvature parameters - Google PatentsSearch Images Maps Play YouTube News Gmail Drive More »Sign inAdvanced Patent SearchPatentsEstimating a frequency of a sampled cardiac rhythm signal and classifying the rhythm. The received signal is sampled and transformed into a curvature series. A lobe in the curvature series corresponds to a characteristic point in the sampled series. Characteristic points are selected based on a time...http://www.google.com/patents/US20070203419?utm_source=gb-gplus-sharePatent US20070203419 - Tachyarrhythmia detection and discrimination based on curvature parametersAdvanced Patent SearchPublication numberUS20070203419 A1Publication typeApplicationApplication numberUS 10/607,818Publication dateAug 30, 2007Filing dateJun 27, 2003Priority dateJun 27, 2003Also published asEP1641529A2, US7792571, US8409107, US20100305645, WO2005002669A2, WO2005002669A3Publication number10607818, 607818, US 2007/0203419 A1, US 2007/203419 A1, US 20070203419 A1, US 20070203419A1, US 2007203419 A1, US 2007203419A1, US-A1-20070203419, US-A1-2007203419, US2007/0203419A1, US2007/203419A1, US20070203419 A1, US20070203419A1, US2007203419 A1, US2007203419A1InventorsRobert Sweeney, Carlos RicciOriginal AssigneeCaridac Pacemakers, Inc.Export CitationBiBTeX, EndNote, RefManReferenced by (9), Classifications (20), Legal Events (1) External Links: USPTO, USPTO Assignment, EspacenetTachyarrhythmia detection and discrimination based on curvature parametersUS 20070203419 A1Abstract Estimating a frequency of a sampled cardiac rhythm signal and classifying the rhythm. The received signal is sampled and transformed into a curvature series. A lobe in the curvature series corresponds to a characteristic point in the sampled series. Characteristic points are selected based on a time of a lobe in the curvature series and, in one embodiment, an amplitude of the signal at the time of the lobe. A frequency of the sampled series is estimated by autocorrelating a function of the series of the characteristic points. In one embodiment, the function is a time difference function. The rhythm is classified by plotting the timewise proximity of characteristic points derived from an atrial signal with characteristic points derived from a ventricular signal. Regions of the plot are associated with a particular rhythm and the grouping of the data corresponds to the classification. Images(14) Claims(61)
DETAILED DESCRIPTION In the following detailed description, reference is made to the accompanying drawings that form a part hereof, and in which is shown, by way of illustration, specific embodiments in which the invention may be practiced. These embodiments are described in sufficient detail to enable those skilled in the art to practice the invention, and it is to be understood that the embodiments may be combined, or that other embodiments may be utilized and that structural, logical and electrical changes may be made without departing from the scope of the present subject matter. The following detailed description is, therefore, not to be taken in a limiting sense, and the scope of the present invention is defined by the appended claims and their equivalents. This document discloses, among other things, systems, method and apparatus involving cardiac rhythm management systems used for sensing a cardiac signal, including intracardiac electrogram or surface electrocardiogram (ECG). Such cardiac rhythm management systems include, but are not limited to, pacemakers, CRT devices, cardioverter/defibrillators, pacer/defibrillators, and drug delivery devices. However, it is to be understood that the present methods and apparatuses of compressing a signal can be applied to heart beat detection as well as other signals related to cardiac activities, including, but not being limited to, mechanical motion, sound, pressure, acceleration, and impedance signals. Curvature Based Analysis For an arbitrary voltage versus time signal, the salient characteristics can be captured in terms of those points along the signal where it makes characteristic �turns.� In general, these points are different from those that would be selected using first or second derivative criteria as shown in FIG. 1. In the figure, which illustrates arbitrary electrogram 100, the R wave, denoted as point 101, has a high second derivative d2V/dt2. Further, the electrogram sections on either side of point 101 have high positive and negative slopes detectable with a first derivative criteria. However, those points with these large (or even maximum) slopes do not convey any particularly significant description of the electrogram. For example, at each time along a segment between points 101 and 102, the waveform has a large negative slope but no point along this segment stands out significantly from any other. On the other hand, points 102, 103, 104 and 105 are neither maximums nor minimums of the electrogram or its derivatives. These points are descriptive of the arbitrary waveform shape. Points 102, 103, 104 and 105 are salient because they mark locations where the signal makes significant turns. The turn at point 101 is very sharp and the turns at points 103 and 105 are less sharp turns and more broad. The turns at points 102 and 104 are even less sharp but rather local. The present subject matter detects points 101, 102, 103, 104 and 105 using a criteria based on the curvature of the signal. According to one embodiment of the present subject matter, signal curvature is illustrated in FIG. 2. In the figure, arbitrary electrogram 120 is shown. At each point along electrogram 120, an osculating circle can be found that fits tangentially with the local portion of the electrogram. Each circle has a radius. The curvature of electrogram 120 at that point is the inverse of that radius so that small circles have large curvatures while large circles have small curvature. FIG. 2 shows these circles at selected points. At point 122, the circle is larger, and thus the curvature is smaller, than at points 121, 123 and 124. At points 121, 123 and 124, the turns are sharper and the curvature is larger. In general, the curvature at point (X, Y) of an arbitrary curve in a two-dimensional space is expressed as: Curvature = ⅆ 2 ⁢ Y ⅆ X 2 [ 1 + { ⅆ Y ⅆ X } 2 ] 3 / 2 . As seen, the curvature is a non-linear combination of both the first and second derivatives of the curve. At those points along the curve where the first derivative is zero (for example, point 101 in FIG. 1), the curvature is equal to the second derivative and at points where the second derivative is zero (for example, any straight section regardless of its slope), the curvature is zero. The present subject matter calculates curvature of an arbitrary input signal on a sample-by-sample basis. Consider the question of dimensionality of the curvature for electrogram signals. When both X and Y have the same dimensions (say length) then curvature has a dimension of 1/length. For an arbitrary signal having a voltage as a function of time V(t), such as an electrocardiogram, the signal is transformed into a time-versus-time signal T(t) according to T(t)=V(t)/U where U is a constant with dimensions of voltage/time. With this transformation, the first and second derivatives of T(t) become ⅆ T ⁡ ( t ) ⅆ t = ⅆ V ⁡ ( t ) ⅆ t � 1 / U which is dimensionless and ⅆ 2 ⁢ T ⁡ ( t ) ⅆ t 2 = ⅆ 2 ⁢ V ⁡ ( t ) ⅆ t 2 � 1 / U which has dimensions of 1/time and thus the curvature has dimensions of 1/time. Curvature is then expressed as: Curvature = ⅆ 2 ⁢ T ⁡ ( t ) ⅆ t 2 [ 1 + { ⅆ T ⁡ ( t ) ⅆ t } 2 ] 3 / 2 = ⅆ 2 ⁢ V ⁡ ( t ) / ⅆ t 2 / U [ 1 + { ⅆ V ⁡ ( t ) / ⅆ t / U } 2 ] 3 / 2 which has dimensions of 1/time and U has a numerical value. Consider next, curvature as a function of signal gain or amplitude of the input signal. Assume arbitrary gain G is applied to the input signal to find a new input signal F(t) wherein F(t)=G�T(t)=V(t)�G/U. The curvature of the gained signal is then: Curvature = ⅆ 2 ⁢ F ⁡ ( t ) ⅆ t 2 [ 1 + { ⅆ F ⁡ ( t ) ⅆ t } 2 ] 3 / 2 = ⅆ 2 ⁢ V ⁡ ( t ) / ⅆ t 2 � G / U [ 1 + { ⅆ V ⁡ ( t ) / ⅆ t � G / U } 2 ] 3 / 2 . The ratio G/U can be expressed as W having dimensions of time/voltage. In one embodiment, the input signal is a voltage sampled with a 12-bit analog-to-digital converter (ADC) having numerical voltage values in the range +/−2048 where each value represents a number of basic amplitude units ΔV, or voltage resolution. In one embodiment, the amplifiers in the present subject matter are adjusted so that the samples from V(t) largely fill this range. Furthermore, it is assumed that the samples are taken at a fixed rate and thus the time is represented by an integer number of samples with each sample representing a time interval ΔT=time resolution=1/(sample rate). FIG. 3 illustrates numerical X-Y space 130 which is denoted by sample numbers on the X-axis and the analog-to-digital conversion value on the Y-axis. Consider square 135 in X-Y space 130 which is 256 steps along the X-axis and 256 steps along the Y-axis and rectangle 140 in voltage-time space 145 that this square represents. Rectangle 140 has a width of 256/(sample rate), in seconds and a height of 256/(voltage resolution), in volts. Depending on the values selected for ΔV and ΔT, this rectangle may or may not be a square in voltage-time space. In one embodiment, W is selected to require that a square in voltage-time space be represented by a square in sample-sample space. Under that condition, the curvature versus time relationships that exist in voltage-time space are preserved in sample-sample space. In FIG. 4, an artificial voltage-time curve is shown that forms a semicircle inside square box 150. Traversing from left to right across box 150 in voltage time space, the curvature of the signal is zero until the semicircle is encountered. The curvature jumps to a constant value, equal to 1/radius of the circle, and again jumps to zero at the end of the semicircle. For a particular value of W, the representation of this signal in sample-sample space 155 also has a constant curvature and for other values of W, the curvature would not be constant in sample-sample space. To maintain this relationship between voltage-time and sample-sample space, W is selected as follows. In voltage-time space, the box T wide by V high is taken to be square. In sample-sample space, the box is T/ΔT time-samples wide and GV/ΔV voltage-samples high and through a transformation, the voltage sample is converted into time-samples using U so that the sample-space square has dimensions of T/ΔT by VG/ΔV/U. For the box to be square in sample-space, and assuming the box (V by T) in voltage-time space is square, then (V/ΔV). G/U=T/ΔT or G/U=W=(T/ΔT)/(V/ΔV). According to one embodiment of the present subject matter, curvature is based on the first and second derivative of the signal. A least square cubic polynomial fit is used to reduce the noise that would otherwise result from using numerical estimates for the derivatives and using non-linear calculations to find curvature. The sampled voltage signal is expressed as V(t)=V(I�ΔT) where t=i�ΔT so that the fit of size N uses 2N+1 voltage samples centered on the time t, thus: V([i−n]�ΔT), . . . V([i−2]�ΔT),V([i−1]�ΔT),V(i�ΔT),V([i+1]�ΔT),V([i+2]�ΔT), . . . V([i+n]�ΔT). This set of N sampled data points is used to make the least-squares cubic fit which is given as Vest [i�ΔT+dt]=Ai+Bi�[dt]+Ci�[dt]2+Di�[dt]3 where Ai, Bi, Ci, and Di are coefficients determined by minimizing the square error for the fit and dt represents a time step away from i�ΔT at which Vest is evaluated. The coefficients in the polynomial are denoted with an i to indicate that they are valid for the point i ΔT. Using the above equations, the curvature on a point to point basis, at the time i�ΔT, becomes Curvature ⁡ ( i � Δ ⁢ ⁢ T ) = ⅆ 2 ⁢ V ⁡ ( t ) ⅆ t 2 � W [ 1 + { ⅆ V ⁡ ( t ) ⅆ t � W } 2 ] 3 / 2 = 2 � Ci � W [ 1 + { Bi � W } 2 ] 3 / 2 . Sample points, however, will not necessarily fall at the times where the signal curvature has a maximum or minimum value. Thus, in one embodiment, the curvature signal is integrated between adjacent sample points using estimates for the first and second derivative of the signal at the sample points. Further simplification yields an expression for average point curvature as: Cavg i = 1 ( B i - B i - 1 ) 2 � { C i - 1 � B 1 2 - C i � B i � B i - 1 - C i + C i - 1 ( B i 2 + 1 ) 1 / 2 + C i � B i - 1 2 - C i - 1 � B i - 1 � B i + C i - C i - 1 ( B i - 1 2 + 1 ) 1 / 2 } , B i ≠ B i - 1 Cavg i = 1 2 � C i + C i - 1 ( B i 2 + 1 ) 3 / 2 , B i = B i - 1 As noted, curvature is computed on a sample-by-sample basis from the input signal. Consider next, a procedure for finding the characteristic points in the signal. Turns in the original signal are reflected as excursions above and below zero in the curvature signal. As suggested by curvature 160 of FIG. 5, each lobe above zero (for example, lobe 165) or below zero (for example, lobe 170) then represents a single turn in the input signal. Curvature lobes of opposite directions reflect opposite turns (leftward or rightward) in the signal. The area under each lobe reflects the total angle included in the turn. A point-by-point method is used to identify the lobes as they occur and to find the area and centroid of each lobe. Curvature values are generated on a sample by sample basis. At each sample time, CRV represents the current curvature value and CRVold represents the previous value that is retained from the previous sample. When the curvature value is zero, the original signal is not turning so that no characteristic points may exist. The value CRV will rarely be exactly equal to zero. In one embodiment, a dead-zone surrounding zero is defined where the calculated curvature may be treated as equal to zero. For times where the curvature is within the zone, the signal is not turning significantly. The zone is defined with a curvature threshold value and extends above and below zero from +CRVthresh to −CRVthresh. In one embodiment, the present subject matter identifies nine cases for considering the value of CRV relative to the threshold and the absence or direction of a lobe. These cases can be described as follows: Case 1: CRV>CRVthresh and not in a Lobe. Here, the current curvature value is above the dead-zone and the curvature signal is not currently in a lobe. Thus, a positive lobe has just started so the positive lobe initialization calculations will follow. Case 2: CRVthresh≧CRV≧−CRVthresh and not in a Lobe. Here, the current curvature values is inside the dead-zone and the curvature signal is not currently in a lobe. Case 3: CRV<−CRVthresh and not in a Lobe. Here, the current curvature value is below the dead-zone and the curvature signal is not currently in a lobe. Thus, a negative lobe has just started so the negative lobe initialization calculations will follow. Case 4: CRV>CRVthresh and in a Positive Lobe. Here, the current curvature value is above the dead-zone and the curvature signal is in a positive lobe. Thus, the positive lobe continuation calculations will follow. Case 5: CRVthresh≧CRV≧−CRVthresh and in a Positive Lobe. Here, the current curvature value is inside the dead-zone and the curvature signal is in a positive lobe. Thus, a positive lobe has just ended so the positive lobe finalization calculations will follow. Case 6: CRV<−CRVthresh and in a Positive Lobe. Here, the current curvature value is below the dead-zone and the curvature signal is currently in a positive lobe. Thus, a positive lobe has just ended and a negative lobe has just started so that both the positive lobe finalization calculations and the negative lobe initialization calculations will follow. Case 7: CRV>CRVthresh and in a Negative Lobe. Here, the current curvature value is above the dead-zone and the curvature signal is in a negative lobe. Thus, a negative lobe has just ended and a positive lobe has just started so that both the negative lobe finalization calculations and the positive lobe initialization calculations will follow. Case 8: CRVthresh≧CRV≧−CRVthresh and in a Negative Lobe. Here, the current curvature value is inside the dead-zone and the curvature signal is in a negative lobe. Thus, a lobe has just ended so the negative lobe finalization calculations will follow. Case 9: CRV<−CRVthresh and in a Negative Lobe. Here, the current curvature value is below the dead-zone and the curvature signal is in a negative lobe. Thus, the negative lobe continuation calculations will follow. In one embodiment, hysteresis is used to aid in identifying curvature lobes. After having started a lobe, one embodiment provides that the curvature value cross a threshold value closer to zero in order for the lobe to finish. Thus, hysteresis introduces another threshold value. Consider next the metrics for characterizing each lobe according to the present subject matter. In one embodiment, those metrics include the total area of the lobe, the time of the lobe area centroid and the value of the original data at the time of the area centroid. In one embodiment, other metrics are used, including, for example, the peak curvature in the lobe, the time of the peak curvature, and the times of the lobe start and lobe finish. FIG. 6 shows an example of curvature lobe 185 as a series of calculated curvatures at each sample time. Tick marks 180 along the X axis represent the actual samples and thus are separated by ΔT. Zero curvature is shown as the X axis. The threshold curvature values, +CRVthresh 190 and −CRVthresh 195 are shown as horizontal lines above and below the X-axis. Curvature points 200-245 are shown as small solid circles. As shown in the figure, initial curvature values at curvature points 200 and 205 are within the dead-zone of the threshold curvature values and thus, no lobe is yet established. Curvature point 210 is above the threshold and corresponds to Case 1 described above. The magnitude of initial area 250 is calculated as soon as the lobe is started according to case 1 described above. Upon determining curvature point 215, a contribution to the magnitude of main area 255 is calculated according to case 4 described above. In addition, the magnitude of main area 255 is increased with the determination of curvature points 220, 225, and 230. Upon determining curvature point 235 lying below +CRVthresh 190, the magnitude of final area 260 is calculated for the region below curvature lobe 185 and between curvature point 230 and the intersection with +CRVthresh 190. Curvature points 235, 240 and 245 lie in the dead-zone and do not contribute to an area calculation. The area of curvature lobe 185 is calculated to include the sum of initial area 250, main area 255 and final area 260. In one embodiment, a value M of a counter is maintained by a processor to monitor sample-by-sample development of a lobe. When the �start lobe� calculations are performed, the value for M is reset to zero and incremented with each subsequent point that remains outside the dead-zone. Values for M are illustrated at the different curvature points in FIG. 6. To find the area under the curvature lobe, the value of M is set to zero and the initial area of a curvature lobe is computed as initial area ═(Ci+CRVthresh)�(Ci−CRVthresh)/(Ci−Ci−1) when the lobe is started. For each successive curvature value, the value of M is incremented and the additional area contribution is computed as additional area=−(M−1)�Ci+M�Ci−1. When the lobe ends, the value of M is not incremented and the final area contribution is computed as final area=M�Ci−1+(Ci+CRVthresh)�(Ci−CRVthresh)/(Ci−Ci−1). The sum of the initial, final, and all additional areas may then be multiplied by ΔT/2 to find the area under the curvature lobe. To find the first moment of the area under the curvature lobe, a similar approach is used. When the initial area of the curvature lobe is computed, the initial moment of the area is also computed as initial moment=−{C1+2 CRVthresh}�γ2 where γ=(CRVthresh−Ci−1)/(Ci−Ci−1). For each successive curvature value in the lobe, an additional moment contribution is computed using the same M values as for the area computations. This additional moment contribution is computed as additional moment={Ci�(3M−1)+Ci−1�(3M−2)}. When the lobe ends, a final moment contribution is computed at the same time that the final area is computed. The final moment is computed as final moment=[CRVthresh�{3M+2γ}+Ci−1�{3M+γ}]�γ. The sum of the initial, final, and all additional moments may then be multiplied by ΔT2/6 to find the first moment of the area under the curvature lobe. The time of the centroid of the curvature lobe area is found by dividing the first moment of the curvature lobe area by the curvature lobe area as time=first moment of area/area. This time is with respect to the time of the curvature point that started the lobe. For both the area and the first moment of the area, the calculations are constructed in such a way that the contribution of each curvature sample may be summed into a total area or total first moment of the area as the samples are collected. Thus, for all calculations, the factors include the present and previous curvature values, the threshold values, and the counter M. In this manner the area and the time of the centroid of the area are generated as soon as the lobe is ended. In one embodiment, the present subject matter identifies characteristic points generated from point-by point processing of an input signal. In one embodiment, the characteristic points in the signal are detected and saved into a buffer. In one embodiment, each characteristic point is a set of values including the time of the characteristic point, the value of the input signal at that time, and a value describing the direction and extent of curve in the signal that produced the characteristic point. Consider next a method of extracting characteristic points. In one embodiment, characteristic points of an electrocardiogram are extracted using a sampling at 400 Hz. In one embodiment, sampling is performed at 200 Hz. The sampled data is filtered using a 5-point (400 Hz) or 3-point (200 Hz) running average filter and a five least squares regression average-point curvature method to select characteristic points relating to the QRS complex. For detecting curvatures associated with slower morphologies, sampling is at a slower rate, such as, for example, 50 Hz. An example of a wave having slower morphologies would be the T-wave in an electrocardiogram. In one embodiment, multiple sampling rates are used for characteristic point extraction. In one embodiment, dual-rate sampling is performed with sampling at 200 Hz providing fast characteristic points and sampling at 50 Hz providing slow characteristic points and a 3-point running average filter is used. Consider an example of dual-rate sampling using 200 Hz, yielding fast characteristic points, and 50 Hz, yielding slow characteristic points, with 5-point least squares regression size and 3-point running average filtering at both rates. In one embodiment, curvature is found by using 5-point least squares regression filtering. The coefficients for finding the linear (Bi) and parabolic (Ci) fit coefficients in the cubic least squares regression to the data (Di−2 to Di+2) at the point i are as follows: Linear Parabolic P−2 = (1/12) * Rate Q−2 = (10/70) * Rate2 P−1 = (−8/12) * Rate Q−1 = (−5/70) * Rate2 P0 = 0 Q0 = (−10/70) * Rate2 P1 = (8/12) * Rate Q1 = (−5/70) * Rate2 P2 = (−1/12) * Rate Q2 = (10/70) * Rate2 where Rate is the sampling rate in sample/sec, Bi is the sum of the products of these P least squares regression coefficients multiplied by the 5 corresponding data points centered on i (Di−2 to Di+2) and Ci is the sum using the Q least squares regression coefficients. Curvature is then computed as: Curvature = 2 � Ci � W [ 1 + { Bi � W } 2 ] 3 / 2 . where W is a constant. Since W appears in conjunction with fit coefficients Ci or Bi, the value can be incorporated into the computations as a data signal gain such that D′(i)=W�D(i). Then, the curvature expression becomes Curvature = 2 � C ′ ⁢ i [ 1 + { B ′ ⁢ ⁢ i } 2 ] 3 / 2 . where B′i and C′i are found using the D′ data points rather than the D data points with the least squares regression coefficients. The expression for curvature may then be rewritten as: Curv ′ = Curvature � Gn = C ′ ⁢ i � 2 � Gn [ 1 + { B ′ ⁢ i } 2 ] 3 / 2 = C ″ ⁢ i [ 1 + { B ′ ⁢ i } 2 ] 3 / 2 . where Gn is an arbitrary value which is incorporated (with 2) into C″. If the curvature thresholds used for detection of characteristic points is adjusted accordingly, it does not matter whether point-by-point curvature or Gn times the point-by-point curvature is calculated. Incorporating the values 2. Gn into C″i can be accomplished by changing the least squares regression coefficients Q−2 through Q2 into new least squares regression coefficients (Q′−2 through Q′2) by multiplication with 2Gn. If Gn is selected as 7/(6 Rate) and the term Fn=Rate/12 is incorporated as additional data signal gain, then the least squares regression coefficients become: Linear Parabolic P″−2 = 1 Q″−2 = 4 P″−1 = −8 Q″−1 = −2 P″0 = 0 Q″0 = −4 P″1 = 8 Q″1 = −2 P″2 = −1 Q″2 = 4 with D″(i)=2�W�Fn�D(i); and with Ci″=Q″−2�D″(i−2)+Q″−1�D″(i−1)+Q″0�D″(i)+Q″+1�D″(i+1)+Q″+2�D″(i+2); and with Bi″=P″−2�D″(i−2)+P″−1�D″(i−1)+P″0�D″(i)+P″−1�D″(i+1)+P″+2�D″(i+2). Note that the coefficients are all powers of two (either 0, 1, 2, 4 or 8), thus simplifying hardware or firmware implementation of the present subject matter. When using two sample rates for determining characteristic points, the computed curvatures will be different when computed at different rates. Thus, two threshold levels and parallel sets of computations are used. Also, the running average filtering is different with the fast rate filtering using five consecutive points while the slow rate filtering uses every fourth point spaced over sixteen points. In one embodiment, the linearity of the least squares regression operation is used. The running average filtering operation are performed at the fit coefficient level (i.e. the Bs and Cs) rather than the data level. In this embodiment, two filtering operations are performed (one for Bs, one for Cs) at each rate. In one embodiment, the fast and the slow running average filtering operations are performed in parallel. In one embodiment, the following method is used to select the values for the characteristic points. Starting at the time of one sample, the sensing hardware and software of the present subject matter begins acquiring the next sample so that the actual sample reflects the nature of the signal between the last sample and the current sample. At the actual time of the sample, the value of the sample may be ascribed to the time half-way between the current sample and the previous sample. Samples at the slow sample rate apply to the signal two fast sample steps earlier than the actual sample time. In one embodiment, a circular data buffer is used. Data is acquired at the fast sample rate and used to fill a circular data buffer. Once the timing of a fast or slow characteristic point is determined, the data value for that characteristic point is found from the data stored in the circular buffer. Thus, the data buffer is sized so that the requisite data is still available in the buffer. In one embodiment, the buffer is sized to hold about 500 millisecond of data or 256 data points. In one embodiment, the circular buffer is implemented as a memory array with an index pointer. In one embodiment, the index pointer includes a binary counter and the buffer size is a power of two. In one embodiment, running average filtering (RAF) is performed on the input data. In various embodiments, the filtering is provided by a circular buffer or a shift register set. The values in the circular data buffer reflect the fast running average filtering. In one embodiment, a hybrid approach is used where the fast running average filtering is performed and then the data is placed into a circular buffer. In one embodiment, running average filtering reduces curvature noise relative to the signal content of fast curvature signals. An electrocardiogram signal typically takes relatively large excursions away from zero curvature at the times of fast turns in the signal. However, when the fast turns are less severe, the curvature signal does not move as far away from zero and curvature noise can prematurely end the curve lobe. The result is that one small curvature lobe is broken into two or more even smaller lobes. Thus, in one embodiment, the curvature noise relative to the signal content is reduced, for fast curvature signals, by running average filtering. Filtering of the input signal does not achieve the same effect as filtering the actual curvature signals. In one embodiment, 3-point running average filtering is applied to the fast curvature values. In one embodiment, fast curvature values are computed as average point curvature and 3-point running average filtering of the curvatures so that the fast curvature value computed when the current sample is taken applies to a time in the input signal that is five time steps earlier than the current sample. In one embodiment, slow curvature values are computed at � the fast sample rate and are computed as average-point curvatures so that when the every fourth fast sample is taken, slow curvature is computed and it applies at a time in the input signal that is four slow (sixteen fast) time steps earlier than the current sample. In one embodiment, the detection of a curvature lobe and characteristic points entails both fast and slow characteristic point detection performed in parallel. In one embodiment, separate curvature thresholds and curvature area thresholds are used for the fast and slow operations. In one embodiment, a curvature lobe is ended when the curvature signal crosses the same threshold used to start the lobe but in the opposite direction of the crossing that started the lobe. In one embodiment, a hysteresis is used so that a curvature lobe is ended when the curvature signal crosses a threshold that is smaller (i.e. closer to zero) than the threshold used to start the lobe but in the opposite direction of the crowing that started the lobe. In one embodiment, a curvature lobe is ended when the curvature signal crosses zero as the hysteresis value. In one embodiment, the value of W is selected according to the following procedure. Select an approximate range for W from the following analysis. At a 200 Hz sampling rate, the QRS takes approximately five samples. The signal at the peak is approximated by 128. If the QRS were to be approximated (in curvature space) as a semicircle arching from zero to the peak then back to zero in five points, then the radius of that semicircle would be 0.01 sec and the peak would have a value of 0.01. Thus, the value of W would be the one that, when multiplied, the peak (128) would have the value of 0.01, i.e. W=0.01/128=0.000078. In one embodiment, W=0.000122=1/8192 which is a power of two. Consider selection of curvature threshold values for characteristic point detection. Thresholds, in one embodiment, reduce or eliminate the noise characteristic points and computational burden. This noise is the natural results of the curvature signal hovering around zero (or some other value) when the raw signal does not otherwise have characteristic turnings. In one embodiment, for a curvature lobe to be detected, the point-wise curvature falls outside of a dead-band formed by the threshold values on either side of zero. Reducing this threshold towards zero increases the number of curvature lobes that are detected and increases the computational burden. In one embodiment, a threshold value is selected by using approximately a 1 minute epoch of the input signal to make a histogram of the fast curvature values computed at each sample time. The threshold value is selected as one which corresponds to 20% of the peak. This value is then used as the threshold for both the fast curvature and slow curvature feature selection process. In one embodiment, the noise lobes are removed by requiring that a detected lobe must exceed a critical area limit. The noise lobes have generally small areas while the real lobes associated with characteristic turns in the signal usually have substantial areas. In one embodiment, different values are used for the fast curvature and slow curvature area thresholds. Using the number of beats occurring in the one minute epoch used to set the gain and curvature thresholds, select a desired number of fast and slow characteristic points to find for these beats. For example, in one embodiment, five fast characteristic points per beat and eight slow characteristic point per beat are used as targets. The area thresholds are then adjusted until these target numbers of characteristic points are found. In one embodiment, a lower area limit of 0.1 is used. In one embodiment, a template is established for classifying beats. For example, a characteristic point template includes a rectangular box covering a time (relative to a fiducial characteristic point) and signal amplitude. The template also includes a curvature area sign. Rate Estimation Heart rate, expressed in units of beats per minute, can be determined without relying on detection of individual beats. Mathematically, the heart rate is determined by the number of characteristic points per minute divided by the number characteristic points per beat. The calculation of the number of characteristic points per minute is straightforward. An autocorrelation function is evaluated to determine the number characteristic points per beat. In one embodiment, the number of characteristic points per beat is calculated by performing the autocorrelation function in the time domain. In one embodiment, the number of characteristic points per beat is calculated by performing the autocorrelation function in the characteristic point domain. In the series, or stream, of characteristic points describing the input signal, let the individual characteristic points be denoted as CP1, CP2, CP3, . . . , CPn. Each characteristic point has a time value, an area (turn area) value and a voltage value, and for the ith characteristic point, these are denoted as CPi T, CPi A and CPi V, respectively. The values for the autocorrelations range between +1 and −1. The shift index (k) for the autocorrelations denotes the shift in the characteristic point domain. For example, at k=0, there is no shift and at k=1, the characteristic points are shifted by one. In one embodiment, the autocorrelation of characteristic points in the characteristic point domain entails, for each value of the shift index k, multiplying like metrics of corresponding characteristic points and summing to produce a value. For example, when k=3, the value of the series includes the sum of the product of CP1V and CP4V, CP2V and CP5V, CP3V and CP6V and so on. The results are graphically depicted in the autocorrelation plot of FIG. 7. In the figure, the vertical axis is an autocorrelation coefficient based on an autocovariance function divided by a variance function and the horizontal axis is the shift index k. The plot in the figure has a peak at a shift index of five which indicates that on average, each beat is represented with five characteristic points. Using exemplary data collected over an epoch having a duration of 6.288 seconds, a total of 80 characteristic points were generated for a rate of 12.722 characteristic points per second. With five characteristic points per beat, the heart rate is calculated as 152.67 beats per minute. In one embodiment, an autocorrelation is performed using the time differences between successive characteristic points. For example the difference in time for adjacent characteristic points can be expressed as CPi DT=CPi T−CPi−1 T. In addition, the difference in area for adjacent characteristic points can be expressed as CPiDA=CPi A−CPi−1 A and the difference in voltage can be expressed as CPi DV=CPi V−CPi−1 V. In various embodiments, the difference functions CPi DT, CPi DA and CPi DV are autocorrelated to determine the number of characteristic points per beat. In various embodiments, CPiA, CPiV, CPiDT, CPiDA, and CPiDV are autocorrelated, either alone or in combination (for example, the product CPiV�CPiDT−CPiA), to determine the number of characteristic points per beat. By way of example, an autocorrelation of the characteristic point voltage values in the characteristic point domain can be expressed as: A V ⁡ ( k ) = ∑ i = 1 i = N ⁢ ( CP i ⁢ ⁢ V - CP iV ⁢ ⁢ AVG ) ⁢ ( CP i + k ⁢ ⁢ V - CP iV ⁢ ⁢ AVG ) / ∑ i = 1 i = N ⁢ ( CP i ⁢ ⁢ V - CP iV ⁢ ⁢ AVG ) 2 where N is the number of characteristic points, CPiV AVG is the average value of the N characteristic point values and k is the index in the characteristic point domain. In one embodiment, heart rate is found from the autocorrelation of characteristic points in the time domain. In one embodiment, the cardiac signal is reconstructed for autocorrelation from the series of characteristic points. In one embodiment, the reconstruction produces evenly spaced samples for the autocorrelation. In one embodiment, the reconstruction and autocorrelation are performed in closed form using the characteristic point voltages and times from the series of characteristic points. In one embodiment, only timing information for the characteristic points in the cardiac signal are used for the autocorrelation. In one embodiment, a time difference between successive characteristic point times in the series of characteristic points versus the time of each characteristic point in the series forms a time difference function. In one embodiment, the time difference function is constructed to have evenly spaced samples for autocorrelation. In one embodiment, the autocorrelation of the time difference function is performed in closed form using only the characteristic point times from the series of characteristic points. In general, the first peak of the autocorrelation is equal to the reciprocal of the heart rate. FIG. 8A illustrates a selected epoch of cardiac signal 300 having characteristic points 305 marked thereon. The epoch includes five heart beats, each having between four and six characteristic points. FIG. 8B illustrates the amplitude of the signal, at each characteristic point, as a function of time. FIGS. 8C and 8D illustrate the time differences between successive characteristic points in the series of characteristic points. When plotted against the times of the characteristic points, these form a time difference function which may then be autocorrelated. In FIG. 8C, the time difference 310 between adjacent characteristic points 305A and 305B is transformed to an amplitude denoted by the horizontal line 315. Thus, the time difference function between points 305A and 305B is equal to this line segment 315. FIG. 8D illustrates the time differences for all characteristic points in the epoch. FIG. 8E illustrates the time difference after having removed the characteristic points. The waveform shown in FIG. 8E is depicted as an autocorrelation plot in FIG. 8F which shows that the first peak occurs at time 0.360 seconds which corresponds to a beat rate of 166 bpm. In one embodiment, heart rate is found from the estimated number of characteristic points per beat and the times of the characteristic points in the series of characteristic points. In one embodiment, an average interval representing one beat is found and the interval is the reciprocal of the heart rate for the rhythm. For example, if the estimate for the number of characteristic points per beat is 5, then the average time interval between each pair of characteristic points that are 5 characteristic points apart is used to find an average time interval for the rhythm as follows: Average ⁢ ⁢ Interval = ∑ i = Kp i = N ⁢ ( CP iT - CP i - Kp ⁢ ⁢ T ) where Kp is the estimated number of characteristic points per beat. Other autocorrelations are also contemplated. For example, in various embodiments, the characteristic point voltage values and area values are autocorrelated. Sub-harmonics in the autocorrelation function can be used to determine the heart rate. The sub-harmonic frequencies are multiples of the fundamental frequency of the heart rate. For example, if the underlying rhythm is a monomorphic ventricular tachycardia (MVT), then the same basic beat shape is repeated at regular intervals. In the characteristic point domain, this means that the autocorrelation plot will have multiple peaks. For example, an autocorrelation plot for a MVT rhythm exhibits a peak at a shift index of 5 as well as the sub-harmonics corresponding to the shift index at 10, 15, and 20. In one embodiment, the sub-harmonics are used to find the rate. In plot 330 of FIG. 9, exemplary autocorrelations for DT are illustrated. The autocorrelations in the figure are derived from a particular cardiac epoch. In plot 330, it is not clear if first peak 320 for the corresponding atrial cardiac epoch is at k=5 or k=6. The location of second peak 325, derived from the first sub-harmonic, can resolve the ambiguity. In one embodiment, a method to process the autocorrelation provides an improved resolution to find the peaks by incorporating sub-harmonics. As in FIG. 9, the autocorrelation has values at k=1, k=2, etc. Initially, additional points are added to the autocorrelation by adding points at � step resolution. For instance, in FIG. 9, additional points are added at 2.25, 2.5, 2.75, 3.25, 3.5, 3.75, and so forth. The autocorrelation values for these additional points are found by interpolating between the original points. Next, a sub-harmonic autocorrelation is found by averaging the values at harmonics. For example, at k=2, the value for the sub-harmonic autocorrelation is found by averaging the points at 2, 4, 6 etc. of the autocorrelation. At the point k=2.25, the value for the sub-harmonic autocorrelation is found by averaging the points at k=2.25, 4.5, 6.75, etc. of the autocorrelation. FIG. 10 illustrates an example of the sub-harmonic autocorrelation from FIG. 9. In FIG. 10, the peak is now more clearly at k=5.5 which is between the steps k=5 and k=6 of the original correlation. In one embodiment, the averages of the first three sub-harmonics are used in to form the sub-harmonic autocorrelation. In one embodiment, the peak of the sub-harmonic autocorrelation is used to estimate the rate of the rhythm. Autocorrelation in the time domain can be used for identifying periodicity in a signal. Periodicity can also be identified by performing the time domain autocorrelation of the voltage signal using the characteristic points voltage values. In one embodiment, the time domain signal is represented by straight line segments connecting consecutive characteristic points. The line segment representation of the signal is then autocorrelated using integration of line segments. The endpoints of the line segments are the characteristic points, and thus, the calculations are simplified. For example, consider a signal described by N characteristic points, where CP1 is the oldest characteristic point, CP2 is the next oldest and so on. A closed form autocorrelation for a given time-lag Q is then computed by sliding each line segment by Q and then integrating (for that line segment) the product of that line segment and the portion of the signal with which it overlaps. The values are obtained for all line segments to find the autocorrelation for the time-lag Q. The same operation is then performed for other values of time-lag to find the time domain autocorrelation (autocorrelation vs. time-lag). The heart rate can also be determined by autocorrelating a function of the characteristic points in the time domain. For example, in one embodiment, a closed form autocorrelation is calculated, as shown in FIG. 11. Consider a sequence of characteristic point time differences CPi,T where there are N characteristic points. Time difference function 415A is established and has a value, at each characteristic point, equal to the time interval between CPi and CPi+1 as shown with the heavy black line and solid black circles in chart 405. Time function 415A is shifted in time by Q as represented as 415B in chart 410. Each point along the shifted function 415B now falls onto some point of the un-shifted function 415A. For example, point 420B (derived from shifted point 420A) on chart 410, is projected onto point 420C on chart 405. Similarly, the values of the un-shifted function projects onto the time-shifted function. For example, point 425A of chart 405 projects to point 425B of chart 410. The autocorrelation of this function in the time domain is found by determining the area under the product of the curves which is equivalent to adding the area contribution for each portion between the line vertical lines shown in FIG. 11. Next, consider the shifted curve 415B on chart 410. Each segment between the vertical lines is bounded in time by either a shifted or un-shifted characteristic point. Further, these bounding endpoints have a value equal to either the shifted value or the un-shifted value respectively. Each segment also aligns with a second set of values (shown in chart 405) as either un-shifted (solid circles) or shifted (open circles) values. The values for the open circles (chart 405) or open circles (chart 410) are found by shifting the characteristic points either forward (chart 405) or backwards (chart 410) in time. In one embodiment, the calculation of area is found from the shifted line segments, and the corresponding un-shifted line segments. For example, the line segment between 420B and the next point on the shifted function 415B falls entirely on the same line segment after point 430 of the un-shifted function 415A. The values for 420B and 430 are known. Because 415B is a time difference function, the duration after 420B until the next point is also the value of 420B. Thus, the contribution to the autocorrelation integral for this line segment is equal to the value of point 420B squared times the value of the point 430. The autocorrelation is the sum of all line segments. The time domain autocorrelation of the characteristic points time difference function can be used for estimating rate. Various methods are used to estimate the rate. In some methods, the autocorrelation between 0.15 sec and 0.6 seconds time lag is fit with a straight line via least squares regression and this trend-line is removed from the autocorrelation data in this same range. In one method, a point-by-point scan of the de-trended autocorrelation is performed to find all local peaks. Each local peak, is only then considered if it is faster than the first sub-harmonic of the first such peak. For example, if the first peak in the autocorrelation represents a rate of 300 bpm, then peaks less than or equal to 150 bpm are not considered. All of the peaks remaining in consideration have a specific lag time and an autocorrelation value. In one embodiment, the autocorrelation values are used to weight the rates associated with those peaks to find an average rate for the rhythm. In one method, the value of the de-trended autocorrelation function in the range from 0.15 to 0.6 seconds time lag and above zero are used to find an average time lag as SUM (corr*lag)/sum(corr). The average time lag is used to find the rate. In this method, the product of each de-trended autocorrelation value that is between 0.15 seconds and 0.6 seconds and greater than zero is multiplied by the corresponding time-lag and summed to find SUM(corr*lag). Also, the de-trended autocorrelation values that meet these criteria are themselves summed to find SUM(corr). In one embodiment, the average autocorrelation value associated with the peak is used to find the rate. Other methods are also contemplated for finding the heart rate. Rhythm Discrimination In one embodiment, analysis of characteristic points is used to discriminate among different rhythm types. Rhythm types are associated with a relationship between an atrial cardiac signal and a ventricular cardiac signal. Thus, to discriminate among different types, an atrial input signal and a ventricular input signal are used to generate a series of atrial characteristic points and a series of ventricular characteristic points. In various embodiments, the rhythm can be discriminated by estimating the variation in characteristic point timing and cross-correlations in the characteristic domain. In one embodiment, the relative timing of characteristic points in the atrial and ventricular rate channels is used to discriminate. In one embodiment, the individual characteristic points in the atrial channel are compared with those in the ventricular channel. In one embodiment, a time window is established in advance of each ventricular characteristic point. For an appropriately sized window, a characteristic point in the ventricular complex should have one or more atrial characteristic points within the window. Each ventricular characteristic point is considered individually and the number of atrial characteristic points that are contained in such a window is determined. In one embodiment, a constraint requires that each atrial characteristic point is counted only once. This count is referred to as a forward count and is denoted A:V and is equal to the number of atrial characteristic points which fall in a time window of one or more ventricular characteristic point. The dimensions of the time window are selected to yield accurate rhythm discrimination results. In one embodiment, the time window is located between 300 milliseconds and 100 milliseconds before a ventricular characteristic point. In one embodiment, the time window is located between 250 milliseconds and 150 milliseconds before a ventricular characteristic point. Other dimensions are also contemplated. In one embodiment, the time window dimensions are selectable based on manual inputs or automatically based on a measured or calculated parameter. In one embodiment, a window dimension is remotely selected and communicated to an implantable device. Consider the resulting count, for a simple conducted rhythm where each atrial depolarization corresponds with a ventricular depolarization after some delay. In such a case, most of the atrial characteristic points will be counted so that the ratio of counted atrial characteristic points to the total number of atrial characteristic points (denoted as Acnt) will be nearly unity. In one embodiment, far-field sensing of ventricular depolarizations on the atrial channel may cause additional characteristic points in the atrial channel but these additional characteristic points would generally be simultaneous or later than the ventricular characteristic points so would not fall inside the windows. If the heart is beating in atrial fibrillation (A-fib), rather than a one-to-one conducted rhythm, then the total atrial characteristic points count will be larger. Also, a smaller percentage of atrial characteristic points, will fall into a ventricular characteristic point window since not all atrial complexes would be conducted and lead to a ventricular complex. Thus, the ratio should become smaller. If the heart is beating in MVT, polymorphic ventricular tachycardia (PVT) or ventricular fibrillation (VF), then the total number of atrial characteristic points would not increase but a smaller number of characteristic points would be associated with a ventricular characteristic point time window because of the loss of A-V synchrony. On the other hand, more ventricular characteristic points would be present to increase the A:V number. Accordingly, the ratio is unlikely to be greatly affected. Next, consider the same timings from the point of view of the ventricular characteristic points. Each ventricular characteristic point is analyzed and a count is made of the number of ventricular characteristic points that have at least one atrial characteristic point within a time window for the ventricular characteristic point. This count is referred to as a backward count and is denoted V:A and is equal to the number of ventricular characteristic points which have one or more atrial characteristic points in the advance time window. For a one-to-one conducted rhythm, most of the ventricular characteristic points will meet the criteria so that the ratio of counted ventricular characteristic points to the total number of ventricular characteristic points (Vcnt) will be nearly unity. If the heart rhythm was actually A-fib instead of a one-to-one conducted rhythm, then the total number of ventricular characteristic points would be greater reflecting an elevated rate. However, since each ventricular complex would be from a conducted atrial complex, the percentage of ventricular characteristic points that are associated with atrial characteristic points would remain about the same even though there are more ventricular characteristic points. If the actual rhythm was an MVT or PVT/VF, then the total number of ventricular characteristic points would increase and a smaller number would be associated with an atrial characteristic point in their time window. Accordingly, the ratio would also be reduced. The ventricular and atrial characteristic points are found over the selected epoch. If the rhythm is one-to-one conduction, then there is the same number of beats in each channel. Without knowing the number of beats in the epoch, an estimate can be made for the number of atrial characteristic points per beat relative to the number of ventricular characteristic points per beat, denoted here as Acnt/Vcnt. If the rhythm is one-to-one, then the percentage of atrial characteristic points associated with ventricular characteristic points should approximate the percentage of ventricular characteristic points associated with atrial characteristic points, however, the number of characteristic points per beat may be different in the two channels. In various embodiments, the value V:A/Vcnt or the value [(A:V/Acnt)/(V:A/Vcnt]/[Acnt/Vcnt], which can be rewritten as (Vcnt/Acnt)2/(A:V*V/A), is used to discriminate among rhythms. In one embodiment, a plot is generated to graphically illustrate the relationship between atrial characteristic points and ventricular characteristic points. In FIG. 12, a plot is shown for approximately 500 rhythms that had either supra-ventricular origin (SVT) or ventricular origin (VT). The X, or horizontal axis is 100*(V:A/Vcnt) and the Y, or vertical axis is 100*(A:V*Vcnt/Acnt2). The different regions of the X-Y plane correspond to the different rhythm types. For example, the SVT rhythms fall generally in the range below about 150 on the Y-axis and between 50 to 100 on the X-axis. In contrast, VT rhythms generally fall much closer to zero on the X-axis reflecting the expected strong decrease of V:A/Vcnt. Furthermore, the VT rhythms fall higher on the Y-axis since Vcnt is generally higher. In one embodiment, an X and Y value for a rhythm is found by processing the timings of the atrial and ventricular characteristic points according to the present subject matter. In one embodiment, the position of the X and Y values on the plot is used for classifying the rhythm. In one embodiment, the classification is between either SVT or VT. In one embodiment, the classification is made by comparing the X-Y point with fixed boundaries on the plot. In one embodiment, the boundaries are comprised of one or more straight line segments. In one embodiment, the rhythm is classified as SVT if the X-Y point falls on one side of the boundary and is classified as VT if it falls on the opposite side of the boundary. FIG. 13 illustrates exemplary method 450 according to one embodiment of the present subject matter. At 455, an atrial series of characteristic points are generated from an atrial channel and a ventricular series of characteristic points are generated from a ventricular channel. The total number of atrial characteristic points is denoted as Acnt and the total number of ventricular characteristic points is denoted as Vcnt. At 460, a time window is established in advance of each characteristic point in the ventricular channel. At 465, a backward count is generated by counting, in a single pass through the ventricular series of characteristic points, all ventricular characteristic points that have at least one atrial characteristic point in the window. At 470, a forward count is generated by counting, in a single pass through the ventricular series of characteristic points, all atrial characteristic points that fall into at least one window associated with a ventricular characteristic point. In one embodiment, these counts may be performed in the same single pass through the ventricular characteristic points. At 475, X and Y values are generated based on the forward count, the backward count, Acnt and Vcnt In one embodiment, the X-value indicates the backward count expressed as a percentage of all ventricular characteristic points. In one embodiment, the Y-value indicates the ratio of forward count to backward count. In one embodiment, the Y-value indicates (A:V)*Vcnt/Acnt 2. At 480, the X-Y point is classified to discern a rhythm type. Classification of the data, in one embodiment, includes selecting a separation line or separation contour in the X-Y plane. Data falling on one side of the separation line or contour denotes a particular rhythm type while data on another side denotes a different rhythm type. In one embodiment, a separation line or contour is selected according to methods known as Support Vector Method (SVM) or support vector classification (SVC) (see V. Vapnik. The Nature of Statistical Learning Theory. Springer-Verlag, New York, 1995, and others). Factors to consider in placement of a separation line include determining the placement of the line and a slope. Considerations include the proximity of the data points and the a width of a separation region between different portions of the X-Y plane. In one embodiment, the X-Y plane is regionalized in a manner that maximizes the separation of data points. Other embodiments are also contemplated. For example, in one embodiment, a window is established after each atrial characteristic point and counts are established based on the relative timing of atrial characteristic points and ventricular characteristic points. Other metrics are also contemplated for discriminating among rhythm types. For example, in one embodiment, discrimination is based on the percentage of atrial characteristic points that are not associated with a ventricular characteristic points or a value derived from ventricular characteristic points. Exemplary Device In one embodiment, the present subject matter includes circuitry, hardware and software for implantation in a body. In one embodiment, the present subject matter is adapted for use external to a body. FIG. 14 includes a diagram of one embodiment of portions of cardiac rhythm management system 500 according to the present subject matter. As illustrated, system 500 includes unit 503, lead 510 and lead 540, each of which are coupled to heart 505. In various embodiments, unit 503 includes an implantable unit and operates as a pacemaker, a CRT device, a cardioverter/defibrillator, a pacer/defibrillator and a drug delivery device. In the figure, unit 503 senses cardiac activities from heart 505 and delivers therapy to heart 505 according to programming and circuitry of unit 503. Leads 510 and 540 provide electrical connections between unit 503 and heart 505 and each includes an electrode adapted to be disposed in or about heart 505. Lead 510 is coupled to input circuit 515 and provides an electrical signal sensed from cardiac activity of heart 505. Lead 540 provides therapy to heart 505 as a function of a signal received from therapy circuit 535. In one embodiment, unit 503 includes input circuit 515, controller 520, telemetry circuit 525, memory 530 and therapy circuit 535. Input circuit 515 is coupled to lead 510 and receives an analog signal based on cardiac activity of heart 505. In one embodiment, input circuit 515 includes an analog-to-digital converter. In one embodiment, controller 520 includes a processor and programming to implement a method as described herein. In one embodiment, controller 520 includes a circuit to control therapy circuit 535 and telemetry circuit 525. Memory 530 is coupled to controller 520 and provides data storage. In one embodiment, the input signal is sampled and characteristic points are generated substantially in real-time. In one embodiment, characteristic points are generated based on stored sample data derived from the input signal. In one embodiment, programming executing on a processor of controller 520 is stored in memory 530. In one embodiment, controller 520 determines what therapy or electrical stimulation is to be delivered by therapy circuit 535 to heart 505 using lead 540. In one embodiment, controller 520 determines what data is to be communicated using telemetry circuit 525. Telemetry circuit 525, in various embodiments is adapted to provide wired or wireless telemetry. In one embodiment, controller 520 executes programming to determine curvature of an input signal and generates characteristic points. In one embodiment, controller 520 includes a comparator which generates an output based on a comparison of an input signal and a reference signal. Exemplary comparisons include determining if the lobe is making a positive or negative excursion from a baseline. In one embodiment, an exemplary comparison includes determining if the curvature series lobe is greater or less than a dead-zone threshold. In one embodiment, an exemplary comparison includes comparing the curvature signal with a hysteresis value of a threshold. In the figure, two leads are shown coupled to heart 505. In one embodiment, a single lead provides both sensing and therapy for heart 505. System 500, in one embodiment, is adapted to determine a heart rate according to the methods described herein. The heart rate is then stored in memory 530. In one embodiment, the heart rate is used to determine appropriate therapy or to confirm application of a particular therapy. In one embodiment, a first heart rate is determined by a method described herein and a second heart rate is determined by an auxiliary method and controller 520 reconciles the first heart rate and second heart rate to determine a third heart rate. In one embodiment, the heart rate is communicated to a remote programmer by telemetry circuit 525. System 500, in one embodiment, is adapted to classify a rhythm according to the methods described herein. The rhythm classification is then stored in memory 530. In one embodiment, the classification is used to determine appropriate therapy or to confirm application of a particular therapy. In one embodiment, a first classification is determined by a method described herein and a second classification for the same epoch is determined by an auxiliary method and controller 520 reconciles the first classification and second classification to determine a third classification. In one embodiment, the classification is communicated to a remote programmer by telemetry circuit 525. ALTERNATIVE EMBODIMENTS Characteristic points can be described in terms of a size corresponding to the area of a lobe in the curvature series. In one embodiment, before calculating a heart rate or classifying a rhythm type according to a method described herein, the series of characteristic points are filtered based on their size. In one embodiment, this entails selecting only those characteristic points having a size greater than a predetermined value for use in determining a heart rate or rhythm classification. In one embodiment, other filtering criteria is applied to the series of characteristic points before determining a rate or rhythm. In one embodiment, a rhythm is classified based on a straight line in the X-Y plane. In one embodiment, an irregular shaped region is described in the x-y plane and the cluster of data points in the plane relative to the region provides the basis for discrimination. In one embodiment, probability functions are calculated for the data points and serve as discrimination criteria. In one embodiment, other discrimination techniques are used in conjunction with those described herein and a processor resolves any differences and makes a classification selection. In one embodiment, a method described herein is executed by hardwired circuitry. The circuitry may be analog or digital and include circuit elements such as operational amplifiers or logic gates. CONCLUSION The above description is intended to be illustrative, and not restrictive. Many other embodiments will be apparent to those of skill in the art upon reviewing the above description. Referenced byCiting PatentFiling datePublication dateApplicantTitleUS7582061Dec 22, 2005Sep 1, 2009Cardiac Pacemakers, Inc.Method and apparatus for morphology-based arrhythmia classification using cardiac and other physiological signalsUS7912545Aug 6, 2009Mar 22, 2011Cardiac Pacemakers, Inc.Method and apparatus for morphology-based arrhythmia classification using cardiac and other physiological signalsUS8260406 *Nov 28, 2007Sep 4, 2012Aalborg UniversitetSystem and method for analyzing complex curvature of ECG curvesUS8506500Mar 8, 2011Aug 13, 2013Cardiac Pacemakers, Inc.Method and apparatus for morphology-based arrhythmia classification using cardiac and other physiological signalsUS8521276 *Jan 11, 2011Aug 27, 2013Cardiac Pacemakers, Inc.Use of significant point methodology to prevent inappropriate therapyUS20110172729 *Jan 11, 2011Jul 14, 2011Sweeney Robert JUse of significant point methodology to prevent inappropriate therapyWO2010085524A1 *Jan 21, 2010Jul 29, 2010Medtronic, Inc.A "blurred template" approach for arrhythmia detectionWO2011038118A1Sep 23, 2010Mar 31, 2011Cardiac Pacemakers, Inc.Morphology based ischemia detection using intracardiac electrogramsWO2011088043A1Jan 11, 2011Jul 21, 2011Cardiac Pacemakers, Inc.Use of significant point methodology to prevent inappropriate therapy* Cited by examinerClassifications U.S. Classification600/510International ClassificationA61B5/0464, A61N1/39, A61B5/046, A61N1/362, A61B5/04, A61B5/0452, G06K9/00, A61B5/0245Cooperative ClassificationA61N1/3962, A61B5/7239, G06K9/00523, A61B5/0245, A61B5/0464, A61B5/7264, A61B5/0452, A61B5/046, A61N1/362European ClassificationG06K9/00M2, A61B5/0452Legal EventsDateCodeEventDescriptionNov 24, 2003ASAssignmentOwner name: CARDIAC PACEMAKERS, INC., MINNESOTAFree format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:SWEENEY, ROBERT J.;RICCI, CARLOS;REEL/FRAME:014721/0510Effective date: 20031107RotateOriginal ImageGoogle Home - Sitemap - USPTO Bulk Downloads - Privacy Policy - Terms of Service - About Google Patents - Send FeedbackData provided by IFI CLAIMS Patent Services©2012 Google