Device for determining the cardiac activation cycle length

The device and method enhance LCL estimation by removing noise and employing adaptive thresholding and post-processing to accurately determine LCL during atrial fibrillation, addressing the challenges of noise interference and signal variability in existing technologies.

JP2025521657APending Publication Date: 2025-07-10SUBSTRATE HLDG
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
JP2024576447
Authority / Receiving Office
JP · JP
Patent Type
Applications
Current Assignee / Owner
Priority Date
2022-06-30
Filing Date
2023-06-29
Publication Date
2025-07-10

AI Technical Summary

Technical Problem

Existing methods for estimating local cycle length (LCL) during atrial fibrillation are inadequate due to significant noise interference and variability in electrocardiogram signals, especially when using a mapping catheter, leading to inaccurate determination of areas for catheter ablation.

Method used

A device and method for determining cardiac activation cycle length using a memory to store electrocardiogram data, a preparation unit to remove noise, a detector to identify activation segments, and a computer to determine LCL by analyzing the duration and periodicity of these segments, employing adaptive thresholding and post-processing techniques to enhance accuracy.

Benefits of technology

The solution provides a reliable estimation of LCL, suitable for various cardiac conditions including atrial fibrillation, particularly during catheter ablation procedures, by improving the accuracy and adaptability to varying heart signals.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 2025521657000001_ABST
    Figure 2025521657000001_ABST
Patent Text Reader

Abstract

A device for determining the cardiac activation cycle length comprises a memory (4) configured to store electrocardiogram data having time stamps and associated with channels, a preparation unit (6) configured to receive electrocardiogram data associated with a given channel and having a time window of at least 1.5 seconds, extract baseline noise and high-frequency noise therefrom, and provide preprocessed data, a detector (10) configured to receive the preprocessed data and detect non-overlapping activation segments therein, each activation segment corresponding to a window within a time window of at least 1.5 seconds, the detector (10) operating by determining local extrema in the preprocessed data and grouping them into activation segments, a computer (12) configured to determine a reference point within each activation segment and determine the activation periodicity condition by comparing the duration of the interval defined by two consecutive reference points with the duration of the time window of at least 1.5 seconds, and determine the cardiac activation cycle length from the average or median value of the interval duration when the periodicity condition indicates a periodic activation segment.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001]

[0001] The present invention relates to the field of analysis of electrocardiogram signals (hereinafter referred to as "EGM (electrogram signal)").

Background Art

[0002]

[0002] An electrocardiogram is obtained by inserting catheters into a person's heart and measuring heart signals thereby.

[0003]

[0003] The cycle length (or "CL" of "cycle length") is a measurement used to characterize the electrical activity of the atrium. In particular, this feature is used to guide a doctor during a catheter ablation operation. This is measured in milliseconds and generally reflects the time during which a complete expansion and contraction cycle of the atrium (or ventricle, or both) occurs.

[0004]

[0004] For a doctor, it is essential to monitor two values. The two values are the total CL of the atrium recorded from a stable reference catheter and the local CL (or "LCL" of "local cycle length") characteristic of the electrical activity under a mapping catheter that is different from the total CL in a pathological substrate. Next, the total CL is qualified using the expression CL, and the CL of the mapping catheter is qualified using the expression LCL.

[0005]

[0005] During atrial fibrillation (or "AF (atrial fibrillation)"), there is no common wavefront originating from the sinoatrial node, but several wavefronts reflect the potential propagation in various parts of the atrium according to the electrical remodeling of the heart tissue. For example, recent studies have shown that areas where catheter ablation can terminate persistent atrial fibrillation are characterized by high-speed and organized activity. For these reasons, the estimation of LCL is very important to assist in the rapid discovery of these areas. The relative difference between the LCL and the CL length value enables the determination of the mapped area. Ideally, clinicians should be able to utilize a reliable estimation of the LCL at a refresh rate sufficient for an optimal clinical workflow.

[0006]

[0006] This estimation is extremely difficult to perform. In fact, local electrical activity often results from several adjacent sources with different characteristics, generating EGMs that are characterized by large variations in both amplitude and waveform, making LCL analysis even more difficult. Furthermore, the mapping catheter is not fixed and moves significantly during catheter ablation. This means that the signal is significantly affected by the noise added by different sources and the far-field activity during the non-contact phase.

[0007]

[0007] Current solutions generally belong to two families. The first family is based on conventional signal processing methods, such as fast Fourier transform or the study of autocorrelation, a conventional method used to assess the cycle length of any type of periodic signal. The second family includes various adaptive thresholding methods based on the detection of ear activity by amplitude. These methods have been shaping recent trends in the field of computer-aided heart disease research.

[0008]

[0008] From here, some of these methods will be described. All propose specific preprocessing, while the latter is mostly based on the preprocessing introduced in the paper by Botteron and Smith, "A technique for measurement of the extent of spatial organisation of atrial activation during atrial fibrillation in the intact human heart" (IEEE Transactions on Biomedical Engineering, vol.42, no.6, pp.579-586, 1995). This preprocessing starts by using a bandpass filter of 40 to 250 Hz to enhance the signal corresponding to local depolarization, then rectifies the obtained signal to account for the biphasic nature of bipolar recording, and finally uses a low-pass filter with a cutoff of 20 Hz to limit the spectrum to frequencies included in a reasonable physiological range of activation rates. The frequency rate of AF is usually 4 to 10 Hz. By this technique, a signal can be obtained whose waveform is proportional to the amplitude of the initial component of the EGM and whose frequency is within the cutoff interval of the bandpass filter.

