Abstract:
An apparatus for detecting cardiac events in electrograms has a feature extraction unit that derives features of the cardiac events for discriminating among different types of cardiac events. A clustering unit groups cardiac events with similar features into respective clusters defined by predetermined cluster features. The feature extraction unit determines a feature vector describing waveform characteristics of cardiac events in the electrogram by a wavelet transform. The clustering unit determines the distance between the feature vector and corresponding cluster feature vectors in order to assign the cardiac event in question to that cluster which results in a minimum distance, providing that the minimum distance is less than a predetermined threshold value. A heart stimulator provided with such a cardiac event detecting apparatus detects the occurrence of an arrhythmia and appropriately controls a pulse stimulator to treat the arrhythmia.

Description:
BACKGROUND OF THE INVENTION 
   1. Field of the Invention 
   The present invention relates to an apparatus for cardiac events detected in electrograms, EGMs, and to a heart stimulator provided with such an apparatus. 
   In the following the expression “cardiac event” denotes the depolarization phase in the cardiac cycle, which for atrial signals is commonly known as P wave and for ventricular signals as R wave or QRS complex. 
   2. Description of the Prior Art 
   In the field of devices for cardiac rhythm management (CRM), accurate rhythm classification is an increasingly important aspect. Pacemakers are primarily used to assist in bradycardia or when the electrical propagation path is blocked, whereas the primary use of implantable cardioverter defibrillators (ICD) is to terminate ventricular arrhythmia, a life-threatening condition if not immediately treated. In both types of devices, accurate event classification of the electrogram signal is needed for identifying, e.g., atrial and ventricular fibrillation in order to give appropriate therapy for the detected arrhythmia. For pacemakers, this may necessitate changing the pacing mode in order to stabilize the ventricular rhythm during an episode of atrial fibrillation. An ICD responds to ventricular fibrillation by giving a defibrillating shock intended to terminate the fibrillation. 
   Ever increasing demands are put on both kinds of devices to better handle their primary task as well as to manage other tasks than those originally intended for. One such task may be, for an implantable medical device, to identify atrial flutter in order to terminate it by atrial pacing or to defibrillate atrial fibrillation. Although it is not a life-threatening arrhythmia, atrial fibrillation is an inconvenience to the patient and increases the risk for other diseases such as stroke. Atrial pacing may also be one way of terminating supraventricular tachycardias. An ICD specific task is to identify atrial fibrillation in order to not mistake it for ventricular fibrillation and the risk of giving an unnecessary, and possibly harmful, defibrillation shock. Another, more general, utilization is to efficiently store rhythm data for later analysis and evaluation, already done in modern ICD&#39;s. By collecting data, better knowledge of the evolution of cardiac diseases and the functionality of the device can be obtained. 
   Clustering represents an important task within the classification problem where each individual event is assigned to a cluster of events with similar features. Labelling of the clusters, i.e., associating the cluster with a specific cardiac rhythm, completes the classification such that the device can provide proper therapy when needed. However, certain constraints distinguish clustering in CRM devices from clustering in general. In order to give immediate therapy, it requires clustering to be done in real-time, thus excluding many iterative clustering algorithms such as k-means clustering and competitive learning. Various methods have recently been presented concerning clustering of signals from the surface electrocardiogram (ECG), based on, e.g., self-organizing maps or fuzzy hybrid neural networks, see M. Lagerholm, C. Peterson, G. Braccini, L. Edenbrabdt, and L. Sörnmo, Clustering ECG complexes using Hermite functions and self-organizing maps”, IEEE Trans. Biomed. Eng., vol. 47, pp. 838-848, July 2000, and S. Osowski and T. Linh, “ECG beat recognition using fuzzy hybrid neural network”, IEEE Trans. Biomed. Eng., vol. 48, pp. 1265-1271, November 2001. However, most clustering algorithms used for ECG analysis are computationally rather complex and therefore unsuitable for implantable CRM devices. Furthermore, not much a priori morphologic information is associated with the various rhythms in the electrogram (EGM); this is in contrast to the more well-defined ECG. 
   Previous work in the area of intracardiac event classification mainly focused on discrimination of a specific condition in order to discern, e.g., atrial fibrillation from other atrial tachyarrythmias, see A. Schoenwald, A. Sahakian, and S. Swiryn, “Discrimination of atrial fibrillation from regular atrial rhythms by spatial precision of local activation direction”, IEEE Trans. Biomed. Eng., vol. 44, pp. 958-963, October 1997. Other applications involve discrimination of ventricular from supraventricular tachycardia, see L. Koyrakh, J. Gillberg, and N. Wood, “Wavelet based algorithms for EGM morphology discrimination for implantable ICDs”, in Proc. Of Comp. In Card. (Piscataway, N.J., USA), pp. 343-346, IEEE, IEEE Press, 1999, and G. Grönefeld, B. Schulte, S. Hohnloser, H.-J. Trappe, T. Korte, C. Stellbrink, W. Jung, M. Meesmann, D. Böcker, D. Grosse—Meininghaus, J. Vogt, and J. Neuzner, “Morphology discrimination: A beat-to-beat algorithm for the discrimination of ventricular from supraventricular tachycardia by implantable cardioverter defibrillators”, J. Pacing Clin. Electrophysiol., vol. 24, pp. 1519-1524, October 2001. More general classification algorithms, which in turn involve training on individual patients, have been based on analog neural networks or wavelet analysis for morphologic discrimination of arrhythmias. 
   PCT Application WO 97 39 681 describes a defibrillator control system comprising a pattern recognition system. The intracardiac electrogram signal is digitised and delivered for feature selection into a selector. The feature selector outputs selected features to a trained classifier to provide information as to what group the produced signal should be clustered, e.g. ventricular tachycardia. The classifier outputs the classified information for use for a therapeutic decision. 
   U.S. Pat. No. 5,271,411 discloses an ECG signal analysis and cardiac arrhythmia detection by extraction of features from a scalar signal. A QRS pattern vector is then transformed into features describing the QRS morphology, viz. a QRS feature vector. A normal QRS complex is identified based on the population of QRS complexes located within clusters of QRS features within a feature space having a number of dimensions equal to the number of extracted features. The extracted morphology information is then used for judging whether a heartbeat is normal or abnormal. 
   U.S. Pat. No. 5,638,823 describes non-invasively detecting of coronary artery diseases. A wavelet transform is performed on an acoustic signal representing one or more sound event caused by turbulence of blood flowing in an artery to provide parameters for a feature vector. This feature vector is used as one input to neural networks, the outputs of which represent a diagnosis of coronary stenosis in a patient. 
   In Michael A. Unser et al, “Wavelet Applications in Signal and Image Processing IV”, Proceedings SPIE—The International Society for Optical Engineering, 6-9 Aug. 1996, vol. 2825, part two of two parts, pp. 812-821, a wavelet packet based compression scheme for single lead ECGs is disclosed, including QRS clustering and grouping of heart beats of similar structures. For each heart beat detected, its QRS complex is compared to templates of previously established groups. Point-by-point differences are used as similarity measures. The current beat is assigned to the group whose template is most similar, provided predetermined conditions are satisfied. Otherwise a new group is created with the current QRS complex used as the initial group template. 
   SUMMARY OF THE INVENTION 
   An object of the present invention is to provide a technique for separation of cardiac rhythms in a reliable way on the basis of electrogram event clustering 
   The above object is achieved in accordance with the invention by an apparatus for analyzing cardiac events detected in electrogram (EGMs) having a feature extraction unit that derives features of the cardiac events for discriminating among different types of detected cardiac events, and a clustering unit that groups cardiac events with similar features into a cluster, defined by predetermined cluster features, wherein the feature extraction unit determines a feature vector that describes waveform characteristics of the cardiac event EGM signals by means of a wavelet transform, and wherein the clustering unit determines a distance or distances between the feature vector and corresponding cluster feature vectors in order to assign the cardiac event in question to the cluster that results in a minimum distance, as long as the minimum distance is less than a predetermined threshold value. 
   Certain arrhythmias are diagnosed immediately to give proper therapy, while, for others, it may be sufficient to record the rhythm for data collection purposes. Thus, the classification problem, viz. to label the rhythms based on clusters using clinical terms, may not always be necessary to implement. 
   In an embodiment of the apparatus according to the invention both morphologic and temporal data are considered for clustering. Morphologic features are efficiently extracted by use of the dyadic wavelet transform after which the events are grouped by a leader-follower clustering embodiment. The event detection problem, based on the same transform, is previously treated in Swedish patent application no. 0103562-5. 
   According to another advantageous embodiment of the apparatus according to the invention an integrator is provided to integrate said distance over a predetermined period of time. By integrating the distance over a period of time it is possible to distinguish irregular rhythms, like atria! fibrillation, from regular rhythms. The integral total distance in the case of atrial fibrillation will be high whereas regular rhythms will result in a lower total distance. 
   The invention also relates to a heart stimulator provided with the above-mentioned apparatus for controlling the therapeutic stimulation depending on arrhythmia detection. 

   
     DESCRIPTION OF THE DRAWINGS 
       FIGS. 1   a  and  1   b  illustrate impulse responses of a filter bank used for cardiac event detection in accordance with the present invention. 
       FIG. 2  is a flow chart of a clustering algorithm performed in the apparatus according to the present invention. 
       FIGS. 3   a  and  3   b  illustrate the computational complexity for different clustering algorithms. 
       FIG. 4   a  illustrates clustering performance in terms of probability for correct clustering of an event, as well as the probability of a dominant event in the cluster, and  FIG. 4   b  illustrates a histogram spread of the number of clusters. 
       FIG. 5   a  illustrates clustering performance as a function of a distance threshold, and  FIG. 5   b  illustrates the number of clusters as a function of the distance threshold. 
       FIG. 6  illustrates the clustering performance for one set of parameters. 
       FIGS. 7   a  and  7   b  are examples of the clustering result for a connected EGM for three cases. 
       FIG. 8  is a flowchart describing the general functioning of an embodiment of an apparatus according to the invention. 
       FIG. 9  is a block diagram of a heart stimulator providing with a cardiac event detecting apparatus in accordance with the present invention. 
   

   DESCRIPTION OF THE PREFERRED EMBODIMENTS 
   P Wave Detection and Feature Extraction 
   A signal model assuming that the event waveform is composed of a linear combination of representative signals is considered. The feature extraction problem is then to estimate the individual components of the representative signals since each morphology will have its own linear combination. By using the dyadic wavelet transform, different widths of the two fundamental monophasic and biphasic waveforms are included in the model at a low cost. 
   Feature Extraction 
   It is assumed that the QRS waveform is composed of a linear combination of representative signals,
 
 H=[h   1    . . . h   p ]  (2)
 