[0009] The method described in the paper "Frequency domain algorithm for quantifying atrial fibrillation organisation to increase defibrillation efficacy" by Everett et al. (IEEE Transactions on Biomedical Engineering, vol. 48, no. 9, pp. 969-978, 2001) belongs to the first family and proposes to transform the envelope of the input EGM using the fast Fourier transform (FFT). Before using this, first the Botteron preprocessing is performed. Then, windowing with a rounded waveform similar to that of Hanning or Kaiser is generally used to attenuate the discontinuities at the start and end of the segment. Fourier transform is performed on the resulting signal. The resulting power spectrum generally has a maximum peak, so-called dominant frequency, in the frequency range of 3 Hz to 20 Hz. The dominant frequency value approximately corresponds to the length of the activation cycle of the ear.

[0010] In the paper "Analysis of Atrial Electrograms" by Christopher Schilling (Vol 17 Karlsruhe Transactions on Biomedical Engineering, Karlsruhe Institute of Technology (KIT) Institute of Biomedical Engineering), an extensive and detailed analysis of atrial EGMs is proposed. The author describes in this paper segmenting the electrocardiogram into active or inactive parts at the intervals received in the input. The proposed algorithm is based on the Pan-Tompkins QRS detection algorithm described in the paper "A real-time QRS detection algorithm" (IEEE Transactions on Biomedical Engineering, pp.230-236, 1985). Instead of directly transmitting the EGM received at the input of the algorithm, a non-linear energy operator (NLEO) is used based on the theory described by Kaiser et al. in the paper "On a simple algorithm to calculate the 「energy」 of a signal" (Acoustics, Speech, and Signal Processing, 1990. ICASSP-90., 1990 International Conference on, pp.381-384, 1990). This paper describes the NLEO as simply calculating over time the energy of a discrete signal that preserves the amplitude and frequency of the input signal.

[0011] After preprocessing to remove baseline noise, the NLEO operator focuses on high-frequency and high-amplitude sections. To smooth the signal with a Gaussian sliding window, the output is processed with a low-pass filter. The effective width and cut-off frequency of the filter's impulse response are specifically selected according to the characteristics of AF activation. The non-zero parts of the obtained signal are considered active. To detect these, the authors propose an adaptive thresholding method based on the standard deviation calculated for a set of overlapping windows (weighted with coefficient k = 0.1). This part aims to emphasize high peaks and ignore low peaks. Using a 1s sliding window with a 50ms step, each point of the input signal obtains 20 thresholds (standard value for a 20-window). For each point, the minimum standard is selected as the final threshold. Finally, since the difference between two active segments must be longer than 42ms (a value related to the average duration of the refractory period), inactive segments shorter than this are discarded and adjacent active segments are merged. According to physicians, active segments less than 10ms have no physiological meaning and are marked as inactive during subsequent processing. This method is insufficiently accurate and requires specific adaptation according to the AF for each individual.

[0012]

[0012] The paper "Comparative Study of Methods for Atrial Fibrillation Cycle Length Estimation in Fractionated Electrograms" by Osorio et al. (IEEE Computing in Cardiology (CinC), 2017) describes and compares three methods using adaptive thresholds. The first one is the amplitude threshold adaptation method described in the paper "A method for quantifying atrial fibrillation organisation based on wave-morphology similarity" by Faes L. (IEEE Transactions on Biomedical Engineering 2002; 49(12 I):1504-1513). The second one is the iterative CL method described in the paper "Iterative method to detect atrial activations and measure cycle length from electrograms during atrial fibrillation" by Ng J. et al. (IEEE Transactions on Biomedical Engineering 2014; 61(2):273-278). Finally, the third one is the hybrid fractionation degree method (or "FHD" representing "hybrid fractionation degree") described in the paper "A fractionation-based local activation wave detector for atrial electrograms of atrial fibrillation" by Osorio et al. (Computing in Cardiology Conference (CinC), volume 44. IEEE, 2017; In press). Also in this case, these methods do not function satisfactorily using a mapping catheter.

[0013]

[0013] Finally, the paper "Algorithmic detection of the beginning and end of bipolar electrograms: Implications for novel methods to assess local activation time during atrial tachycardia" by Milad El. Haddad et al. (Biomedical Signal Processing and Control, Volume 8, Issue 6, November 2013, pp. 981-991) describes a method for detecting the beginning and end of each activation complex shown within a bipolar EGM sample. The two main steps of the developed algorithm are: 1) using a reference catheter to detect the start and end points of the activation complex to identify the mapping window in which the search is performed; 2) determining the local activation time (or "LAT (local activation time)") and the signal-to-noise ratio (SNR) by three different methods. This method also fails to give satisfactory results with a mapping catheter.

[0014]

[0014] None of these methods, nor any other of the first or second families, are satisfactory in that they cannot handle significantly different heart signals and are also inappropriate for use in certain cases of AF and / or the use of a mapping catheter.

Summary of the Invention

[0015]

[0015] The present invention improves this situation. To this end, the present invention provides a device for determining the cardiac activation cycle length. This device includes a memory configured to store electrocardiogram data having time stamps and associated with channels, and a preparation unit configured to receive electrocardiogram data associated with a given channel and having a time window of at least 1.5 seconds, extract baseline noise and high-frequency noise therefrom, and provide preprocessed data. The device further includes a detector configured to receive the preprocessed data and detect non-overlapping activation segments therein, each activation segment corresponding to a window within a time window of at least 1.5 seconds, the detector operating by determining local extrema in the preprocessed data and grouping them into activation segments. The device also includes a computer configured to determine a reference time point within each activation segment and compare the duration of the interval defined by two consecutive reference time points with the duration of the time window of at least 1.5 seconds to determine the periodicity condition of activation, and when the periodicity condition indicates a periodic activation segment, determine the activation cycle length from the average or median value of the interval duration.

[0016]

[0016] This device is particularly advantageous because it can determine the LCL value adapted to a number of cardiac situations including AF. Further, this device is particularly suitable for use during catheter ablation procedures.

[0017]

[0017] According to various embodiments, the present invention may have one or more of the following features. - The computer is further configured to determine the periodicity condition of activation from the ratio of the difference between the longest interval duration and the shortest interval duration divided by the average value of the interval durations. - The detector is configured to calculate the ratio of the difference between the longest interval duration and the shortest interval duration divided by the average value of the interval durations, and redetect the activation segments by changing the detection of extrema when this value exceeds a selected threshold. - The detector is configured to perform post - processing by cutting two or more activation segments whose duration is longer than twice the average value of the duration of the activation segments. - The detector is configured to perform post - processing by segmenting intervals into three groups according to their durations, searching for local extrema in the electrocardiogram data corresponding to the intervals of the group with the longest duration, and completing the activation segments with the activation segments derived from these local extrema when appropriate. - The detector is configured to perform post - processing by segmenting intervals into three groups according to their durations and merging the activation segments that define the intervals of the group with the shortest duration as the reference time point. - The detector is configured to calculate a ratio obtained by dividing the difference between the longest interval duration and the shortest interval duration by the interval of the average value of the intervals before and after post - processing, and use the post - processing only when this ratio is reduced. - The computer is configured to determine an agglomerated cycle length value from the cycle length values of several electrodes associated with the same time window.

[0018]

[0018] Further, the present invention also relates to a method for determining a cardiac activation cycle length. This method includes a) receiving electrocardiogram data having time stamps, associated with a given channel, and having a time window of at least 1.5 seconds; b) extracting baseline noise and high - frequency noise from the electrocardiogram data of operation a) to provide pre - processed data; c) detecting non - overlapping activation segments in the pre - processed data by determining local extrema in the pre - processed data and grouping them into activation segments, where each activation segment corresponds to a window within a time window of at least 1.5 seconds. d) Determine a reference time point within each activation segment, and determine the periodicity condition of activation by comparing the duration of the interval defined by two consecutive reference time points with the duration of a time window of at least 1.5 seconds. When the periodicity condition indicates a periodically activated segment, determine the activation cycle length from the average or median value of the interval durations, and includes.

[0019]

[0019] According to various embodiments, this method may have one or more of the following features. - Operation d) further includes determining the periodicity condition of activation from the ratio obtained by dividing the difference between the longest interval duration and the shortest interval duration by the average value of the interval durations. - Operation c) includes c1) calculating the ratio obtained by dividing the difference between the longest interval duration and the shortest interval duration by the average value of the interval durations, and c2) redetecting the activation segment while changing the detection of extreme values when this value exceeds a selected threshold. - Operation c) includes the following post-processing operations, namely, c3) cutting an activation segment whose duration is longer than twice the average value of the durations of the activation segments into two or more segments, c4) segmenting the intervals into three groups according to their durations, searching for local extrema in the electrocardiogram data corresponding to the intervals in the group with the longest duration, and supplementing the activation segments with the activation segments derived from these local extrema when appropriate, thereby segmenting the intervals into three groups according to their durations, c5) segmenting the intervals into three groups according to their durations and merging the activation segments that define the intervals in the group with the shortest duration as the reference time point, including one or more of them. - Operation c) further includes c6) calculating the ratio obtained by dividing the difference between the longest interval duration and the shortest interval duration by the duration of the average value of the intervals before and after the post-processing, and using the post-processing only when this ratio is reduced.

[0020]

[0020] Further, the present invention relates to a computer program including instructions for executing the method according to the present invention, a data storage medium on which such a computer program is recorded, and a computer system including a processor coupled to a memory on which such a computer program is recorded.

[0021]

[0021] Other features and advantages of the present invention will become even more apparent from the following description taken in conjunction with the drawings, which are given by way of example and not of limitation.

Brief Description of the Drawings

[0022]

Figure 1

Figure 2

Figure 3

Figure 4

Figure 5

Modes for Carrying Out the Invention

[0023]

[0022] The drawings and the following description basically include elements of a particular nature. Accordingly, they can be used not only to better understand the present invention, but also, as appropriate, to contribute to its definition.

[0024]

[0023] This description may include elements that may be protected by copyright. The owner of the rights has no objection to identical reproduction by any of the patent documents or their descriptions as seen in the public record, and in other cases, fully maintains the rights.

[0025]