where each function, h j , j=1, . . . , P, is of size M×1. The only restriction on H is that it must have full rank. Different morphologies, s(n), are modelled by the P×1 coefficient vector θ(n), with the linear model
 
 s ( n )= H θ( n )  (3)
 
where n is a temporal variable describing when the event occurs. The observed signal, x(n), is assumed to be modelled by,
 
 x ( n )= H θ( n )+ w ( n )  (4)
 
where the M×1 noise vector w(n) is assumed to be zero-mean, white, and Gaussian with variance
 
           σ   ⁢           ⁢       2   ω     .           
Consequently, x(n) is defined as
 
                   x   ⁡     (   n   )       =     [           x   ⁡     (   n   )               ⋮             x   ⁡     (     n   +   M   -   1     )             ]             (   5   )               
implying an event duration of M samples, beginning at n. The probability density function x(n) for a specific realization of θ(n), p(x(n); θ(n)), is thus given by
 
   
     
       
         
           
             
               
                 
                   p 
                   ⁡ 
                   
                     ( 
                     
                       
                         x 
                         ⁡ 
                         
                           ( 
                           n 
                           ) 
                         
                       
                       ; 
                       
                         θ 
                         ⁡ 
                         
                           ( 
                           n 
                           ) 
                         
                       
                     
                     ) 
                   
                 
                 = 
                 
                   
                     1 
                     
                       
                         ( 
                         
                           2 
                           ⁢ 
                           Πσ 
                           ⁢ 
                           
                             
                               
                                 2 
                               
                             
                             
                               
                                 ω 
                               
                             
                           
                         
                         ) 
                       
                       ⁢ 
                       
                         M 
                         2 
                       
                     
                   
                   ⁢ 
                   
                     exp 
                     ⁡ 
                     
                       [ 
                       
                         
                           - 
                           
                             1 
                             
                               2 
                               ⁢ 
                               σ 
                               ⁢ 
                               
                                 
                                   
                                     2 
                                   
                                 
                                 
                                   
                                     ω 
                                   
                                 
                               
                             
                           
                         
                         ⁢ 
                         
                           
                             ( 
                             
                               
                                 x 
                                 ⁡ 
                                 
                                   ( 
                                   n 
                                   ) 
                                 
                               
                               - 
                               
                                 H 
                                 ⁢ 
                                 
                                     
                                 
                                 ⁢ 
                                 
                                   θ 
                                   ⁡ 
                                   
                                     ( 
                                     n 
                                     ) 
                                   
                                 
                               
                             
                             ) 
                           
                           T 
                         
                         ⁢ 
                         
                           ( 
                           
                             
                               x 
                               ⁡ 
                               
                                 ( 
                                 n 
                                 ) 
                               
                             
                             - 
                             
                               H 
                               ⁢ 
                               
                                   
                               
                               ⁢ 
                               
                                 θ 
                                 ⁡ 
                                 
                                   ( 
                                   n 
                                   ) 
                                 
                               
                             
                           
                           ) 
                         
                       
                       ] 
                     
                   
                 
               
             
             
               
                 ( 
                 6 
                 ) 
               
             
           
         
       
     
   
   In this model, a complete description of a QRS complex is provided by the deterministic unknown parameter vector θ(n). The absence of a QRS complex corresponds to the case when θ(n) is equal to 0, where 0 is the P×1 zero vector. In general, no a priori knowledge is available on θ(n), and therefore an estimate is required before detection can take place. Furthermore, only one event is assumed to take place within the observation interval 0≦n≦N. 
   Filterbank Representation 
   The descriptive functions in H have been selected such that the following three aspects have been taken into particular account:
         1. the main morphologies of the QRS complex are mono- and/or biphasic   2. the broad range of QRS complex durations, and   3. a low complexity implementation.       

   The wavelet transform is particularly suitable since it is a local transform, i.e., it provides information about the local behaviour of a signal. One wavelet decomposition method which may be efficiently implemented is the dyadic wavelet transform. By careful selection of the filters, a suitable filter bank including mono-and biphasic impulse responses can be obtained. A symmetric lowpass filter, f(n), is used repeatedly in order to achieve proper frequency bands. This filter is combined with one of two filters, g b (n) or g m (n), which together define the waveform morphology (the subindices b and m denote bi- and monophasic, respectively). For the biphasic case, the recursion is expressed as, 
                       h     1   ,   b       ⁡     (   n   )       =       g   b     ⁡     (   n   )         ⁢     
     ⁢         h     2   ,   b       ⁡     (   n   )       =       f   ⁡     (   n   )       *       g   b     ⁡     (     2   ⁢   n     )           ⁢     
     ⁢         h     3   ,   b       ⁡     (   n   )       =       f   ⁡     (   n   )       *     f   ⁡     (     2   ⁢   n     )       *       g   b     ⁡     (     4   ⁢   n     )           ⁢     
     ⁢   ⋮   ⁢     
     ⁢       h       q   max     ,   b       ⁡     (   n   )       =       f   ⁡     (   n   )       *           ⁢   …   ⁢           *     ∫       (       2     q     mas     -   3           ⁢   n     )     *       g   b     ⁡     (       2     q     max     -   1           ⁢   n     )                     (   7   )               