[0024] Figure 1 shows an overall view of the device 2 according to the present invention. The device 2 includes a memory 4, a preparation unit 6, a filter 8, a detector 10, and a computer 12. As will be seen below, the filter 8 is optional.

[0026]

[0025] The memory 4 receives data on which the functions and calculations performed by the device 2 are carried out. The device 2 mainly processes electrocardiogram data, that is, electrical signals measured by a multi-electrode catheter during an intracardiac procedure. These signals are generally digital, each sample having an amplitude value, and on the one hand, a time stamp is associated, and on the other hand, an electrode identifier at which the sample is acquired is associated. Other data may be associated with the electrocardiogram data, but these data are sufficient to define what is called a channel, that is, an electrical measurement value referenced over time. The electrode identifiers make it possible to distinguish them, generally taking into account that the measurements are carried out simultaneously by several channels. The catheter can be unipolar, bipolar, or follow any other technique. As will be seen below, these data are converted after noise removal in order to determine the activation segments. The activation segments represent the continuous time portions that a physician considers the electrocardiogram data to indicate the activation of the heart tissue under the electrode. These activation segments are conveniently defined by a start time stamp and an end time stamp. Next, the activation segments specify, for the electrode identifier under consideration, both the time range corresponding to these time stamps and the corresponding electrocardiogram data.

[0027]

[0026] The memory 4 can be composed of any type of data storage capable of receiving digital data, that is, a hard disk, a flash memory disk, any form of flash memory, random access memory, magnetic disk, storage distributed locally or in the cloud, etc.

[0028]

[0027] In the examples described in this specification, the memory 4 receives all of the data described above, more generally all of the data related to the device 2, that is, the programs and software that instantiate the preparation unit 6, the filter 8, the detector 10, and the computer 12, their parameters, the data received at the input, the output data, and the data stored in the buffer memory. The data calculated by the device can be stored in any type of memory similar to the memory 4 or in the latter. These data can be erased or retained after the device has executed the task.

[0029]

[0028] The preparation unit 6, the filter 8, the detector 10, and the computer 12 access the memory 4 either directly or indirectly. These can be in the form of appropriate computer code executed on one or more processors. With regard to the processor, it should be understood that any processor can be adapted to the calculations described below. Such a processor can be made in any known way in the form of a personal computer, laptop, tablet or smartphone, a dedicated chip of the FPGA or SoC type, grid or cloud computing resources, a cluster of graphics processors (GPUs), a microcontroller, or any other form of microprocessor that can provide the computing power required for the embodiments described below. Also, one or more of these elements can be made in the form of a special electronic circuit such as an ASIC. Combinations of processors and electronic circuits can also be considered. In the case of a machine learning unit based on gradient reinforcement, a processor dedicated to machine learning can also be considered.

[0030]

[0029] Since the preparation unit 6, the filter 8, the detector 10, and the computer 12 perform separate functions, they are described separately in this specification. This modular description is intended to better understand the functional blocks implemented by the device 2. Nevertheless, it goes without saying that two or more of these elements can be grouped if their functional relationships are equivalent.

[0031]

[0030] FIG. 2 shows an example of the operation loop of the device of FIG. 1. This enables a better understanding of the functions of the preparation unit 6, the filter 8, the detector 10, and the computer 12.

[0032]

[0031] Next, the electrocardiogram data is processed in a 1.5-second time window. Alternatively, this time window may be made wider. For this reason, next, the term "signal" or "channel" refers to electrocardiogram data associated with a 1.5-second time window and a given electrode identifier. Further, the following description is given for one channel. Still, it is possible to process several synchronized channels in parallel, and as will be seen below, this allows the determination of the aggregated LCL value.

[0033]

[0032] In the first operation 200, the device 2 calls the function PreProc() executed by the preparation unit 6. The function PreProc() receives a channel as an argument and returns a preprocessed signal. Hereinafter, this signal is called PPS. In the example described in this specification, the preprocessing operation, on the one hand, includes suppressing baseline noise by a Butterworth filter with a critical frequency of 10 Hz ("baseband wander removal"), and on the other hand, includes suppressing high-frequency noise using the discrete wavelet transform thresholding method described in the paper "De-noising by soft-thresholding" by Donoho et al. (IEEE Transactions on Information Theory, vol. 41, no. 3, pp613 - 627, May 1995, doi:10.1109 / 18.382009). These operations are recommended by the applicant, but it is also possible to supplement or replace them with other preprocessing operations, such as those described in the previously cited Botteron paper.

[0034]

[0033] Then, in optional operation 210, filter 8 executes function Nois() that analyzes the PPS signal to determine whether it is available or not too noisy. In the example described herein, function Nois() uses three consecutive filters, namely, a kurtosis filter, a motion detection filter, and an amplitude filter for analyzing the PPS signal.

[0035]

[0034] The cardiac signal is basically a noisy isopotential line of several well - formed single - phase or poly - phase waves representing the passage of the electric wave under the electrodes. Thus, the distribution of values is expected to be centered around zero, but there is a significant tail (when the signal corresponds to periodic cardiac activity, the values of the tail represent the potential related to activation). To describe this probability distribution shape, conventionally, a statistical measure of kurtosis has been used. Kurtosis discriminates whether the tail of a given distribution contains extreme values. If the kurtosis is less than 2.5 or negative, the signal is considered noise and discarded. Alternatively, it is possible to ignore this filter, select a different threshold, or use a method other than kurtosis.

[0036]

[0035] The motion detection filter aims to detect changes in motion, contact / non - contact phase, or activities related to catheter insertion. For this purpose, the signal is divided into three parts of 0.5 seconds each, the variance of each part is calculated, and the ratio of the highest variance to the lowest variance is compared with a threshold in the range of 10^6. This threshold has been identified as particularly advantageous during the research by the applicant. Alternatively, it is possible to ignore this filter, hold a different threshold, or hold a different method.

[0037]

[0036] The amplitude filter aims to reflect the fact that extremely low voltage signals that are not visible during the procedure mainly represent noise. For this purpose, the channel is thresholded at 0.03 mV, that is, all amplitudes lower than this threshold are reset to 0. Similarly, high amplitude signals exhibit characteristics of large noise during catheter insertion or during the burst stimulation mode. For this reason, the channel uses a threshold of 3.6 mV, that is, all amplitudes higher than this threshold are reset to 3.6 mV. Alternatively, it is possible to ignore this filter or change the threshold.

[0038]

[0037] Then, in operation 220, for the main operation of device 2, that is, the detection of the activation segment, the signal PPS (with or without noise removal) is processed by detector 10. The purpose is to identify which part within the channel corresponds to the cardiac activity. For this purpose, detector 10 executes the function DetAct(). An example of its implementation is described by FIGS. 3 and 4.

[0039]

[0038] Once the activation segment is detected, in operation 230, computer 12 executes the function ALCL(). The purpose of doing this is to determine the LCL value of the channel if possible, and to determine the aggregated LCL value if several channels are processed and each LCL value allows this.

[0040]

[0039] Finally, the loop ends at operation 299, and device 2 can process one or more channels corresponding to subsequent windows.

[0041]

[0040] Figure 3 shows an example of the implementation of the function DetAct(). In operation 300, the detector 10 executes a function Filt() that performs adaptive threshold processing of the PPS signal. For this purpose, the function Filt() analyzes the entire signal and retains only the data whose absolute value amplitude exceeds the 95th percentile, i.e., 5% of the highest values. The other values are reset to 0. The signal thus obtained is denoted by the reference FPPS (representing the "filtered preprocessed signal").

[0042]

[0041] Subsequently, in operation 305, the function Ext() is executed on the signal FPPS to detect local extrema. Due to the previous operation 300, the detected extrema correspond to the noise-free peaks of the initial signal. A number of methods for identifying these local extrema are known to those skilled in the art, and these are returned as the output of Table E[].

[0043]

[0042] Once an extreme value is determined, in operation 310, the function Det() is executed to identify the activation segments. The overall idea is that an activation segment is part of a signal that contains relatively close extreme values that can be separated by zero values, and that all values of the signal are zero between two distinct activation segments. For this reason, in this example, the function Det() uses a sliding window and is configured such that the number of extreme values within the window is associated at each point in time. Thereby, an estimation of the density of extreme values can be performed. Regarding the configuration, between two segments, since all values are zero, the values are zero. Thereby, the boundaries of the activation segments stored in the table AS[] can be defined. In the example described herein, the table AS[] includes the start time stamp and the end time stamp of each segment, which are sufficient to identify all of the electrocardiogram data or the corresponding or PPS signal or FPPS. Alternatively, these data can be stored in the table AS[]. Also, the function Det() determines a reference time point for each activation segment. In the most preferred variant, this time point is the one at which the signal has the maximum absolute value of the signal FPPS. Alternatively, this can be selected in a different manner. For example, this can be determined by the start time stamp or the end time stamp of the activation segment in a state determined by a centroid type formula of the non-zero values of the electrocardiogram data of the activation segment under consideration, or by obtaining the average value of a limited number of time stamps (e.g., 3 maximum values) of the electrocardiogram data of the activation segment having the maximum absolute value.

[0044]

[0043] In a preferred variant of the invention, operations 300, 305, and 310 may be replaced by the detection of local extreme values that are retained only if the extreme values belong to the 95th percentile. Subsequently, a normal kernel (Gaussian window) is placed at the center of each extreme value. Overlapping kernels are added to give an estimate of the density of the smoothed kernels. For this reason, the resulting density represents the distribution of extreme values with respect to the signal, and thus the boundaries of the activation segments can be found by targeting the infinitesimal area of the density. This corresponds to a kernel density estimation algorithm as described, for example, at the following address.

[0045]

[0044] https: / / web.archive.org / web / 20220414175413 / https: / / en.wikipedia.org / wiki / Kernel_density_estimation

[0046]

[0045] Then, in operation 315, the function R() is executed on the table of the activation segment AS. The reference points of each activation segment form an interval of two each. The applicant has discovered that these intervals are very important, and it is extremely important that they have some periodicity and similarity to each other.

[0047]

[0046] The function R() calculates the ratio r according to the following formula. r = (max(i) - min(i)) / mean(i) Here, max(i) and min(i) are the longest and shortest interval durations, respectively, among the intervals defined by the reference points of the table AS[], and mean(i) is the average value of the interval durations defined by the reference points of the table AS[]. The value r is robust against the absolute value amplitude and is a value of variability that captures the spread of the values. The applicant has found that a value of r of 0.5 is particularly discriminative in order to obtain reliable results in the case of AF. Alternatively, this value can be between 0.35 and 0.75. The ratio r is a measure of variability and the range of values. The formula described in this specification is preferred, but other formulas for evaluating this ratio can also be retained as long as they capture the measurement of variability and the range of values.