in which the subindex q max  represents the maximum (coarsest) scale.
 
   It is now possible to present an expression for-H which is composed of one biphasic and one monophasic part,
 
H=└{tilde over (H)} b  {tilde over (H)} m ┘  (8)
         where the biphasic H b  is defined as       

                     H   b     -     [       h       q   min     ,   b       ⁢           ⁢   …   ⁢           ⁢     h       q   max     ,   b         ]       =     [             h       q   min     ,   b       ⁡     (   0   )           …           h       q   max     ,   b       ⁡     (   0   )               ⋮       ⋰       ⋮               h       q   min     ,   b       ⁡     (     M   -   1     )           …           h       q   max     ,   b       ⁡     (     M   -   1     )             ]             (   9   )               
where the subindex q min  represents the minimum scale and q min &lt;q max . The monophasic matrix H m  is computed in a corresponding way. The reversed order of the columns in Ĥ, denoted with {tilde over (H)} in (8), is introduced in order to be consistent with the model assumed in (4).
 
   In order to mimic the desired mono- and biphasic waveforms with a low complexity filter bank structure, short filters with small integer coefficients were used. In (7), the impulse response f(n) was chosen as a third order binomial function, 
   
     
       
         
           
             
               
                 
                   F 
                   ⁡ 
                   
                     ( 
                     z 
                     ) 
                   
                 
                 = 
                 
                   
                     
                       
                         ( 
                         
                           1 
                           + 
                           
                             z 
                             
                               - 
                               1 
                             
                           
                         
                         ) 
                       
                       
                         L 
                         
                           
                             
                               L 
                               = 
                               2 
                             
                             _ 
                           
                           _ 
                         
                       
                     
                     ⁢ 
                     1 
                   
                   + 
                   
                     3 
                     ⁢ 
                     
                       z 
                       
                         - 
                         1 
                       
                     
                   
                   + 
                   
                     3 
                     ⁢ 
                     
                       z 
                       
                         - 
                         2 
                       
                     
                   
                   + 
                   
                     z 
                     
                       - 
                       3 
                     
                   
                 
               
             
             
               
                 ( 
                 10 
                 ) 
               
             
           
         
       
     
       
       
         
           where F(z) is the Z-transform of f(n). For the biphasic filter bank, the filter g b (n) was selected as the first order difference,
 
 g   b ( n )=[−1 1]  (11)
 
         
       
     
  
   The filter g m (n) was chosen such that a compromise between the requirement of a DC gain equal to zero and an approximately monophasic impulse response was achieved. A reduction of complexity results when g b  (n) is reused,
 
 g   m ( n )= g   b ( n )* g   b ( n )=[1−2 1]  (12)
 
   For this particular choice of g m (n) and by using Mallat&#39;s algorithm, it is possible to calculate both the biphasic and the monophasic filter output from each scale by using f(n) once and g b (n) twice. The filter bank impulse responses are shown in  FIGS. 1   a  and  1   b . The filter bank includes two orthogonal signal sets where the width of the signal varies within each set. In  FIG. 1   a , h j,b  (n) is shown for j=2, . . . ,4 from top to bottom, and in  FIG. 1   b , the corresponding h j,m (n) are shown. 
   ML Parameter Estimation 
   The unknown coefficient vector θ(n) can be estimated by using the maximum likelihood criterion according to, 
   
     
       
         
           
             
               
                 
                   
                     θ 
                     ^ 
                   
                   ⁡ 
                   
                     ( 
                     n 
                     ) 
                   
                 
                 = 
                 
                   
                     arg 
                     
                       
                         
                           max 
                         
                       
                       
                         
                           
                             θ 
                             ⁡ 
                             
                               ( 
                               n 
                               ) 
                             
                           
                         
                       
                     
                   
                   ⁢ 
                   
                     p 
                     ⁡ 
                     
                       ( 
                       
                         
                           x 
                           ⁡ 
                           
                             ( 
                             n 
                             ) 
                           
                         
                         ; 
                         
                           θ 
                           ⁡ 
                           
                             ( 
                             n 
                             ) 
                           
                         
                       
                       ) 
                     
                   
                 
               
             
             
               
                 ( 
                 13 
                 ) 
               
             
           
         
       
     
   
   However, {circumflex over (θ)}(n) is only of interest for those n for which the probability of an event, or, equivalently, for which the likelihood ratio test function T(x(n)) is maximized, 
   
     
       
         
           
             
               
                 
                   n 
                   ^ 
                 
                 = 
                 
                   
                     arg 
                     
                       
                         
                           max 
                         
                       
                       
                         
                           n 
                         
                       
                     
                   
                   ⁢ 
                   
                     T 
                     ⁡ 
                     
                       ( 
                       
                         x 
                         ⁡ 
                         
                           ( 
                           n 
                           ) 
                         
                       
                       ) 
                     
                   
                 
               
             
             
               
                 ( 
                 14 
                 ) 
               
             
           
         
       
     
   
   For this case, T (x(n)) can be shown to be [14],
 
 T ( x ( n ))= x ( n ) T   H ( H   T   H ) −1   H   T   x ( n )  (15)
         for the case when σ ω   2  is assumed to be constant.       

   The optimal estimate {circumflex over (θ)} for the detected event at {circumflex over (n)} is thus expressed as 
   
     
       
         
           
             
               
                 
                   θ 
                   ^ 
                 
                 = 
                 
                   
                     arg 
                     
                       
                         
                           max 
                         
                       
                       
                         
                           
                             θ 
                             ⁡ 
                             
                               ( 
                               
                                 n 
                                 ^ 
                               
                               ) 
                             
                           
                         
                       
                     
                   
                   ⁢ 
                   
                     p 
                     ⁡ 
                     
                       ( 
                       
                         
                           x 
                           ⁡ 
                           
                             ( 
                             
                               n 
                               ^ 
                             
                             ) 
                           
                         
                         ; 
                         
                           θ 
                           ⁡ 
                           
                             ( 
                             
                               n 
                               ^ 
                             
                             ) 
                           
                         
                       
                       ) 
                     
                   
                 
               
             
             
               
                 ( 
                 16 
                 ) 
               
             
           
         
       
     
   
   The MLE of θ({circumflex over (n)})(n) is found by maximizing p(x({circumflex over (n)});θ({circumflex over (n)}), or equivalently minimizing the MSE,
 
( x ( {circumflex over (n)} )− H θ( {circumflex over (n)} )) T ( x ( {circumflex over (n)} )− H θ( {circumflex over (n)} ))= x ( {circumflex over (n)} ) T   x ( {circumflex over (n)} )+θ( {circumflex over (n)} ) T   H   T   H θ( {circumflex over (n)} )−2θ( {circumflex over (n)} ) T   H   T   x ( {circumflex over (n)} )  (17)
 
   Derivation with respect to x({circumflex over (n)}) yields the optimum θ,
 
{circumflex over (θ)}( {circumflex over (n)} )=( H   T   H ) −1   H   T   x ( {circumflex over (n)} )=( H   T   H ) −1   H   T   x ( {circumflex over (n)} )  (18)
 
   By using the above formulation, it is also possible to derive a generalized likelihood ratiodetector based on (15). 
   Rate 
   The central parameter for classification of cardiac arrhythmias is the heart rate. Most arrhythmias are defined in terms of heart rate, although sometimes with rather fuzzy limits. Consequently, rate should be considered in order to improve performance. The RR interval, Δt, is defined as the duration between two consecutive events,
 
Δ {circumflex over (t)}   k =( {circumflex over (n)}   k   −{circumflex over (n)}   k-1 ) Ts   (19)
 
where {circumflex over (n)} k  and {circumflex over (n)} k-1  denote the occurrence times of the events, and T S  denotes the sampling period.
 
Leader-Follower Clustering
 
   The choice of leader-follower clustering is based on a number of features which makes it suitable for the present invention, viz.
         on-line processing (non-iterative), and   self-learning, i.e., no a priori knowledge of the of clusters is needed.       

   The starting point is the assumption that an event is present for which it should be decided whether it belongs to an already existing cluster or if a new cluster should be initiated. Since, no knowledge is a priori available on which rhythms or morphologies to be expected, the chosen algorithm must be self-learning. The leader-follower clustering algorithm is constituted by four quantities:
         1. The event parameter vector, φ(n k ), containing the features of the k:th event that occurs at time n k .   2. The cluster center μ i , and the covariance matrix Σ i ; that together define the i:th cluster. Since both μ i  and Σ i  are unknown, they are replaced by their estimates {circumflex over (μ)} i  and {circumflex over (Σ)} i ; respectivey.   3. The metric, d i   2 , determine the distance between φ(n k ) and μ i ; according to some suitable function.   4. A rule for adaptation of the cluster parameters for the winning cluster.
 
Initialization of New Clusters
       

   During run-time, a finite number of clusters exists which represent the rhythms having appeared until present time. Thus, it is occasionally necessary to initialize a new cluster when the existing ones do not sufficiently well fit the present event. When the distance function d j   2  exceeds a certain threshold, η, it is more likely that the event belongs to a new cluster than to any of the existing clusters. The selection of η is a tradeoff between cluster size and cluster resolution in the sense that choosing a small η will result in many clusters with few clustering errors. On the other hand, a large η results in few clusters but in more errors. 
   The minimum distance between φ(n) and μ i ; with respect to both i and n is 
   
     
       
         
           
             
               
                 
                   
                     d 
                     ⁢ 
                     
                       
                         
                           2 
                         
                       
                       
                         
                           min 
                         
                       
                     
                   
                   = 
                   
                     
                       
                         
                           min 
                           
                             d 
                             i 
                             2 
                           
                         
                         
                           i 
                           ⁢ 
                           
                             , 
                             l 
                           
                         
                       
                       ⁢ 
                       
                         
                           ( 
                           1 
                           ) 
                         
                         ⁢ 
                         
                             
                         
                         ⁢ 
                         i 
                       
                     
                     = 
                     l 
                   
                 
                 , 
                 
                     
                 
                 ⁢ 
                 … 
                 ⁢ 
                 
                     
                 
                 , 
                 
                   
                     l 
                     ⁢ 
                     
                         
                     
                     ⁢ 
                     l 
                   
                   = 
                   
                     
                       
                         n 
                         ^ 
                       
                       k 
                     
                     - 
                     
                       K 
                       2 
                     
                   
                 
                 , 
                 
                     
                 
                 ⁢ 
                 … 
                 ⁢ 
                 
                     
                 
                 , 
                 
                   
                     
                       n 
                       ^ 
                     
                     k 
                   
                   + 
                   
                     K 
                     2 
                   
                 
               
             
             
               
                 ( 
                 20 
                 ) 
               
             
           
         
       
     
       
       
         
           over the search interval K. The corresponding minimum distance indices are found as 
         
       
     
  
   
     
       
         
           
             
               
                 
                   [ 
                   
                     
                       i 
                       min 
                     
                     , 
                     
                       n 
                       min 
                     
                   
                   ] 
                 
                 = 
                 
                   
                     arg 
                     
                       
                         
                           min 
                         
                       
                       
                         
                           
                             i 
                             , 
                             l 
                           
                         
                       
                     
                   
                   ⁢ 
                   
                     
                       d 
                       j 
                       2 
                     
                     ⁡ 
                     
                       ( 
                       l 
                       ) 
                     
                   
                 
               
             
             
               
                 ( 
                 21 
                 ) 
               
             
           
         
       
     
   
   The decision rule based on the comparison of d min   2  and η is expressed as 
   
     
       
         
           
             
               
                 
                   d 
                   
                     min 
                     2 
                   
                 
                 ⁢ 
                 
                   { 
                   
                     
                       
                         
                           〉 
                           η 
                           ⁢ 
                           
                             : 
                           
                           ⁢ 
                           
                               
                           
                           ⁢ 
                           Initialize 
                           ⁢ 
                           
                               
                           
                           ⁢ 
                           new 
                           ⁢ 
                           
                               
                           
                           ⁢ 
                           cluster 
                         
                       
                     
                     
                       
                         
                           〈 
                           
                             η 
                             ⁢ 
                             
                               : 
                             
                             ⁢ 
                             
                                 
                             
                             ⁢ 
                             Assign 
                             ⁢ 
                             
                                 
                             
                             ⁢ 
                             to 
                             ⁢ 
                             
                                 
                             
                             ⁢ 
                             winning 
                             ⁢ 
                             
                                 
                             
                             ⁢ 
                             cluster 
                           
                         
                       
                     
                     
                       
                         
                           〈 
                           
                             ρη 
                             ⁢ 
                             
                               : 
                             
                             ⁢ 
                             
                                 
                             
                             ⁢ 
                             Update 
                             ⁢ 
                             
                                 
                             
                             ⁢ 
                             winning 
                             ⁢ 
                             
                                 
                             
                             ⁢ 
                             cluster 
                           
                         
                       
                     
                   
                 
               
             
             
               
                 ( 
                 22 
                 ) 
               
             
           
         
       
     
       
       
         
           where 0&lt;p&lt;1. When the upper relation in (22) holds, a new cluster is initialized by first increasing the number of clusters by one, I=I+1, given that I&lt;I max  where I max  is the maximum number of clusters, and then initializing the new cluster as,
 
{circumflex over (μ)} 1 =Φ( {circumflex over (n)}   k )  (23)
 
         
       
     
  
   On the other hand, if I=I max  the algorithm needs to discard one of the existing clusters. This can be done by elimination of, e.g., the oldest or the “smallest” cluster. By the term “smallest” cluster is meant that cluster which most rarely is fitted with a detected cardiac event. 
   For the middle and lower conditions in (22), the existing minimum distance cluster i min  is selected as the winning cluster. However, only the lower condition results in a cluster parameter update. The reason for including such a distinction is that only closely similar events should be used for cluster updates in order to reduce contamination. 
   Mahalanobis Distance Function 
   The distance between the feature vector θ(n) and each cluster {circumflex over (μ)} 1 , is defined as the Mahalanobis distance, which is a normalized Euclidean distance in the sense that it projects the parameter vector elements onto univariate dimensions by including the inverse covariance matrix Σ i   −1 . Thus, a feature with a larger variance in φ(n) will be assigned a larger share of the hyperspace before normalization compared to that with a lower variance. A consequence of normalization is that the Mahalanobis distance works well on correlated data since Σ i   −1  then acts as a decorrelator. 
   When searching for the minimum distance, a grid search over n is performed. This grid search is necessary since it not only minimizes the distance but also results in a more accurate fiducial point estimate than what would be the case when only considering T(x({circumflex over (n)} k )). The minimum distance is thus found by a grid search with respect to all existing clusters, i=1, . . . , I, and all feature vectors within the duration of an event I as defined in (20), 
                     d   i   2     ⁡     (   l   )       =         (       Φ   ⁡     (   l   )       -       μ   ^     i       )     T     ⁢         Σ   ^     i     -   1       ⁡     (       Φ   ⁡     (   l   )       -       μ   ^     i       )                 (   24   )               
Reference Feature Adaptation
 
   In order to track changes in the features of the different rhythms, adaptation of both μ i min  (k) and 
               Σ   ^       i   ⁢           ⁢   min       -   1       ⁡     (   k   )           
are desirable, here the event index k has been included for clarity. For {circumflex over (μ)} imin  (k), an exponentially updated average is used:
 μ i     min   ( k )={circumflex over (μ)} i     min   ( k− 1)+γε( k )  (25) 
where
 ε( k )=Φ( n   min )−{circumflex over (μ)} i     ,om   ( k− 1)  (26) 
   The exponential update factor γ is confined to the interval 0&lt;γ&lt;1. 
   The inverse covariance matrix, 
                 Σ   ^       i   ⁢           ⁢   min       -   1       ⁡     (   k   )       ,         
is estimated by exponential averaging of the new cluster difference matrix ε(k)ε T (k) using the update factor (1−α),
 
   
     
       
         
           
             
               
                 
                   
                     
                       Σ 
                       ^ 
                     
                     
                       i 
                       min 
                     
                     
                       - 
                       1 
                     
                   
                   ⁡ 
                   
                     ( 
                     k 
                     ) 
                   
                 
                 = 
                 
                   
                     ( 
                     
                       
                         
                           ( 
                           α 
                           ) 
                         
                         ⁢ 
                         
                           Σ 
                           ^ 
                         
                         ⁢ 
                         
                           
                             i 
                             min 
                           
                           ⁡ 
                           
                             ( 
                             
                               k 
                               - 
                               1 
                             
                             ) 
                           
                         
                       
                       + 
                       
                         
                           ( 
                           
                             1 
                             - 
                             α 
                           
                           ) 
                         
                         ⁢ 
                         
                           ɛ 
                           ⁡ 
                           
                             ( 
                             k 
                             ) 
                           
                         
                         ⁢ 
                         
                           
                             ɛ 
                             T 
                           
                           ⁡ 
                           
                             ( 
                             k 
                             ) 
                           
                         
                       
                     
                     ) 
                   
                   
                     - 
                     1 
                   
                 
               
             
             
               
                 ( 
                 27 
                 ) 
               
             
           
         
       
     
   
   Using the matrix inversion lemma
 
 A=B   −1   +CD   −1   C   T   (28)
 
 A   −1   =B−BC ( D+C   T   BC ) −1   C   T   B   (29)
 
and pairing the terms in (27) with the ones in (28),
 
 A={circumflex over (Σ)}   imin ( k )  (30)
 
 B   −1 α{circumflex over (Σ)} imin ( k− 1)  (31)
 
 C =ε( k )  (32)
 
 D   −1 =(1−α)  (33)
 
The inverse {circumflex over (Σ)} i min   −1  (k−1) in (27) may be computed without any matrix inversions as,
 
   
     
       
         
           
             
               
                 
                   
                     
                       Σ 
                       ^ 
                     
                     
                       i 
                       min 
                     
                     
                       - 
                       1 
                     
                   
                   ⁡ 
                   
                     ( 
                     k 
                     ) 
                   
                 
                 = 
                 
                   
                     
                       α 
                       
                         - 
                         1 
                       
                     
                     ⁢ 
                     
                       
                         
                           Σ 
                           ^ 
                         
                         
                           i 
                           min 
                         
                         
                           - 
                           1 
                         
                       
                       ⁡ 
                       
                         ( 
                         
                           k 
                           - 
                           1 
                         
                         ) 
                       
                     
                   
                   - 
                   
                     
                       
                         α 
                         
                           - 
                           1 
                         
                       
                       ⁢ 
                       
                         
                           
                             Σ 
                             ^ 
                           
                           
                             i 
                             min 
                           
                           
                             - 
                             1 
                           
                         
                         ⁡ 
                         
                           ( 
                           
                             k 
                             - 
                             1 
                           
                           ) 
                         
                       
                       ⁢ 
                       
                         ɛ 
                         ⁡ 
                         
                           ( 
                           k 
                           ) 
                         
                       
                       ⁢ 
                       
                         
                           ɛ 
                           T 
                         
                         ⁡ 
                         
                           ( 
                           k 
                           ) 
                         
                       
                       ⁢ 
                       
                         α 
                         
                           - 
                           1 
                         
                       
                       ⁢ 
                       
                         
                           
                             Σ 
                             ^ 
                           
                           
                             i 
                             min 
                           
                           
                             - 
                             1 
                           
                         
                         ⁡ 
                         
                           ( 
                           
                             k 
                             - 
                             1 
                           
                           ) 
                         
                       
                     
                     
                       
                         
                           ( 
                           
                             1 
                             - 
                             α 
                           
                           ) 
                         
                         
                           - 
                           1 
                         
                       
                       + 
                       
                         
                           
                             ɛ 
                             T 
                           
                           ⁡ 
                           
                             ( 
                             k 
                             ) 
                           
                         
                         ⁢ 
                         
                           α 
                           
                             - 
                             1 
                           
                         
                         ⁢ 
                         
                           
                             
                               Σ 
                               ^ 
                             
                             
                               i 
                               min 
                             
                             
                               - 
                               1 
                             
                           
                           ⁡ 
                           
                             ( 
                             
                               k 
                               - 
                               1 
                             
                             ) 
                           
                         
                         ⁢ 
                         
                           ɛ 
                           ⁡ 
                           
                             ( 
                             k 
                             ) 
                           
                         
                       
                     
                   
                 
               
             
             
               
                 ( 
                 34 
                 ) 
               
             
           
         
       
     
   
   By utilizing the matrix inversion lemma, the computational complexity of the operation is reduced from O(P 3 ) to O(P 2 ). 
   Algorithm Initialization 
   In leader-follower clustering, clusters are initialized as they become needed. This feature is convenient since it does not automatically introduce any unused clusters. However, it also puts demands on the algorithm to be able to create new clusters when necessary, and also to terminate clusters either not used for long or with only a few events. Initially, the total number of clusters, I, is equal to one. The algorithm is initialized by assigning the parameter vector Φ({circumflex over (n)} i ), which maximizes the test statistic in (14) of the first event, to the first cluster, cf. (23),
 
{circumflex over (μ)} 1 =Φ( {circumflex over (n)}   1 )  (35)
 
   For the general case, Φ({circumflex over (n)} k ) is composed of a subset of the representative functions together with the preceding RR-interval, 
   
     
       
         
           
             
               
                 
                   Φ 
                   ⁡ 
                   
                     ( 
                     
                       
                         n 
                         ^ 
                       
                       k 
                     
                     ) 
                   
                 
                 = 
                 
                   [ 
                   
                     
                       
                         
                           
                             
                               
                                 θ 
                                 ^ 
                               
                               s 
                             
                             ⁡ 
                             
                               ( 
                               
                                 
                                   n 
                                   ^ 
                                 
                                 k 
                               
                               ) 
                             
                           
                           
                              
                             
                               
                                 
                                   θ 
                                   ^ 
                                 
                                 s 
                               
                               ⁡ 
                               
                                 ( 
                                 
                                   
                                     n 
                                     ^ 
                                   
                                   k 
                                 
                                 ) 
                               
                             
                              
                           
                         
                       
                     
                     
                       
                         
                           Δ 
                           ⁢ 
                           
                               
                           
                           ⁢ 
                           
                             t 
                             k 
                           
                         
                       
                     
                   
                   ] 
                 
               
             
             
               
                 ( 
                 36 
                 ) 
               
             
           
         
       
     
       
       
         
           where {circumflex over (θ)} s ({circumflex over (π)} k ) is a subset of the most discriminating elements in {circumflex over (θ)} s ({circumflex over (π)} k ). 
         
       
     
  
   It should be noted that an event is defined by its depolarization wave. Consequently, Δt is not included in the arrival time estimation of {circumflex over (n)} k , but instead computed afterwards. The time continuous notation of Δt k  is preferred since it results in a suitable magnitude similar to the normalized morphological information in θ s . 
   The inverse correlation matrix estimate is initialized in the same way for all clusters; a simple solution is to set it equal to a scaling of the identity matrix I, 
   
     
       
         
           
             
               
                 
                   
                     Σ 
                     ^ 
                   
                   i 
                   
                     - 
                     1 
                   
                 
                 = 
                 
                   δ 
                   ⁢ 
                   
                       
                   
                   ⁢ 
                   I 
                 
               
             
             
               
                 ( 
                 37 
                 ) 
               
             
           
         
       
     
       
       
         
           where σ is a design parameter. The complete clustering algorithm for organized events is presented in the flow chart in  FIG. 2 .
 
Reduced-Complexity Clustering
 
         
       
     
  
   In order to develop a more efficient algorithm in terms of performance versus power consumption and to evaluate the power consumption itself, a simple measure of the computational complexity can be used, namely, the total number of multiplications. This quantity represents a much more complex operation than do additions. In this algorithm, where most operations are of the nature “multiply-accumulate”, the number of additions is of the same order as the number of multiplications and may thus be neglected without significant loss of accuracy. 
   In order to reduce the computational complexity, focus is put on reducing the number of multiplications. The dominant contributions of multiplication operations are found in (24) and (34) which require P(P+1) and P/2 (3P+5) multiplications, respectively, considering certain symmetry properties of 
               Σ   ^     i     -   1       .         
Furthermore, one division is required in (34). However, according to (20), (24) is performed IK times per event while (34) is performed only once per event.
 
   Based on the above performance figures, a few approximations can be identified:
         to use only the peak(s) in T(x({circumflex over (n)})) instead of a complete grid search,   to use a simplified       

   
     
       
         
           
             
               Σ 
               ^ 
             
             i 
             
               - 
               1 
             
           
           , 
         
       
     
       
       
         
            and 
           to use a likelihood based search sequence over the clusters, i.e., to start with the most likely cluster and to stop the search if a sufficiently small distance is found. 
         
       
     
  
   Simplifying the grid search from spanning both samples and clusters in (20) to span over only clusters, 
   
     
       
         
           
             
               
                 
                   d 
                   min 
                   2 
                 
                 = 
                 
                   
                     min 
                     i 
                   
                   ⁢ 
                   
                     
                       d 
                       i 
                       2 
                     
                     ⁡ 
                     
                       ( 
                       
                         n 
                         ^ 
                       
                       ) 
                     
                   
                 
               
             
             
               
                 ( 
                 38 
                 ) 
               
             
           
         
       
     
       
       
         
           the number of multiplications may be reduced by a factor K to IP(P+1). Due to sensitivity in T(x({circumflex over (n)})), the feature vectors resulting in the peaks for two different events may differ significantly, this simplification is likely to result in more clusters. A useful compromise may instead be to use the coefficients from, e.g., the 3 largest peaks in T(x({circumflex over (n)})) resulting in 3IP(P+1) multiplications per event. 
         
       
     
  
   Since a cardiac event lasts for longer time than one sample those samples which give the filter coefficients which are most similar to the cluster reference are determined. A grid search over 40 msec is preferably made. In this way coefficients of greatest importance locally are determined. For this decision T(x(n)) is considered and samples generating a peak are chosen, i.e. T(x(n−1))&lt;T(x(n))&gt;T(x(n+1)), since they indicate the probability for the presence of an event. 
   Another simplification, based on the approximation of orthogonality between the different wavelet scales as well as the RR interval, is to simplify 
             Σ   ^     i     -   1           
by only including its diagonal elements in the adaptation,
 
                     Σ   ^       i   min       -   1       ≈         α     -   1       ⁢       Σ   ^       i   min       -   1         +       (     I   -   α     )     ⁢     diag   ⁡     (       ɛ   ⁡     (   k   )       ⁢       ɛ   T     ⁡     (   k   )         )                   (   39   )               
where diag(A) returns the diagonal elements of the square matrix A. By using this approximation, the number of multiplications used for the estimation of
 
             Σ   ^     i     -   1           
is reduced to 3P. Additionally, the distance computation in (20) is simplified and may be reduced to 2IKP multiplications per event.
 
   A reasonable assumption is often that successive events originate from the same rhythms. Considering this knowledge, it would be sufficient to compute the distances for the previously selected cluster. In doing so, the number of multiplications in (38) are reduced even further. 
   Table 1 presents the different detector versions as defined by their distinguishing features and shows computational complexity for the different versions of the clustering algorithm. 
   
     
       
             
           
             
             
             
             
             
           
         
             
                 
             
             
               Features 1 
             
           
        
         
             
                 
               Version 
               
                 
                   
                     
                       
                         Σ 
                         ^ 
                       
                       
                         i 
                         ⁢ 
                         
                           
                               
                           
                           ⁢ 
                           
                               
                           
                         
                         ⁢ 
                         min 
                       
                       
                         - 
                         1 
                       
                     
                   
                 
               
               Search alg. 
               Complexity C 
             
             
                 
                 
             
             
                 
               A 
               Full 
               Interval 
               
                 
                   
                     
                       
                         IKP 
                         ⁡ 
                         
                           ( 
                           
                             P 
                             + 
                             1 
                           
                           ) 
                         
                       
                       + 
                       
                         
                           P 
                           2 
                         
                         ⁢ 
                         
                           ( 
                           
                             
                               3 
                               ⁢ 
                               P 
                             
                             + 
                             5 
                           
                           ) 
                         
                       
                     
                   
                 
               
             
             
                 
                 
             
             
                 
               B 
               Diagonal 
               Interval 
               2IKP + 3P 
             
             
                 
                 
             
             
                 
               C 
               Full 
               3 peak 
               
                 
                   
                     
                       
                         3 
                         ⁢ 
                         
                           IP 
                           ⁡ 
                           
                             ( 
                             
                               P 
                               + 
                               1 
                             
                             ) 
                           
                         
                       
                       + 
                       
                         
                           P 
                           2 
                         
                         ⁢ 
                         
                           ( 
                           
                             
                               3 
                               ⁢ 
                               P 
                             
                             + 
                             5 
                           
                           ) 
                         
                       
                     
                   
                 
               
             
             
                 
                 
             
             
                 
               D 
               Diagonal 
               3 peak 
               6IP + 3P 
             
             
                 
                 
             
           
        
       
     
   
   The total computational complexity, C, as reflected by the number of multiplications for the different algorithm versions, is presented in  FIG. 3  as a function of 1. In  FIG. 3  the solid line shows an algorithm version A, dashed line a version B, dotted line a version C, and a version D by dash-dotted line), for a feature vector with (a), P=4, and (b), P=7 elements. 
   Results 
   The results are obtained by studying the performance of the following quantities:
         algorithm versions, as presented in Table 1, and   noise tolerance, for noise-free signals and for signals with background noise of 50 μV RMS.       

   The following parameter settings have been used (unless otherwise stated),
 
α=1.05 γ=0.025 δ=50 K=40  (49)
 
   It is noted that α −1  is chosen to offer faster adaption than γ. The reason for that is that the initial estimate 
             Σ   ^     i     -   1           
is likely to be less accurate than the initial estimate {circumflex over (μ)} i . Also, δ is chosen to have the same order of magnitude as the steady state eigenvalues
 
   
     
       
         
           
             
               Σ 
               ^ 
             
             i 
             
               - 
               1 
             
           
           . 
         
       
     
   
   It should be noted that the different algorithm versions are not fully comparable in terms of performance for a specific η due to the differences in distance computation. In versions B and D, where a diagonal 
             Σ   ^       i   min       -   1           
is used, the lack of non-diagonal information results in a nonorthogonal distance which is larger than the orthogonal one. Since versions C and D make use of a limited search, the minimum distance found may differ from the global minimum distance for the event. Both these algorithmic differences imply an increase in clustering quality for a certain value of η, however, at the expense of more introduced clusters.
 
Evaluation Measures
 
   The two main quantities evaluated are clustering performance and computational complexity, see  FIG. 3 ; these two quantities are in general conflicting. In the evaluation, a cluster is assigned to that cardiac rhythm which contains the most events in the cluster. This rhythm is denoted as the dominant rhythm within the cluster. With respect to the dominant rhythm, the cluster is defined as a correct cluster, whereas it is erroneous to all other rhythms. If a rhythm is found to be dominant in more than one cluster, such clusters are first merged in the performance evaluation. The number of events in the correct cluster which belongs to the i:th dominant rhythm is equal to N D (i), while the number of events belonging to any other false rhythm in the cluster is equal to N F (i). The number of events of the dominant rhythm which are not classified in a correct cluster, i.e., missing, is equal to N M (i). 
   The performance of the algorithm is evaluated in terms of probability of a correct clustering of an event, P CC (i), and probability of a dominant event in a cluster, P DE (i). The first parameter is expressed as the share of correctly clustered events within a rhythm and is, using the above parameters, defined by 
   
     
       
         
           
             
               
                 
                   Pcc 
                   ⁡ 
                   
                     ( 
                     i 
                     ) 
                   
                 
                 = 
                 
                   
                     
                       N 
                       D 
                     
                     ⁡ 
                     
                       ( 
                       i 
                       ) 
                     
                   
                   
                     
                       
                         N 
                         D 
                       
                       ⁡ 
                       
                         ( 
                         i 
                         ) 
                       
                     
                     + 
                     
                       
                         N 
                         M 
                       
                       ⁡ 
                       
                         ( 
                         i 
                         ) 
                       
                     
                   
                 
               
             
             
               
                 ( 
                 41 
                 ) 
               
             
           
         
       
     
   
   The second parameter may be expressed as the share of dominant rhythm events within a cluster, and is defined as 
   
     
       
         
           
             
               
                 
                   
                     P 
                     DE 
                   
                   ⁡ 
                   
                     ( 
                     i 
                     ) 
                   
                 
                 = 
                 
                   
                     
                       N 
                       D 
                     
                     ⁡ 
                     
                       ( 
                       i 
                       ) 
                     
                   
                   
                     
                       
                         N 
                         D 
                       
                       ⁡ 
                       
                         ( 
                         i 
                         ) 
                       
                     
                     + 
                     
                       
                         N 
                         M 
                       
                       ⁡ 
                       
                         ( 
                         i 
                         ) 
                       
                     
                   
                 
               
             
             
               
                 ( 
                 42 
                 ) 
               
             
           
         
       
     
   
   For the case when a rhythm completely lacks a correct cluster, P DE (i) is undefined; the rhythm is then excluded from subsequent statistical computations. Averaging P CC (i) and P DE (i) over all clusters results in the global performance measures P CC  and P DE , respectively. 
   It should be pointed out that P CC (i) and P DE (i) reach their maximal value of 1 when η is sufficiently small such that the number of clusters equals the total number of beats evaluated. This is, of course, a highly undesirable solution although performance, as expressed in (41) and (42), will be excellent. For this reason, the total number of clusters, I, is a crucial parameter to be considered. Here, the average I is used together with the minimum and maximum number of clusters for a case, I min , and I max , respectively. 
   The power consumption of the algorithm is an important parameter which determines the pacemaker life span. In this study, power consumption is approximated by the computational complexity defined above as the total number of multiplications. As shown, the computational complexity depends mainly on three parameters: the feature vector length, P, the search interval, K and the cluster size, I. 
   Noise-Free Signal Clustering Performance 
     FIGS. 4   a  and  4   g  illustrate clustering performance in terms of P DE  and P CC , see  FIG. 4   a , and I min , Ī and I max , see  FIG. 4  ( b ). Thus in  FIG. 4   a  clustering performance is shown as depending on Ī for P CC  (dark bars) and P DE  (bright bars) for noise-free signals. In  FIG. 4   b , the spread between the different cases is shown as, from left to right, I min , I and I max . The presented algorithm versions are found in Table 1 and three values of I have been chosen for comparison; 3, 4 and 5. Versions A and B perform similarly for all three cases, and achieve P DE =1 and P CC =1 for Ī=4 and Ī=5, respectively, by creating an acceptable number of clusters. However, it can be seen from  FIG. 4   b  that a large difference in the number of initialized clusters between different cases is present. For version B, a slight increase in both Ī and I max  is observed for Ī=4. However, this increase is more due to an unfortunate step-like behaviour in the results for the given Ī than for any significant decrease in performance. The values of η used in  FIGS. 4   a  and  4   b  for the different versions are shown in Table 2. 
   
     
       
             
           
             
             
             
             
             
           
             
             
             
             
             
           
         
             
               TABLE 2 
             
           
           
             
                 
             
             
               Values of η used in FIG. 4. 
             
             
               Algorithm version 
             
           
        
         
             
               Ī 
               A 
               B 
               C 
               D 
             
             
                 
             
           
        
         
             
               5 
               3.6 
               4.2 
               5.4 
               5.8 
             
             
               4 
               4.6 
               4.8 
               7.0 
               7.2 
             
             
               3 
               9.6 
               9.6 
               12.0 
               10.8 
             
             
                 
             
           
        
       
     
   
   Versions C and D perform slightly worse than do versions A and B. Contrary to the latter ones, neither version achieves P DE =1 or P CC =1 for the presented Ī, see  FIG. 4   a.    
     FIG. 5   a  shows the clustering performance for version A in detail and its dependence on η. The most noteworthy result is that both P DE =1 and P CC =1 for η&lt;7. It is also clear that clustering performance deteriorates rapidly for η&gt;10. The increase in P CC  for very high values of η is due to that not all rhythms are allocated to a dominant cluster and are therefore disregarded in the performance computation. 
   In  FIG. 5   b , I min , Ī and I max  are presented as a function of the clustering threshold. Thus  FIG. 5   a  shows clustering performance in terms of P DE  (solid line) and P CC  (dashed line) as a function of η for noise-free signals, and  FIG. 5(   b ) the corresponding I min , Ī and I max . For η&lt;3, the number of initiated clusters increases rapidly with decreasing rI. Within the interval 3&lt;η&lt;7, all rhythms initiate at least one cluster, while for η&gt;7, this is not true for all cases. Removing the “worst case”, the above is true for the other cases for η&lt;10. 
   The clustering performance is exemplified for one set of parameters in  FIG. 6  using η=7. Correct clustering with minimal number of clusters is achieved for two cases while an extra cluster is initialized for two cases. The reason for the extra cluster is that, for case  2 , the temporal search interval is chosen too small for the third morphology from the left resulting in an extra cluster. For case  5  an actual difference in morphologies both on the up and down slopes of the dominant peak is discernible between the first and fourth clusters from the left. 
   Clustering for a concatenated electrogram is presented for case  3  in  FIG. 7 , where three distinct rhythm classes can be discerned, viz. normal sinus rhythm followed by supraventricular tachycardia and atrial flutter. The EGM is shown together with the clusters, represented by o, x and +, respectively, assigned for each event. The different rhythms result in three clusters. 
     FIG. 8  is a flow chart illustrating the function in broad outline of an embodiment of the apparatus according to the invention. At block  2  cardiac event features are extracted in the form of wavelet coefficients, and the event is detected, at  4 ,  6 . At block  8  is checked whether the detected event is member of a labelled cluster. If so, the event is added to a class, at  10 , and actions associated with that class are performed, at  12 . 
   If the event is not member of a labelled class it is checked if it is a member of an existing cluster, at  14 . If so, the event is added to a class, at  16 , and it is checked if it is possible to label the cluster,  18 , and if so the cluster is labelled, at  20 . 
   If the event is not a member of an existing cluster, block  14 , a new cluster is created as described above fitted to the detected cardiac event, at  22 . 
   Thus according to the invention clustering events in the EGM is performed for use in implantable CRM devices, like heart stimulators. The invention is based on feature extraction in the wavelet domain whereupon the features are clustered based on the Mahalanobis distance criterion. According to advantageous embodiments of the apparatus according to the invention simplifications of the technique is proposed in order to reduce computational complexity to obtain a more implementationally feasible solution. 
   If the apparatus according to the invention is to be used for longer periods of data analysis, large clusters, although old, may be desirable to be kept in some way, while the oldest cluster may be selected to be removed if the application is based on shorter time frames. Also, due to the short data lengths, testing of such algorithms would be of limited value. 
   By combining detector/clusterer with labelling rules of a classifier a complete detector/classifier is obtained with the possibility to more accurate therapy. 
   The labelling need not be done in real time and probably more than one event will be needed to label a cluster. Once the cluster has been labelled using clinical terms, the actions associated with the particular class will be carried out immediately, i.e. in real time. Thus, the rules needed to label the cluster are not used in identifying the event itself. 
   The rules used to label the clusters are based on characteristics of the different possible events. Instead of the exact rules, the characteristics are consequently described. 
     FIG. 9  is a block diagram of an embodiment of an implantable heart stimulator provided with the apparatus according to the invention. Electrodes  30 ,  32  implanted in the heart  34  of a patient are connected by a lead  36  to an AID converter  40 , via a switch  38  serving as overvoltage protection for the A/D converter  40 . In the A/D converter  40  the signal is A/D converted and the digital signal is supplied to a wavelet detector  42 . 
   The detector  42  decides whether a cardiac event is present or not as described earlier. Wavelet coefficients are calculated as well. Parameters of the detector  42  are programmable from the stimulator microprocessor  44 . At the detection the coefficients and the RR information are forwarded to the clusterer  46  in which it is determined to which cluster the detected cardiac event belongs, as described previously. The clusterer  46  is preferably of a leader-follower type and also the cluster parameters are programmable from the microprocessor  44 . 
   By the microprocessor  44  suitable therapy is decided depending on assigned cluster for the detected event and possible a priori knowledge about arrhythmia associated with the cluster in question. Thus it is possible to distinguish e.g. ventricular tachycardia from a sinus tachycardia by comparing the parameters with a known normal sinus rhythm. Parameters of the sinus tachycardia are then supposed to be similar to those of a normal sinus rhythm, whereas parameters of ventricular tachycardia differ significantly. 
   As an alternative the decision rules can be trained from a number of rhythms and the resulting rules are then used on test data, see Weichao Xu et al., “New Bayesian Discriminator for Detection of Atrial Tachyarrhythmias”, DOI:10.1161/01.CIR.0000012349.14270.54, pp. 1472-1479, January 2002. It is then possible to decide that a certain position of the cluster indicates e.g. a sinus rhythm, etc. Also this technique can be based on analysis of the feature vector for a cluster, and it is possible to decide if the beat is broad or narrow, large or small, or if the rhythm is regular or irregular. 
   The stimulator in  FIG. 9  also includes a pulse unit  48  with associated battery  50  for delivery of stimulation pulses to the patient&#39;s heart  34  depending on the clustering evaluation. 
   The implantable stimulator shown in  FIG. 9  includes telemetry means  52  with antenna  54  for communication with external equipment, like a programmer. 
   Although modifications and changes may be suggested by those skilled in the art, it is the intention of the inventor to embody within the patent warranted hereon all changes and modifications as reasonably and properly come within the scope of his contribution to the art.