[0048]

[0047] If the ratio r is greater than 0.5, this means that the intervals defined by the activation segments are not sufficiently similar. One of the causes can be the function Filt(). For this reason, operations 300, 305, and 310 are repeated in operations 325, 330, and 335. However, operation 325 executes the function Filt2() with the threshold set to the 90th percentile. Alternatively, the threshold can be set lower than the 90th percentile. Operation 340 tests whether the ratio obtained by these operations is smaller than that of operation 320. If this is the case, the table AS[] of operation 340 is replaced by the table ASm[] of operation 335.

[0049]

[0048] After operation 340, or if in operation 320 the ratio r is less than 0.5, or if operations 325 to 335 do not allow for an improvement in the ratio r, in operation 350 a test is performed to determine whether the channel is characterized by a slow rhythm. For this purpose, the function SR() is executed to test whether more than 6 activation segments are found within the channel. In fact, if this is the case, the LCL value may be greater than 300 ms. This is possible, and the cause can be various noise removal operations or the influence of long distances. For this reason, if a slow rhythm is detected, in operation 355 operation 310 is repeated, but with a widened sliding window. In this same operation, segments with an amplitude less than 90% of the maximum amplitude of the channel are suppressed. Operation 360 tests whether the ratio r has been improved by this, and if this is the case, in operation 365 the table AS[] is replaced by the table ASm[] generated in operation 355.

[0050]

[0049] Finally, in operation 370, the function DetAct() starts the function PostProc(), and then in operation 399 the function DetAct() ends.

[0051]

[0050] Operations 350, 355, 360, and 365 are optional, and operations 320, 340, and 345 can also proceed directly to operation 370.

[0052]

[0051] Next, with reference to FIG. 4, an example of the implementation of the function PostProc() will be described. The principle of the function PostProc() is as follows. - The post-processing targets r smaller than 0.5. - Each process is repeated up to 3 times, and each iteration is only allowed if it improves the ratio r. - First, it is required to cut overly long activation segments, and then an attempt is made to process the intervals.

[0053]

[0052] Therefore, in the operation by operation 400, the function PostProc() starts by testing the ratio r. In fact, when the function PostProc() is called after operation 320, the ratio r is necessarily lower than 0.5, and post-processing is not required. If this is the case, the function ends in operation 499.

[0054]

[0053] If this is not the case, in operations 405, 410, and 415, the first post-processing is executed to cut overly long activation segments. For this reason, in operation 405, the function Div() is executed by detector 10 to cut an activation segment whose duration is longer than twice the average value of the durations of all activation segments into two. Operation 410 tests whether this operation improves the ratio r, and if this is the case, in operation 415, the table AS[] is replaced with the table ASm[] generated in operation 405.

[0055]

[0054] After this first post-processing, in operation 420, the indices i and j are initialized to 0. These indices can ensure that the following two post-processings are not repeated more than 4 times.

[0056]

[0055] The second post-processing includes operations 425, 430, 435, 440, 445, 450, 455, and 460. In operation 425, the function ClustL() is executed on the table AS[]. This function is intended to segment the intervals of the table AS[] into three groups, namely, a group of "short" intervals, a group of "average" intervals, and a group of "long" intervals. The philosophy behind this post-processing is that the group of "average" intervals should represent intervals that do not require post-processing, unlike the group of "short" intervals and the group of "long" intervals. This second post-processing targets the group of "long" intervals, and the function ClustL() returns a table C[] that includes all the intervals of the group of "long" intervals. In the example described herein, this segmentation is performed by the jenkspy programming library (see the address https: / / pypi.org / project / jenkspy / ), which implements the Fisher-Jenks natural break algorithm (for example, see the address https: / / web.archive.org / web / 20220617141817 / https: / / en.wikipedia.org / wiki / Jenks_natural_breaks_optimization). This algorithm has the advantage of being unsupervised. Other algorithms (such as kmeans) may be used.

[0057]

[0056] Thereafter, in operation 430, an attempt is made to reprocess the original channel signal S to detect activations missed within the intervals of table C[]. The idea in this specification is that various noise removal operations smoothed out some of the extrema, creating intervals that were too long. For this purpose, operation 430 executes function Filt2() only for these intervals with respect to the channel signal S prior to operation 200. Operation 435 is identical to operations 305 and 330 and executes function Ext() to determine the extrema of the signal FS obtained from operation 430. Thereafter, in operation 440, the resulting table E[] is processed in a manner similar to operations 310 and 335, executing function Detm() in the same way as function Det(), except that function Detm() replaces the activation segments of table AS[] corresponding to the intervals of table C[] with what it found and stores everything in table ASm[]. As before, the purpose is to reduce the value of ratio r, which is verified in operation 445. If this is the case, in operation 450 the index i is incremented and in operation 455 table AS[] is replaced with table ASm[]. Finally, in operation 460, the index i is tested to limit the iterations of operations 425 and 455 to 3. If this is the case, the second post - processing loop resumes at operation 425. If this is not the case, or if the test in operation 445 is negative, the third post - processing is launched.

[0058]

[0057] The third post - processing, as described above, is related to groups of "short" intervals. For this purpose, operations 465, 470, 475, 480, and 485 are repeated up to 3 times as long as ratio r is improved.

[0059]

[0058] Therefore, the segmentation of operation 425 is repeated in operation 465, but using the function ClustS(), instead of table C[], a table A[] containing the intervals of the group of "short" intervals is returned. Then, in operation 470, the function Mg() tests the intervals of table A[] and verifies whether the value obtained by multiplying its duration by 1.75 is longer than the longest duration among the intervals of the group of "average" intervals. If this is the case, this means that the intervals of table A[] are not sufficiently different from the group of "average" intervals and should not be subject to post-processing. If this is the case, for each interval of table A[], the function Mg() modifies table AS[] to merge two activation segments for which each reference time point functions as a boundary for the interval, and stores the result in table ASm[]. As before, the aim is to reduce the value of the ratio r, which is verified in operation 475. If this is the case, in operation 480 the index j is incremented and in operation 485 table AS[] is replaced by table ASm[]. Finally, in operation 490, the index j is tested to limit the repetition of operations 465 and 485 to 3, and if this is the case, the second post-processing loop resumes in operation 465. If this is not the case, or if the test in operation 475 is negative, the third post-processing is completed and the function PostProc() ends in operation 499.

[0060]

[0059] For the function PostProc(), a number of variations can be considered. Thus, it is possible to omit one or two of the three post-processings, or to change their order, although the applicant has found that this order gives the best results. Furthermore, to increase the speed, it is also possible to execute the second and third post-processings simultaneously. Furthermore, the parameters of these post-processings can vary, as well as the ratio threshold or the number of repetitions.

[0061]

[0060] In the functions DetAct() and PostProc(), a number of reprocessings are conditional on reducing the ratio r. In some variations, it is also possible to omit this condition.

[0062]

[0061] Once the linear function DetAct() is completed, the table AS[] contains all of the detected activation segments and the corresponding reference time points that define the intervals.

[0063]

[0062] FIG. 5 shows an example of the execution of a function ALCL() performed by the computer 12 in order to estimate the LCL value and, optionally, the aggregated LCL value.

[0064]

[0063] The function ALCL() includes two parts. In the first part, the function attempts to calculate the LCL value of the channel that has just been processed and then determine whether the aggregated LCL value can also be calculated.

[0065]

[0064] The first part begins with an operation 500 in which the function Per() is executed. The function Per() is intended to determine whether the intervals defined by the activation segments define periodic activation. For this purpose, in the example described herein, the function Per() tests the following three conditions. - Calculate the duration of each interval and verify that none of them exceed one quarter of the channel. - Measure the total duration of the activation segment and verify that this occupies more than half of the channel. - Recalculate the ratio r and verify that this is less than 0.6.

[0066]

[0065] If any one of these three conditions is not satisfied, the channel is considered unavailable and the LCL value is set to 0 in operation 502.

[0067]

[0066] In other cases, the channel is considered periodic and, optionally, operation 505 verifies whether the rhythm of the channel is slow. If this is the case, in optional operation 510, the table AS[] is completed using the previous table data AS[] in the buffer memory because there is a sufficient activation segment to calculate the LCL value.

[0068]

[0067] Then, in operation 515, the function Calc() determines from table AS[] the LCL value and a value CV representing the variance of the interval durations within table AS[]. In the example described herein, the LCL value is obtained by determining the median of the interval durations within table AS[]. Alternatively, a value derived from the mean or median, the mean value or other centroid may be used. In the example described herein, the value CV is obtained by dividing the standard deviation of the interval durations by these mean values.

[0069]

[0068] Next, in operation 520, the value CV is tested to determine whether the intervals are sufficiently homogeneous with respect to each other. If this value exceeds 0.5, it is considered not to apply, and the LCL value is set to 0 in operation 502.

[0070]

[0069] Finally, in operation 530 where the LCL value is introduced into table LCL[], the first part of the function ALCL() ends. The value "0" indicates that the LCL value is associated with an aperiodic channel or is not sufficiently homogeneous.

[0071]

[0070] If table LCL[] has received all the LCL values of each channel over a given time period, the function ALCL() can attempt to determine the aggregated LCL value in the second part.

[0072]

[0071] For this purpose, in operation 535, the function LCL() tests table LCL[] to determine whether it contains sufficient LCL values for use. If this is not the case, the function ends in operation 599.

[0073]

[0072] If this is the case, in operation 540, the table ALCL[] receives the LCL values that can be used by executing the function Sel(). Thereafter, in operation 545, which is the same as operation 515, the computer 12 executes the function Calc() that determines the aggregated LCL value ALCL of the LCL values and the value CV. Alternatively, using the function Calc2(), the table ALCL[] can be segmented into two groups, and if the centers of the two groups are separated by more than 15%, a value derived from the average value or the median can be returned, and in other cases, the centroid of the group with the highest value can be returned.

[0074]

[0073] Thereafter, in operation 550, in the example described herein, the value CV is tested by the function CV() that determines the following two conditions. - The first condition is related to the fact that the value CV must be lower than 0.3. - The second condition verifies that the value ALCL has a difference of 50% or less from the previous value ALCL.

[0075]

[0074] The first condition is related to the consistency of the LCL values, taking into account that the LCL values are local measurements that are close. The second condition is of the nature of the operation and aims to avoid transmitting information that may appear contradictory to the physician.

[0076]

[0075] If one of these two conditions is not satisfied, the value ALCL is considered unusable and is set to 0 in operation 555. In other cases, the calculation of the estimated value of the aggregated LCL value is successful and can be returned together with all of the LCL values of the corresponding electrodes.

Claims

**Claim 1** A device for determining a cardiac activation cycle length, comprising a memory (4) configured to store electrocardiogram data having time stamps and associated with channels, and a preparation unit (6) configured to receive electrocardiogram data associated with a given channel and having a time window of at least 1.5 seconds, extract baseline noise and high-frequency noise therefrom, and provide preprocessed data. A detector (10) configured to receive the preprocessed data and detect non-overlapping activation segments therein, each activation segment corresponding to a window within the at least 1.5-second time window, the detector (10) operating by determining local extrema in the preprocessed data and grouping them into activation segments. A computer (12) configured to determine a reference point within each activation segment and compare the duration of the interval defined by two consecutive reference points with the duration of the at least 1.5-second time window to determine the periodicity condition of the activation, and when the periodicity condition indicates a periodic activation segment, determine the activation cycle length from the average or median value of the interval duration. **Claim 2** The device according to claim 1, wherein the computer (12) is further configured to determine the periodicity condition of the activation from the ratio of the difference between the longest interval duration and the shortest interval duration divided by the average value of the duration of the intervals. **Claim 3** The device according to claim 1 or 2, wherein the detector (10) is configured to calculate the ratio of the difference between the longest interval duration and the shortest interval duration divided by the average value of the duration of the intervals, and redetect the activation segments by changing the detection of the extrema when this value exceeds a selected threshold. **Claim 4** The device according to any one of claims 1 to 3, wherein the detector (10) is configured to perform post-processing by cutting two or more activation segments having a duration longer than twice the average value of the duration of the activation segments. **Claim 5** The detector (10) is configured to perform post - processing by segmenting the intervals into three groups according to their durations, searching for local extrema in the electrocardiogram data corresponding to the intervals of the group with the longest duration, and, where appropriate, completing the activation segments by activation segments derived from these local extrema, the device according to one of claims 1 to 4.

6. The detector (10) is configured to perform post - processing by segmenting the intervals into three groups according to their durations and merging the activation segments that define the intervals of the group with the shortest duration as the reference time point, the device according to one of claims 1 to 5.

7. The detector (10) is configured to calculate the ratio of the difference between the longest interval duration and the shortest interval duration to the interval of the average value of the intervals before and after post - processing and to use the post - processing only if this ratio is reduced, the device according to one of claims 4 to 6.

8. The computer (12) is configured to determine an aggregated cycle length value from cycle length values of several electrodes related to the same time window, the device according to one of claims 1 to 7.

9. A method for determining a cardiac activation cycle length, comprising: a. Receiving electrocardiogram data having time stamps, associated with a given channel, and having a time window of at least 1.5 seconds; b. Extracting the baseline noise and the high - frequency noise from the electrocardiogram data of operation a) to provide pre - processed data; c. Detecting non - overlapping activation segments in the pre - processed data by determining local extrema in the pre - processed data and grouping them into activation segments, each activation segment corresponding to a window within the at least 1.5 - second time window; d. Determine a reference time point within each activation segment, and compare the duration of the interval defined by two consecutive reference time points with the duration of the at least 1.5 - second time window to determine the periodicity condition of the activation. When the periodicity condition indicates a periodically activated segment, determine the activation cycle length from the average value or the median value of the duration of the interval. A method, including the above. **Claim 10** The method according to claim 9, wherein operation d) further includes determining the periodicity condition of the activation from the ratio obtained by dividing the difference between the longest interval duration and the shortest interval duration by the average value of the duration of the interval. **Claim 11** The method according to claim 9 or 10, wherein operation c) includes: c1) calculating the ratio obtained by dividing the difference between the longest interval duration and the shortest interval duration by the average value of the duration of the interval; c2) when this value exceeds a selected threshold, redetecting the activation segment while changing the detection of the extreme values. **Claim 12** Operation c) includes the following post - processing operations, namely: c3) Cutting an activation segment whose duration is longer than twice the average value of the duration of the activation segment into two or more segments. c4) Segmenting the intervals into three groups according to their durations, searching for local extreme values in the electrocardiogram data corresponding to the intervals in the group with the longest duration, and supplementing the activation segment with the activation segments derived from these local extreme values when appropriate, thereby segmenting the intervals into three groups according to their durations. c5) Segmenting the intervals into three groups according to their durations and merging the activation segments that define the intervals in the group with the shortest duration as the reference time point. The method according to any one of claims 9 to 11, including one or more of the above. **Claim 13** The method according to claim 12, wherein operation c) further includes: c6) calculating the ratio obtained by dividing the difference between the longest interval duration and the shortest interval duration by the average duration of the interval before and after the post - processing, and using the post - processing only when this ratio is reduced. **Claim 14** A computer program comprising instructions for executing the method according to one of claims 10 to 13 when implemented by a computer.

15. A computer-readable data storage medium on which the computer program according to claim 14 is recorded.