Abstract:
Apparatuses and methods for extracting, de-noising, and analyzing electrocardiogram signals. Any of the apparatuses described herein may be implemented as a (or as part of a) computerized system. For example, described herein are apparatuses and methods of using them or performing the methods, for extracting and/or de-noising ECG signals from a starting signal. Also described herein are apparatuses and methods for analyzing an ECG signal, for example, to generate one or more indicators or markers of cardiac fitness, including in particular indicators of atrial fibrillation. Described herein are apparatuses and method for determining if a patient is experiencing a cardiac event, such as an arrhythmia.

Description:
CROSS REFERENCE TO RELATED APPLICATIONS 
       [0001]    This patent application claims priority to U.S. provisional patent application No. 61/723,788, filed Nov. 8, 2012, and titled “ATRIAL FIBRILLATION DETECTION”, and U.S. provisional patent application No. 61/802,091, filed Mar. 15, 2013 and titled “ATRIAL FIBRILLATION DETECTION”. The disclosures of these applications are herein incorporated by reference in their entirety. 
     
    
     INCORPORATION BY REFERENCE 
       [0002]    All publications and patent applications mentioned in this specification are herein incorporated by reference in their entirety to the same extent as if each individual publication or patent application was specifically and individually indicated to be incorporated by reference. 
       FIELD 
       [0003]    The devices, systems and methods described herein relate to electrocardiogram (ECG) monitoring and, more specifically, apparatuses (including systems and devices) and methods for processing an ECG signal to reduce noise in the signal and/or analyze the ECG signal(s), including detection of signals indicative of normal and abnormal (e.g., atrial fibrillation) heart beats. 
       BACKGROUND 
       [0004]    The analysis of cardiac electrophysiological activity such as electrocardiograms (ECGs) increasingly informs the management of cardiac disorders and irregularities, such as atrial fibrillation. Skin surface ECG signal analysis is typically based on waveform time domain parameters, and may depend heavily on the quality of the signal received and analyzed. Thus, the higher quality of the recorded ECG, the more reliable the information that can be extracted from the recorded waveform. Such waveforms may be analyzed (typically after standard filtering and “cleaning” of the signal) for various indicators useful to detect cardiac events or status, such as cardiac arrhythmia detection and characterization. Indicators may include heart rate variability (HRV), cardiac wave morphology, R wave-ST segment and T wave amplitude analysis. 
         [0005]    Recently, hand-held monitors have been developed that work with mobile telecommunications devices. For example, U.S. Pat. No. 8,509,882 and U.S. Pat. No. 8,301,232 to Albert describe hand-held ECG devices that may be used with mobile telecommunications devices. Because the accurate interpretation and analysis of ECG signals requires relies upon the quality of the signals received/recorded, techniques for cleaning up signals to remove artifacts has been proposed. Known cardiac monitoring systems that may include detection and characterization of cardiac markers many not be sufficiently robust to handle signals, particularly including signals taken with handheld ECG devices including those mentioned above, which may use dry electrodes that can be held against the patient&#39;s skin by the patient or medical professional, which may result in artifacts such as motion artifacts, environmental artifacts, and contact artifacts. Inaccurate and subjective evaluation and diagnosis may cause unexpected delay in cardiac rhythm management, drug delivery and emergency treatment. 
         [0006]    In addition, existing apparatuses and methods for de-noising ECG signals are typically applied before interpreting an ECG signal. As mentioned, although it is beneficial to interpret signals that are as noise-less and representative of the actual electrical activity of the heart as possible, most apparatuses and methods for de-noising alter a putative ECG signal before it is analyzed for cardiac markers, possibly removing non-noise signal when removing artifactual components. Thus, in some variations it may be beneficial to at least partially interpret signals before and/or during de-noising procedures. 
         [0007]    An example of an idealized version of a typical ECG waveform is shown in  FIG. 9 , illustrating multiple cycles. In general, ECG devices may include one, two, three, or more (e.g., six, twelve) leads. It would be helpful to provide robust ECG signal conditioning and analysis of any or all leads including 12-lead ECG and multi-channel intra-cardiac electrograms (ICEG) devices. 
         [0008]    Furthermore, known waveform morphology parameter analysis systems, such as P wave, QRS complex, ST segment, T wave analysis systems, are used for cardiac arrhythmia monitoring and identification, e.g., of atrial fibrillation (AF), myocardial ischemia (MI) and ventricular tachycardia/fibrillation (VT/VF). However, known waveform morphology parameter analysis is often subjective and time-consuming, and requires extensive medical expertise and clinical experience for accurate interpretation and proper cardiac rhythm management. 
         [0009]    Known clinical methods use electrophysiological (EP) surface ECG and ICEG signal voltage amplitude analysis for arrhythmia detection to identify and characterize cardiac abnormality and arrhythmia related information (such as timing, energy). Known clinical diagnosis standards may be of limited value in some cases. For example, myocardial ischemia and infarction detection is usually based on ST segment voltage deviation for ischemia event detection (e.g. 0.1 mV elevation). Known methods for cardiac arrhythmia analysis, such as myocardial ischemia event detection and evaluation, rely on a repolarization signal portion, such as ST segment and T wave morphology changes. Such methods lack capability for quantitative characterization of cardiac arrhythmia severity and may cause a false alarm. For example amplitude voltage ST segment measurement fails to provide a reliable severity level of an ischemia event. Heart rate variability is unable to provide an arrhythmia urgency level. 
         [0010]    The apparatuses, including systems and devices, and methods implementing or operating them described herein may address the deficiencies and related problems discussed above. 
       SUMMARY OF THE DISCLOSURE 
       [0011]    The present invention relates to apparatuses (devices and systems) and methods for extracting, de-noising, and analyzing electrocardiogram signals. Although the apparatuses and methods described herein may be used with, or as part of, any ECG system, including single-lead and multiple-lead systems, any of these apparatuses and methods described herein may be used with hand-held ECG devices including ECG devices for use with a mobile telecommunications device such as a smartphone. 
         [0012]    In general, the term “apparatus” is used herein to include devices and systems. These may include hardware, software, firmware, or combinations thereof. Any of the apparatuses described may be implemented as part of an ECG system or in communication with an ECG system, which may include two or more pairs of electrodes. Any of the apparatuses described herein may be implemented as a (or as part of a) computerized system. In particular, any of the apparatuses described herein may include non-transitory computer-readable storage medium storing a set of instructions capable of being executed by a processor, that when executed by the processor, causes the processor to extract an electrocardiogram (ECG) signal by performing any or all of the steps described herein. 
         [0013]    For example, described herein are apparatuses and methods of using them or performing the methods, for extracting and/or de-noising ECG signals from a starting signal. An extracted ECG signal typically includes an ECG signal that is isolated from the starting signal by removing artifacts (e.g., noise) as described herein. The starting signal may be a raw signal, such a signal received directly from a pair of ECG electrodes or received after processing. The starting signal may be pre-filtered, amplified, de-noised, or conditioned. The starting signal may be a combined signal combining multiple signals from a single lead or from multiple leads. 
         [0014]    Also described herein are apparatuses and methods for analyzing an ECG signal, for example, to generate one or more indicators or markers of cardiac fitness, including in particular indicators of atrial fibrillation. These apparatuses and methods may include apparatuses configured (using software, hardware, firmware, and combinations of these) to determine or generate one or more indicator or markers during and/or after the process of extracting an ECG signals. 
         [0015]    Thus, described herein are apparatuses and method for determining if a patient is experiencing a cardiac event, such as an arrhythmia. Any of the apparatuses and methods described herein may include a report (such as a signal, alarm, warning, communication, display, etc.) indicating the presence, absence, or likelihood of an arrhythmia based on the extracted ECG. 
         [0016]    In any of the variations described herein, the apparatus and/or method may be configured to clean up (e.g., de-noise, remove artifact, etc.) an ECG signal from a starting signal. The final signal, which may be referred to as a final ECG signal, a cleaned ECG signal, a second ECG signal, or the like, may be displayed, recorded, and/or transmitted. Thus, any of the apparatuses described herein may include hardware, software and/or firmware for the display, recording and/or transmission of the final ECG signal. For example, any of these apparatuses may include a display, alarm, read-out, LED, or the like for presenting the processed signal and/or information extracted from the processed signal during or after processing. Any of these apparatuses may include a memory, storage, storage media, or the like for storing the processed signal and/or information extracted from the processed signal during or after processing. Any of these apparatuses may include a transmitter, receiver, transceiver, antenna, wireless connector, ultrasound transmitter, or the like, for transmitting the signal and/or information extracted from the processed signal during or after processing. 
         [0017]    In general, the methods and apparatuses described herein are configured to operate on a starting signal by analyzing and signal to roughly identify putative regions of the ECG signal, and analyze the putative regions by correlating the regions with each other to determine identify highly correlated regions. Highly correlated regions may correspond to “typical” waveforms for in the initial signal. Such correlated regions may then be separately modified relative to the rest of the signal. For example, sub-regions (e.g., putative QRS regions) that are correlated with each other above a predetermined correlation threshold may be signal processed (e.g., filtered, amplified, and/or fit) using a first regime (e.g., filtering regime, etc.), the rest of the signal may be signal processed by a second regime (e.g., filtered, amplified, fit, etc.) and/or not processed. The processed signal then includes the putative sub-regions that have been processed by the first (e.g., filtering) regime within the rest of the signal that has been unprocessed or processed by a different, e.g., second, regime. The correlation results may be separately monitored, saved (e.g., as part of a matrix) and/or analyzed to determine or help determine indicator of cardiac health. The signal may be further processed, for example, by correlating (e.g., cross-correlating) other putative ECG regions and selectively/specifically processing correlated regions above a second predetermined correlation level as described above. 
         [0018]    The cross-correlation of putative ECG regions in a signal (or a portion of a signal) may effectively determine which putative regions are “typical” of the signal. Thus, even in a noisy or low-sample-number signal, highly correlated regions may indicate that the overall or typical character of the signal, and the processing specific to the typical regions may preserve these similarities, particularly in ECG sub-regions that may be otherwise difficult to accurately filter or fit, such as R-wave, QRS regions, and the like. This technique, and the apparatuses and methods implementing it, may be adapted to collect relevant information during the processing steps, including information on the correlation, including the overall quality of the signal, regions of the signal that are highly correlated (or un-correlated), and the like. 
         [0019]    For example, the techniques described herein and embodied in any of the apparatuses and methods described may include analyzing a signal to determine putative regions (e.g., identifying putative R-spikes and therefore putative QRS regions and/or R-R regions), cross-correlating these putative regions to correlated regions (one or more correlated “groups” of such sub-regions in the signal), and differentially processing the correlated putative regions (such as putative QRS regions); the process may be repeated for different sub-regions (such a putative R-R regions). Before, during or after these correlation steps, the entire signal may be processed using appropriate signal processing techniques such as filtering (bandpass, high-pass, low-pass, etc.). 
         [0020]    Differential processing of sub-regions of the signal (e.g., correlated putative QRS regions) typically refers to processing of different regions of the signal by different techniques; other regions of the signal (including regions surrounding the processed sub-regions, may be processed by a separate technique or techniques. Differential processing may be performed by signal subtraction, for example, removing or copying the sub-regions to be processed (e.g., correlated QRS regions, correlated R-R regions, etc.) and processing them in isolation. The signal that they were copied or removed from may then be separately processed using a different processing technique (or left un-processed) and the processed sub-regions may be added back into the signal they were copied or removed from. In instances where the sub-regions were copied from the signal, they may be replaced with the processed sub-regions; in variations in which the sub-regions were removed, they may be added back in. The adjacent regions in the parent signal where the differentially processed sub-regions were copied/removed may be modified to smoothly connect to the sub-regions when they are put back into the parent signal. In some embodiments the correlated sub-regions may be processed while “in” the parent signal, without coping or removing them from the parent signal. 
         [0021]    Any of the apparatuses or methods described herein may operate on digital signals. Thus, in any of these variations, the apparatus may be configured to receive or generate a digital data signal. For example, a system may include one or more electrode leads to record a signal from a patient&#39;s skin from which an ECG will be extracted. The system may include an analog-to-digital converter and pre-processing, including filtering, amplification and the like, to form a starting signal, which may be digital. Alternatively or in addition, any of these apparatuses may be configured to receive (e.g., read in) a digital data file including the starting signal. For example, a file may include single lead data ( 300  sample/sec 16 bit/binary, recorded from left hand/right hand). Any of the apparatuses (or methods) described herein may then pre-process the starting signal. For example, the starting signal may be processed to detect 50 or 60 Hz (“noise”) mains, which may arise from power lines, etc., and then, if detected, remove them, for example, by bandpass filtering. This may be done via simple numerical integration. In some variations, notch filtering is done at 50 Hz, 60 Hz, or not at all. The bandpass filter may be hardware, software, firmware, or a combination; for example, this may be done with software filters, including standard, second-order, IIR filter. 
         [0022]    Additional pre-processing of the starting signal (either before or after differential filtering) may include wavelet filtering. For example, the signal may be filtered by wavelet decomposition using soft thresholding on the wavelet coefficients down to level 5. Again, this filtering may be performed using software, hardware, firmware, or the like. For example, routines similar to Matlab&#39;s wavelet toolbox may be adapted for this, such as the function “cmddenoise”. A wavelet can be chosen which looks like the main features in an ECG, minimizing distortion of the signal, particularly compared to a standard low pass or bandpass filter. 
         [0023]    Pre-processing of the signal may also include removing baseline wander from the signal. Alternatively or additionally, baseline wander may be removed or reduced after an initial differential processing/correlation. For example, baseline wander may be corrected from the signal by determining a level in the signal and removing all long-wavelength components. Other techniques may be used, including cubic spline, etc. As mentioned, any of these techniques may be implemented by hardware, software, firmware of the like. 
         [0024]    Although the apparatuses and method may be configured to operate on a signal with pre-processing, including some or all of the techniques mentioned above (removing line noise, wavelet filtering, removing baseline drift), in some variations, pre-processing is not used. 
         [0025]    Thereafter, sub-regions of the ECG may be identified. For example, putative QRS regions may be detected or identified in the signal. Although the initial signal may be referred to a starting signal, as the signal is being processed as described herein, it may be referred to as an interim signal, putative ECG signal, modified signal, or “signal being processed”. 
         [0026]    One technique for identifying putative sub-regions that may be used by any of the apparatuses or methods described herein includes identifying R-spikes in the signal being processed. R-spikes are highly recognizable because they are typically rapid-onset/rapid-offset and large excursions. Thus numerous techniques may be implemented to identify them. Once identified, they may be themselves processed (e.g., correlated) or they may be used as landmarks to identify other putative ECG regions, such as QRS regions. 
         [0027]    For example, any of the apparatuses and methods described herein may be configured to first identify putative QRS regions (e.g., using R-spikes). Correlations may then be applied by cross correlation of every putative QRS region against every other putative QRS region. The cross-correlation may be used to from a matrix or array. The array may include all of the cross-correlation information (including the correlation value, location, etc.) for the putative QRS regions, or it may include only a sub-set of them (e.g., those with correlation above a certain QRS threshold correlation value, or consecutive sequences of correlated QRSs, etc. 
         [0028]    Unlike other techniques for analyzing and processing signals, the correlation techniques described herein, and embodied in the methods and apparatuses described work well on shorter signals, particularly compared to other techniques for analyzing signals of less than 30 seconds. The techniques described herein may be configured to operate on signals of between about 5 sec and about 10 sec, between about 5 sec and about 15 sec, between about 5 sec and about 20 sec, between about 5 sec and about 25 sec, between about 5 sec and about 30 sec, etc. The QRS determination performed by these apparatuses and methods may essentially determine “good” QRS wave regions even in a short, noisy signal. The QRS detection may essentially determine what beats in the signal may correspond to “real” beats. Thus, a correlation matrix may be used to provide additional insight for both cleaning the signal and for analyzing the signal. For example, the correlation matrix may be used to detect different types of beats, which may be identified by two or more correlated groups that don&#39;t cross-correlate. This technique is different, and in some ways superior to typical “binning” of beats or sub-regions of beats. For example, binning works only over long time stretches, with the longer times provided greater accuracy. In contrast the correlation techniques described herein may be used over even shorter times (e.g., less than two minutes, less than a minute, less than 50 sec, less than 40 sec, less than 30 sec, etc.). Typically, noise won&#39;t correlate. 
         [0029]    As mentioned, in cross-correlating the putative sub-regions, every detected sub-region (e.g., putative QRS) is correlated with every other putative sub-region (e.g., putative QRS). For example, a QRS may be assumed to be 30 samples long, centered about the R-spike, and the putative QRS&#39;s are correlated by ‘sliding’ them over each other; the location of maximum correlations may be identified, which also be used to identify a possible offset, for example, if the max correlation doesn&#39;t occur with the R-spikes perfectly aligned. When the “correlation” between two signals is referred to, this correlation may be the maximum correlation when cross-correlating, or it may be a derivative of each correlation value as they are cross-correlated. 
         [0030]    Identified sub-regions (e.g., putative QRS&#39;s) may be considered to be correlated if their correlation (e.g., peak correlation) is greater than a predetermined correlation threshold. For example, for putative QRS regions, a correlation threshold may be about 0.85 (e.g., 0.75, 0.80, 0.85, 0.90, etc.). 
         [0031]    The longest sequence of consecutive, correlated QRS&#39;s may be found, and all other putative QRS regions which correlate with at least 3 other QRS regions from this long sequence (′good sequence′) may be considered to also be ‘good’ QRS&#39;s. If the ‘good sequence’ is less than 6 beats long, the apparatus or method may indicate that the data may be too noisy, or too short. However, in general, the procedure may continue, for example, by finding the QRS regions which correlate with the most other QRS regions, and this QRS region may be taken to be ‘good,’ and all other QRS regions that correlate to it may be found. In some variations, the apparatus may be configured so that if there are less than 4 correlated QRS regions the processing stops. Based on the time/location of the peak correlation between the correlated QRS regions, the apparatus or method may be configured to correct the offset of any of the R-spikes. 
         [0032]    Once the apparatus has determined the correlated sub-regions, these sub-regions may be differentially processed, compared to the rest of the signal, as mentioned. 
         [0033]    Any of these apparatuses and methods may also determine an “average QRS” from the correlated QRS regions. For example, an average QRS may be constructed from all correlated QRS, each of which is 30 samples long. Typically, the average morphology won&#39;t change in a short time, even if the beat changes. Other techniques for determining an average QRS may be used. An average QRS may be used to calculate an onset/offset which may be used in subsequent processing and/or analysis. 
         [0034]    For example, differential filtering on the signal being processed using the onset and offset of the average QRS to differentially modify the putative correlated QRS regions. For example, correlated QRS regions may be removed from the signal being processed (which may be referred to as signal “ybw” at this stage). The correlated QRS&#39;s may be filtered using Principal Component Analysis (PCA), and the rest of the signal (from which the QRS have been copied or removed) maybe is polynomial filtered. Thus the first filtering regime (processing regime) is PCA, and the second filtering regime is a polynomial filter. An example of a polynomial fit is Matlab&#39;s “sgolayfilt” function, which fits polynomials to a signal. The correlated QRS regions that have been processed may then be added back into the signal being processed (ybw). As mentioned, if the processed correlated QRS regions are added back into the signal, a local averaging may be done around the points where the QRS&#39;s were removed and added back in. The signal being processed may be referred to at this stage as post-first-correlation (yfinal in some of the figures below, although it may not be the final processed signal). 
         [0035]    Although the apparatuses and methods may include a single correlation processing step (e.g., just QRS correlation as described above), in any of the variations described herein the apparatuses and/or methods may include correlation of a second putative ECG region, such as the R-R region. For example, an apparatus may be configured to build an RR-Beat Matrix that includes both putative and/or correlated QRS sub regions, as discussed above, and may also include putative and/or correlated R-R regions. As described above and illustrated in  FIG. 9 , the R-R region typically includes the interval between two QRS regions (every interval between adjacent R spikes). In some variations a separate matrix of R-R regions is generate and may be stored/analyzed. For example, an apparatus may build a matrix of all R-R intervals and scale them, and then correlates them. Building this matrix may allow the apparatus to identify noisy intervals, and label them as not correlated. Similarly, ‘good’ R-R regions may be identified. A discussed above, the sub-regions (R-R regions) may be cross-correlated and those sub-regions which are correlated above a pre-determined threshold may be identified as ‘good’. In some apparatuses, regions having lower correlations may be referred to as putative “AFIB beats” and this lower correlation may be used in an AF detection (AfiB) mode for the apparatus or as part of an atrial fibrillation detection method. 
         [0036]    For example, putative R-R sub-regions may be identified in the signal being processed (e.g., yfinal). Each putative R-R region (R-R beat) may be scaled to a given sample length, and an N×M matrix may be generated, where M is the number of putative R-R region and N is the sample length. 
         [0037]    Every scaled R-R region may be correlated to every other scaled R-R region. A second matrix may be made that gives the square of the difference in duration of two given R-R regions. Putative R-R regions that correlate more than a predetermined threshold (e.g., 0.76 or about 0.70, about 0.75, about 0.80, etc.) and in some variations that also vary by less than a predetermined threshold (e.g., 30%, or about 25%, about 30%, about 35%, etc.) in duration may be considered correlated. The R-R region that correlates with the most other beats may be identified, and considered as a “good” R-R region. All other R-R regions that correlate with this region may also be considered good. As mentioned R-R regions having a lower correlation to the ‘good’ regions may be identified for use for AF detection (which may be done in the same manner described, but using a lower correlation coefficient threshold (e.g., 0.65, 0.7, 0.75 that is lower than the correlation threshold for R-R regions), and no time duration constraint may be applied. 
         [0038]    The apparatus may then differentially process the correlated putative R-R regions. For example, PCA may be performed on just the correlated putative R-R regions, and these correlated R-R regions may then be re-scaled to their original length. This additional correlation and differential processing may help clean up the final ECG signal that can be displayed, further analyzed or processed. In some apparatuses and/or methods this final correlation and differential processing is the final filtering step of the signal, and the final signal may be presented (e.g., displayed, stored, and/or transmitted). If one or more matrixes or extracted information was generated (e.g., an R-R matrix), this information may also be passed on. As mentioned, the creation of correlation matrixes may allow useful operation of these apparatuses and methods on even relatively short-duration signals, particularly as compared to other known techniques for signal processing of ECG signals. 
         [0039]    The apparatuses and methods described herein may also be adapted to analyze ECG signals, either during the processing described above, or after, using the processed signal (e.g., yfinal, second ECG signal, etc.). 
         [0040]    For example, the finally processed signal may be by an apparatus to generate an average beat. In some variations the apparatus may use only good (correlated) QRS regions and good (correlated) R-R regions to generate an average beat. For example, correlated QRS regions that are flanked on either side (overlap with) correlated R-R regions may be referred to as good P-QRS-T beats, and they may all be averaged together, and all of the good P-QRS-T beats are then correlated to this average. Any good P-QRS-T beats that correlate with lower than a threshold value (P-QRS-T correlation threshold) may be removed and the remainder (above threshold) can be averaged. A P-QRS-T threshold may be, for example, about 0.85 (e.g., about 0.8, about 0.85, about 0.90, etc.). The result may be referred to as a final average beat. 
         [0041]    In addition, the apparatus may be configured to determine an interval calculation or any other derived indicator of cardiac fitness (e.g., cardiac wave morphology, R wave-ST segment, T wave amplitude analysis, etc.). For example the apparatus may be configured to calculate a P-R interval, QRS interval, etc. Such indicators may be determined from the average beat and/or from the cleaned final signal. For example, using the average beat, the QRS onset and offset, and T-wave offset may be found. 
         [0042]    Finally, any variations of the apparatuses and methods described herein may be adapted to determine/detect atrial fibrillation. In general, an apparatus or method may be configured to operate on the starting signal and process it to include one or more correlations and differential processing techniques, as discussed above. Further, the apparatus or method may be adapted to analyze the ECG signal and/or components identified during the processing/correlating techniques to detect atrial fibrillation (AF). AF is known to have a characteristic erratic heart rate, with lot of change (variation) from beat to beat, which may be referred to as beat-to-beat variability. For example, in some variations the apparatus may be configured to examine the intervals of adjacent R-R intervals (either adjacent ‘good’/correlated R-R intervals or both correlated and uncorrelated adjacent R-R intervals) and may determine a square of the difference. 
         [0043]    Some apparatuses are configured to use various indicators to determine if an EMG indicates AF. For example, any of the apparatuses described herein may be configured to assess AF by looking at one or more of beat-to-beat variability, beat-to-every-other-beat variability, beat-to-every-third-beat variability, and the number of turning points of the RR-intervals. In addition, an apparatus may determine if a final, processed ECG waveform is indicative of atrial fibrillation by calculating a plurality of predictor beats from a window of n beats from the final, processed ECG signal as the window is moved though the final, processed ECG signal, where n is greater than some number of windows (e.g., 3, 4, 5, 6, 7, 8, 9, 10, etc.). An apparatus may also or additional look at the p-wave region of the average beat signal and/or the final processed signal. 
         [0044]    Any of these apparatuses may also or alternatively detect AF by conditioning the analysis into three or more parts. For example, the apparatus may be configured to determine if an ECG signal is indicative of AF when the number of QRS regions (correlated QRS regions) is less than 35 by examining beat variability: a measure of beat-to-beat variability, a measure of beat-to-every-other-beat variability, and a measure of beat-to-every-third-beat variability; in addition, the apparatus may examine the number of turning points of the RR-intervals. The apparatus may indicate that a signal is likely to have AF with larger values of the first 3 (beat variability) indicators. The apparatus may also indicate that the ECG signal is likely to have AF if the signal does not have a small or large number of turning points. Thresholds for all 4 indicators may be chosen for a given run, and all 4 must be within/above threshold for an AF call. An apparatus may be configured to determine if an ECG signal indicates AF when there are more than 35 QRS regions in the signal by both looking at the number of turning points of the R-R intervals and also looking at error in the beat predictor formed by a running average (e.g., having a window size of n beats) as the window is run along the ECG signal. This may be implemented by applying a technique such as Sluter&#39;s algorithm. This algorithm may be based on using a 10 beat window before any given beat, and calculating the best predictor beat within that window for the given beat. This 10 beat window can be moved across the entire signal, and the best average predictor beat found. The error of this predictor beat is calculated, and if it is large-enough and the turning point value is within threshold, AF is called. 
         [0045]    In some variations, the apparatus may determine AF by looking at the P waves of the ECG signal (e.g., the final signal and/or the average beat signal derived from the final ECG signal. P-waves may be identified using a template P-wave and correlating it with the average-beat signal before QRS onset. For example, the peak of the P-wave may be determined as a maximum value in the signal before the Q wave starts that is also a local maximum, and may be taken to the peak of the proposed p-wave to be used as the correlation point. The standard deviation of the proposed P-wave may also be calculated and compared to the standard deviation of the rest of the average beat signal before the Q-wave. The ratio of the standard deviation (std) of the proposed P-wave to the std of the remaining signal may be used as a weighting factor in determining the probability that the proposed P-wave is a P-wave. A final statistic may be calculated for P-wave probability for which 1 means perfect P-wave, while 0 and negative numbers indicate there is no P-wave. If the P-wave statistic is below a minimum threshold for the p-wave (e.g., about 0.25), AF is automatically called even if it was not called based on the other indicators. If the P-wave statistic is above a maximum threshold for the p-wave (e.g., of about 0.7) and the ratio of standard deviations is large-enough, a signal that was called AF based on the RR-statistics is corrected and called non-AF. 
         [0046]    Any of the apparatuses described herein may be configured to analyze R-R statistics. These include basic statistics on all of the good R-R intervals (correlated). Any of the apparatuses described herein may be configured to examine a chain of indicators, as illustrated above. For example, an apparatus may examine a chain of indicators (HR variability, R-R crossings, etc.) ending with the P-wave detection test. This test/indicator may be used to correct the other tests. If the probably of the P wave detection is high enough, it may be used to remove a false positive result; for example, if the p-wave statistic is low enough, it may help determine a false negative. 
         [0047]    For example, described herein are non-transitory computer-readable storage medium storing a set of instructions capable of being executed by a processor, that when executed by the processor, causes the processor to extract an electrocardiogram (ECG) signal from a signal by causing the processor to: identify putative QRS regions in a signal; cross-correlate the putative QRS regions to determine correlated QRS regions of the signal; and form a first ECG signal from the signal by filtering the correlated QRS regions of the signal using a first filtering regime and filtering a remainder of the signal outside of the correlated QRS regions using a second filtering regime that is different from the first filtering regime. Any of these non-transitory computer-readable storage medium (media) may also be configured to cause the processor to present the first ECG signal (e.g., display and/or transmit the first ECG signal. A non-transitory computer-readable storage medium may also be configured to further process the first ECG signal (which may also be referred to as a final ECG signal, a processed ECG signal, or the like). 
         [0048]    For example, a non-transitory computer-readable storage medium may be further configured so that the set of instructions, when executed by the processor, further causes the processor to: identify putative R-R intervals in the first ECG signal; cross-correlate the putative R-R intervals to determine correlated R-R intervals in the first ECG signal; and modify the first ECG signal by filtering only the correlated R-R intervals of the first ECG signal with a third filtering regime. 
         [0049]    The set of instructions, when executed by the processor, may further cause the processor to pre-filter the signal before identifying putative QRS regions in the signal. For example, the set of instructions, when executed by the processor, may further cause the processor to remove 50 Hz or 60 Hz noise in the signal before identifying putative QRS regions in the signal. The set of instructions, when executed by the processor, may further cause the processor to perform wavelet filtering on the signal before identifying putative QRS regions in the signal. The set of instructions may further cause the processor to identify putative QRS regions in a signal by filtering the signal, setting a threshold, and identifying spikes above the threshold as putative R-spike components of putative QRS regions. 
         [0050]    The set of instructions may further cause the processor to calculate a putative heart rate (HR) from the R-spikes and to use the HR to modify the signal to remove baseline wander. 
         [0051]    The set of instructions may further cause the processor to cross-correlate the putative QRS regions to determine correlated QRS regions of the signal by cross-correlating each putative QRS region with every other putative QRS region. The set of instructions may further cause the processor to determine correlated QRS regions of the signal when a peak correlation between a pair of putative QRS regions is above a correlation threshold and their amplitudes vary by less than an amplitude threshold. For example, the correlation threshold may be substantially 0.8 and the amplitude threshold may be substantially 40%. 
         [0052]    The set of instructions may further cause the processor to indicate that there may be a problem with the signal when there are fewer than a minimum number of correlated consecutive putative QRS regions. 
         [0053]    For example, the minimum number of correlated consecutive putative QRS regions may be 6. 
         [0054]    The set of instructions may further cause the processor to form a first ECG signal from the signal by removing the correlated QRS regions from the signal to form a subtracted signal, filtering the correlated QRS regions of the signal using the first filtering regime and filtering the subtracted signal comprising the remainder of the signal outside of the correlated QRS regions using the second filtering regime, and then adding together the filtered correlated QRS regions with the filtered subtracted signal. 
         [0055]    The set of instructions may further cause the processor to form a first ECG signal from the signal by filtering the correlated QRS regions of the signal using a first filtering regime comprising a Principle Component Analysis (PCA). 
         [0056]    The set of instructions may further cause the processor to form a first ECG signal from the signal by filtering the remainder of the signal outside of the correlated QRS regions using a second filtering regime comprising a polynomial fit to the remainder of the signal outside of the correlated QRS regions. 
         [0057]    The set of instructions may cause the processor to identify putative R-R intervals in the first ECG signal by constructing an R-R matrix of normalized R-R intervals from the first ECG signal. 
         [0058]    The set of instructions may further cause the processor to cross-correlate the putative R-R intervals to determine correlated R-R intervals in the first ECG signal by cross-correlating every normalized R-R interval in the R-R matrix against every other normalized R-R interval in the matrix. 
         [0059]    The set of instructions may further cause the processor to determine correlated R-R intervals when a correlation coefficient threshold between R-R intervals is above an R-R correlation threshold. For example, the R-R correlation threshold may be substantially 0.7. 
         [0060]    The set of instructions may further cause the processor to modify the first ECG signal by filtering only the correlated R-R intervals of the first ECG signal with a Principle Component Analysis (PCA) of the correlated R-R intervals. 
         [0061]    Any of the apparatuses or methods (e.g., the set of instructions) described herein, may further determine if the signal is indicative of an atrial fibrillation. 
         [0062]    For example, a set of instructions may further cause the processor, further causes the processor to indicate if the signal is indicative of an atrial fibrillation by comparing the beat-to-beat variability of the first ECG signal. 
         [0063]    The set of instructions may further cause the processor, further causes the processor to calculate an average beat by averaging correlated QRS regions that overlap on either side by correlated R-R intervals to form an intermediate average, and then correlating the intermediate average with correlated QRS regions that overlap on either side by correlated R-R intervals, and averaging those correlated QRS regions that overlap on either side by correlated R-R intervals that correlate with the intermediate average by greater than a threshold of substantially 0.85, to form the average beat. 
         [0064]    The set of instructions may further cause the processor to determine a QRS onset, QRS offset, and T-wave offset from the average beat. 
         [0065]    Also described herein are non-transitory computer-readable storage medium storing a set of instructions capable of being executed by a processor, that when executed by the processor, causes the processor to extract an electrocardiogram (ECG) signal from a signal by causing the processor to: identify putative QRS regions in a signal; cross-correlate the putative QRS regions to determine correlated QRS regions of the signal; and form a first ECG signal from the signal by differentially filtering the correlated QRS regions of the signal relative to a remainder of the signal outside of the correlated QRS regions; identify putative R-R intervals in the first ECG signal; and cross-correlate the putative R-R intervals present the first ECG signal to determine correlated R-R intervals in the first ECG signal; and modify the first ECG signal by differentially filtering the correlated R-R intervals of the first ECG signal relative to a remainder of the signal outside of the correlated R-R intervals. 
         [0066]    Also described herein are non-transitory computer-readable storage medium storing a set of instructions capable of being executed by a processor, that when executed by the processor, causes the processor to extract an electrocardiogram (ECG) signal from a signal by causing the processor to: identify a plurality of putative QRS regions in a signal; cross-correlate each of the putative QRS regions with each other to identify correlated QRS regions; forming a first ECG signal by: filtering a portion of the signal corresponding to the correlated QRS regions using a first filtering regime; and filter a second portion of the signal corresponding to a region of the signal excluding the correlated QRS regions with a second filtering regime that is different from the first filtering regime; identify putative R-R intervals in the first ECG signal; cross-correlate the putative R-R intervals to determine correlated R-R intervals; modify the first ECG signal by filtering only the portion of the first ECG signal corresponding to the correlated R-R intervals with a third filtering regime; and display the first ECG signal. 
         [0067]    Also described herein are systems for extracting ECG information from a signal. For example, a system may include: a QRS identifying module configured to receive an electrical signal and to identify a plurality of putative QRS regions in the signal; a QRS cross-correlator coupled to the QRS identifying module configured to cross-correlate each of the putative QRS regions with each other; a QRS filter module coupled to the QRS cross-correlator and configured to modify the signal by differentially filtering correlated QRS regions of signal relative to other regions of the signal; an R-R cross-correlator adapted to receive the modified signal from the QRS filter module and to cross-correlate putative R-R intervals in the modified signal with each other; and an R-R filter module coupled to the R-R cross-correlator and configured to further modify the modified signal by differentially filtering correlated R-R intervals relative to other regions of the modified signal. 
         [0068]    A system may also include a pre-filtering module connected to the QRS identifying module and configured to pre-filter the received signal before it is passed to the QRS identifying module. A system may also include an atrial fibrillation detection module configured to receive the further modified signal from the R-R filter module and to output an indicator if the further modified signal is indicative of atrial fibrillation. The QRS identifying module may comprise an R-wave detection module having a band pass filter and moving window integrator. 
         [0069]    Any of the apparatuses and methods described herein may be configured to determine one or more indicator of cardiac health. For example, any of the apparatuses and methods described herein may be configured to determine one or more indicators of atrial fibrillation from a starting signal. Thus, described herein are non-transitory computer-readable storage medium storing a set of instructions capable of being executed by a processor, that when executed by the processor, causes the processor to determine if an electrocardiogram (ECG) signal is indicative of atrial fibrillation, by causing the processor to: identify putative QRS regions in a signal; cross-correlate the putative QRS regions to determine correlated QRS regions of the signal; and form a first ECG signal from the signal by differentially filtering the correlated QRS regions of the signal relative to a remainder of the signal outside of the correlated QRS regions; identify putative R-R intervals in the first ECG signal; and cross-correlate the putative R-R intervals present the first ECG signal to determine correlated R-R intervals in the first ECG signal; modify the first ECG signal by differentially filtering the correlated R-R intervals of the first ECG signal relative to a remainder of the signal outside of the correlated R-R intervals; and determine if the first ECG signal is indicative of atrial fibrillation. For example, the set of instructions may cause the processor to determine if the first ECG signal is indicative of atrial fibrillation by examining the number of turning points of R-R intervals in the first ECG signal. 
         [0070]    The set of instructions may cause the processor to determine if the first ECG signal is indicative of atrial fibrillation by examining the number of turning points of correlated R-R intervals in the first ECG signal. 
         [0071]    The set of instructions may cause the processor to determine if the first ECG signal is indicative of atrial fibrillation by measuring beat-to-beat variability, beat-to-every-other-beat variability, and beat-to-every-third-beat variability. The set of instructions may cause the processor to determine if the first ECG signal is indicative of atrial fibrillation by measuring beat-to-beat variability, beat-to-every-other-beat variability, and beat-to-every-third-beat variability and by examining the number of turning points of R-R intervals in the first ECG signal. The set of instructions may cause the processor to determine if the first ECG signal is indicative of atrial fibrillation by calculating a plurality of predictor beat from a window of n beats in the first ECG signal as the window is moved though the first ECG signal, where n is greater than three. The set of instructions may cause the processor to determine if the first ECG signal is indicative of atrial fibrillation by calculating a plurality of predictor beat from a window of n beats in the first ECG signal as the window is moved though the first ECG signal, where n is substantially 10 or more. 
         [0072]    The set of instructions may cause the processor to determine if the first ECG signal is indicative of atrial fibrillation by calculating a plurality of predictor beat from a window of a n beats in the first ECG signal as the window is moved though the first ECG signal, where n is greater than three and by examining the number of turning points of R-R intervals in the first ECG signal. The set of instructions may cause the processor to determine if the first ECG signal is indicative of atrial fibrillation by calculating an average beat from the first ECG signal and correlating a proposed P-wave with the region of the average beat before the QRS onset of the average beat. 
         [0073]    The set of instructions may cause the processor to calculate an average beat by averaging correlated QRS regions that overlap on either side by correlated R-R intervals to form an intermediate average, and then correlating the intermediate average with correlated QRS regions that overlap on either side by correlated R-R intervals, and averaging those correlated QRS regions that overlap on either side by correlated R-R intervals that correlate with the intermediate average by greater than a threshold of substantially 0.85, to form the average beat. 
         [0074]    Methods of extracting ECG information from a starting signal, including methods for extracting an ECG signal, and/or methods of identifying an indicator of cardiac health (such as a method of identifying atrial fibrillation) from and ECG are also described. For example, described herein are computer implemented methods for extracting an electrocardiogram (ECG) signal from a signal comprising the steps of: identifying putative ECG sub-regions in a signal; cross-correlating the putative sub-regions to determine correlated sub-regions of the signal; and forming a first ECG signal from the signal by filtering the correlated sub-regions of the signal using a first filtering regime and optionally filtering a remainder of the signal outside of the correlated sub-regions using a second filtering regime that is different from the first filtering regime. 
         [0075]    Also described are computer implemented methods for extracting an electrocardiogram (ECG) signal from a signal comprising the steps of: identifying putative QRS regions in a signal; cross-correlating the putative QRS regions to determine correlated QRS regions of the signal; and forming a first ECG signal from the signal by filtering the correlated QRS regions of the signal using a first filtering regime and optionally filtering a remainder of the signal outside of the correlated QRS regions using a second filtering regime that is different from the first filtering regime. 
         [0076]    Also described are computer implemented methods for extracting an electrocardiogram (ECG) signal from a signal comprising the steps of: identifying putative R-R intervals in the signal; cross-correlating the putative R-R intervals present the signal to determine correlated R-R intervals in the signal; forming a first ECG signal by differentially filtering the correlated R-R intervals of the first ECG signal relative to a remainder of the signal outside of the correlated R-R intervals. 
         [0077]    Any of these computer implemented methods may also include the steps of, prior to the step of identifying putative R-R intervals, identifying putative QRS regions in the signal, cross correlating the putative QRS regions to determine correlated QRS regions, forming a further signal by filtering the correlated QRS regions and performing the remaining steps of the method using the further signal. 
         [0078]    Any of these computer implemented methods may be part of an apparatus, such as a device, that is configured to perform the method. 
         [0079]    For example, described herein are electronic devices for identifying atrial fibrillation configured to identify putative R-R intervals in the signal; cross-correlate the putative R-R intervals present the signal to determine correlated R-R intervals in the signal; form a first ECG signal by differentially filtering the correlated R-R intervals of the first ECG signal relative to a remainder of the signal outside of the correlated R-R intervals, and provide an indication if the first ECG signal is indicative of atrial fibrillation. 
     
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
         [0080]      FIG. 1  is an example showing the wavelet filtering using the function cmddenoise. The lower curve is the raw ECG data (there was no mains noise detected). The upper curve is the raw data after wavelet filtering. 
           [0081]      FIG. 2 . Shows an example of an ECG signal on the bottom, and the corresponding signal used to detect the QRS complexes. The upper curve is the signal after the wavelet filtering procedure is performed. The horizontal line is the dynamic threshold. Any excursion of the signal above the threshold indicates an R-wave of a QRS complex. 
           [0082]      FIG. 3  Shown is the QRS correlation matrix for the ECG signal in  FIG. 1 . Darker shades indicate high positive or high negative correlation. As each QRS correlates with itself perfectly, the diagonal is dark. One can see a grouping of correlated QRS&#39;s in the middle of the lower left quadrant. 
           [0083]      FIG. 4  shows an example of main filtering on a noisy ECG. The arrows pointing to the somewhat smoother upper dark curve regions are “ybw” (the correlated QRS regions after differential filtering), which are calculated by removing baseline wander from starting trace (upper curve) in  FIG. 1 . The regions of the upper curve that are ‘noisy’ are the QRS-removed signal. The bottom curve is a signal “yf”, which is generated by differentially processing the upper curve (separately processing the correlated QRS regions), performing PCA on the correlated QRS complexes and Golay filtering on the QRS-removed signal. 
           [0084]      FIG. 5  shows an RR-beat correlation matrix using the ECG signal from  FIGS. 1 ,  3 , and  4 . Darker squares indicate high positive or high negative correlation. As each beat correlates with itself perfectly, the diagonal is dark. One can see that RR-beat number  2  does not correlate well with any of the other RR-beats. 
           [0085]      FIG. 6  is an example showing the effect of secondary filtering. The bottom curve is the signal “yf” from  FIG. 4 . The upper curve is the signal “yfinal” resulting from differential filtering on correlated R-R sub regions. 
           [0086]      FIG. 7  shows in the upper curve, a signal “yfinal” from  FIG. 6  as well as an averaged beat (below it) that is calculated from all of the “good” P-QRS-T intervals as described herein. 
           [0087]      FIG. 8  is an exemplary flowchart for the process of analyzing the ECG (single-lead) data as described herein, including the automatic detection of cardiac events such as atrial fibrillation. Although  FIG. 8  illustrates multiple steps of different sections, any of the apparatus and methods described herein may include only a portion of processing techniques shown in  FIG. 8 ; for example, a method or apparatus for extracting an ECG may only incorporate the techniques illustrated on the left-hand side of the figure (generating signal “yf” and/or generating signal “yfinal”). 
           [0088]      FIG. 9  is an idealized version of an ECG trace, showing two cycles, including characteristic regions such as the QRS complex, the R-spike, and the R-R interval. 
           [0089]      FIG. 10  is a schematic illustration of a system implementing the techniques for extracting an ECG signal from a starting signal by differentially processing correlated sub-regions of ECG signals (e.g., QRS sub-regions and/or R-R sub-regions, etc.). 
       
    
    
     DETAILED DESCRIPTION 
       [0090]    Described herein are apparatuses and methods for extracting (e.g., de-noising, cleaning, filtering, etc.) an ECG signal from a starting signal, as well as apparatuses and methods for determining one or more indicator of cardiac health/function (including, but not limited to atrial fibrillation). In general, the apparatuses described herein (including systems and devices) may perform all or some of the procedures described herein. A device may receive a starting signal (e.g., an ECG recording) either directly (from connected electrodes) or indirectly, by receiving an ECG signal and/or digital file including ECG information. ECG information maybe single lead or multiple lead. For example, ECG information may be single-channel ECG information. The system or device may then operate on this information and provide novel and specific output based thereon. For example, a system may display one or more signals indicative of one or more cardiac properties, functions or dysfunctions, including atrial fibrillation. In some variations the system may analyze the ECG information and modify it for later review, including appending comments and/or analysis regarding the ECG information. In some variations, the system organized the ECG signals (or sub-regions of the ECG signals) in some manner, e.g., collecting similar (correlated) signals or sub-regions of signals. The system may be configured to alert the user, medical professional, or other (including other systems) of the results of the operations on the ECG information. 
         [0091]    In general, the apparatuses and methods described herein operate on a starting signal such as a signal read from a single lead of a pair of ECG electrodes, and extracts a cleaned-up version of an ECG trace, which may include multiple ECG “beats” by identifying putative sub-regions of in the signal, cross-correlating these sub-regions against each other, and using the correlation information to determine correlated sub-regions that are then differentially processed relative to the rest of the signal. Thus the correlated putative sub-regions are processed (filtered, amplified, fit, etc.) differently than the non-correlated putative sub-regions and the rest of the waveform except for the putative correlated sub-regions. The resulting signal includes both the correlated sub-regions and the rest of the signal. In general, a sub-region of an ECG signal may include any characteristic region of an ECG beat or beats, such as those illustrated in  FIGS. 2 and 9 , for example, P-waves, R-waves, Q-waves, S-waves, T-waves, QRS regions, P-R intervals, R-R intervals, etc. 
         [0092]    Any of the processes described herein may be performed on a dedicated device that is configured specifically to perform some or all of these functions. Also included herein are software, hardware and/or firmware configured to perform these functions. Any of the data or information derived may be stored and/or operated on using non-volatile memory, hardcopy, printouts, or other storage, analysis and communication techniques. 
         [0093]    For example,  FIG. 8  illustrates a flowchart of exemplary techniques; some of the techniques included in  FIG. 8  are optional. These techniques, which may be incorporated into an apparatus and/or method, are described below and illustrated in the figures. For example, described below are apparatuses incorporating some of these processes. A system or device as described herein may be configured to all or some of these procedures. 
         [0094]    For example, described below are techniques that may be performed by any of the apparatuses described herein and may part of any method. Examples of these techniques include pre-filtering (such as detection of mains, filtering of mains, wavelet filtering, etc.), sub-region detection (e.g., QRS detection, R-R detection), baseline wander removal, cross-correlation (QRS correlation, R-R correlation), differential processing (QRS filtering, R-R filtering, subtracted signal filtering, etc.), average beat calculation, interval calculation, and cardiac health analysis (e.g., atrial fibrillation detection, etc.). Performance of any of these techniques may be implemented in any of the apparatuses described, and/or any of the methods described. Some of these techniques may be omitted. Sections 1-12 below illustrate one example of some of these techniques, and are not intended to be limiting. The order of performance, and/or the inclusion, of any of these techniques may be varied. In addition, where specific ECG sub-regions are indicated (e.g., QRS, R-R, etc.) the technique may be adapted to any other sub-region. 
       1. Pre-Filtering 
       [0095]    Analysis and pre-filtering may be included. For example, 50 Hz or 60 Hz signals may be analyzed. In some variations, data (a starting signal or starting ECG signal) is received by the apparatus for processing. Fourier coefficients at 9 different frequencies are calculated ranging from 10 to 100 Hz. If the 50 Hz component is larger than the others then mains noise is set at 50 Hz. The same check is done for 60 Hz. If neither 50 Hz nor 60 Hz components are larger than the other components, then no mains filtering is performed. Notch filter is implemented at 50 Hz, 60 Hz, or not at all. This may be done, for example, using MatLab&#39;s filter function, implementing a standard, second-order, IIR filter. 
       2. Pre-Filtering 2: Wavelet Filtering 
       [0096]    The starting signal may be filtered by wavelet decomposition using soft thresholding on the wavelet coefficients down to level 5. Matlab&#39;s wavelet toolbox may be used for this, specifically the function cmddenoise. Because a wavelet can be chosen which resembles the main features in an ECG, this process does not distort the signal as much as a standard low-pass or bandpass filter. This technique does not required MatLab, as it may be implement using other similar functions or may be implemented “by hand”. Wavelet filtering of the entire signal may improve subsequent QRS detection.  FIG. 1  illustrates an example of wavelet filtering on a starting signal. 
       3. Sub-Region Detection: QRS Detection 
       [0097]    In general, any of the apparatuses may be configured to determine the time/locations of various sub-regions of the ECG in the signal. This may be done by identifying putative R-regions, for example. In one example, the method of detecting R-waves is derived from a method based: Band Pass IIR filter-&gt;derivative-&gt;square-&gt;moving window integrator. In this example, the MatLab function filter is used, implementing a series of standard FIR filters. 
         [0098]    The resulting signal may be dynamically thresholded. Spikes extending above the threshold indicate R-spikes (see  FIG. 2 ). The exact R-spike locations are detected by looking for the maximum square of the bandpass-filtered signal between the location where the moving-window-integrated signal goes above the threshold and the location where the signal then goes below the threshold. 
         [0099]    Based on all of the detected R-spikes, an average RR interval may be found and a preliminary heart rate (HR) calculated. 
       4. Baseline Wander Removal 
       [0100]    Using the HR from step ( 3 ), a certain wavelet level is calculated and used to remove baseline wander. Wavelet coefficients at the calculated level are set to zero and the signal is reconstructed. The resulting ECG signal with baseline wander removed is called “ybw”. The MatLab internal functions wavedec and waverec are used. These functions deconstruct/reconstruct a signal using dyadic scales. 
       5. Correlations 
       [0101]    In this example, the apparatus cross-correlates every putative sub-region (e.g., QRS) with every other putative QRS to identify the highly (above a predetermine QRS correlation threshold (e.g., 0.85). For the correlation, the QRS&#39;s are assumed to be 30 samples long, centered on the R-spikes. For every two QRS&#39;s, a sliding correlation is calculated by offsetting the QRS&#39;s from one to 32 samples. The location of maximum correlations is found as well as possible offsets (if max correlation doesn&#39;t occur with the R-spikes perfectly aligned). Shown in  FIG. 3  is the correlation matrix for the ECG signal shown in  FIG. 1 . Dark blocks indicate high positive correlation and lighter colors indicates high negative correlation. 
         [0102]    In this example, QRS&#39;s are considered to be correlated if their peak correlation is greater than 0.8 and their amplitudes vary by less than 40%. The longest sequence of consecutive, correlated QRS&#39;s is found, and the QRS&#39;s which comprise this sequence are considered ‘good’ QRS&#39;s. All other QRS&#39;s that correlate with at least 3 of these ‘good’ QRS&#39;s are also considered good. 
         [0103]    If the initial ‘good sequence’ is less than 6 beats long, the apparatus may tell you that the data may be too noisy, or too short. The apparatus may still proceed though, and finds the QRS which correlates with the most other QRS&#39;s. This QRS is taken to be ‘good’, and all other QRS&#39;s which correlate to it are found and called ‘good’. 
         [0104]    During this technique, all of the R-spikes are corrected for possible offsets. 
         [0105]    Correlating all of the detected QRS&#39;s in this way allows for the rejection of QRS&#39;s which are contaminated with noise. 
         [0106]    It may be desired that contaminated QRS&#39;s not be used in any average beat. Furthermore, any other noise which was detected initially as a QRS will be rejected. This allows the initial QRS detection to be over sensitive. 
       6. Average Sub-Region (e.g., QRS) 
       [0107]    An average QRS is found from all the correlated ‘good’ QRS&#39;s, each of which are 30 samples long. The onset and offset of the average QRS are found. 
       7. Primary (Differential) Filtering or Correlated Sub-Regions 
       [0108]    Using the onset and offset of the average QRS, all of the correlated QRS&#39;s can be removed from the signal “ybw”. The QRS&#39;s may be filtered using Principal Component Analysis (PCA), and the remaining QRS-removed signal is polynomial filtered with Matlab&#39;s sgolayfilt function, which consists of fitting polynomials to a signal. The QRS&#39;s are then added back in. 
         [0109]    A local averaging is implemented around the points where the QRS&#39;s were removed and added back in, resulting in signal “yf”.  FIG. 4  shows the steps of this filtering process. 
       8. Building a Matrix (R-R Beat Matrix) 
       [0110]    R-R beats are defined as intervals between two adjacent R-spikes. The signal “yf” is broken up into R-R beats. Every R-R beat is scaled to a given sample length, and an N×M matrix may be constructed, where M is the number of RR-beats and N is the given sample length. 
         [0111]    Every scaled RR-beat is correlated to every other scaled RR-beat. A second matrix is also constructed which gives the square of the difference in duration of two given RR-beats. Any two given RR-beats that have a correlation coefficient of more than 0.75 and vary by less than 30% in duration are considered correlated. The RR-beat which correlates with the most other RR-beats is found, and considered ‘good’. All other RR-beats which correlate with this beat are also considered ‘good’. Shown in  FIG. 5  is the RR-beat correlation matrix. 
         [0112]    This process if repeated using a correlation coefficient threshold of 0.7 and no time duration constraint, resulting in another set of RR-beats which are used for AF detection, see section 12. There are two main purposes of correlating RR-beats. First, noise may be introduced in the ECG signal between two QRS complexes and this noise may distort a final average beat. RR-beat correlation corrects for this. Second, PCA analysis is performed on all of the ‘good’ RR-beats, and this further cleans up the ECG signal. 
       9. Secondary Filtering: PCA on Good RR-Beats 
       [0113]    PCA is implemented on all of the ‘good’ RR-beats, and then the RR-beats are re-scaled to their original length. This does not have a direct effect on the final average beat displayed in the pdf reports, interval measurements, or HR calculation or AF determination. However this further cleans up an ECG signal. This process operates on the signal “yf”, producing signal “yfinal”, which is the signal displayed in the pdf reports.  FIG. 6  shows the effects of secondary filtering on an ECG signal. 
       10. Average Beat Calculation 
       [0114]    Good P-QRS-T beats are taken to be beats in which a good QRS is surrounded on either side by good RR-beats. All of these ‘good’ P-QRS-T beats are averaged. 
         [0115]    All of the good P-QRS-T beats are then correlated to the average. Ones with lower than 0.85 correlations are rejected, and the average is re-calculated. This gives the final average beat displayed in the pdf reports and shown in  FIG. 7 . 
       11. Interval Calculation 
       [0116]    Using the average beat, the QRS onset and offset, and T-wave offset are found. These intervals are marked in the pdf reports. 
       12. AF Detection 
       [0117]    AF detection may be broken up into 3 parts. First, if the number of QRS complexes is less than 35, four AF indicators are calculated based on beat variability. The first indicator is a measure of beat-to-beat variability. The second is a measure of beat-to-every-other-beat variability, and the third is a measure of beat-to-every-third-beat variability. The fourth indicator is the number of turning points of the RR-intervals. A signal with AF is likely to have larger values of the first 3 indicators. It is also likely to not have a small or large number of turning points. Thresholds for all 4 indicators are chosen for a given ECG signal, and all 4 indicators must be within/above threshold for an AF call. 
         [0118]    If the number of QRS complexes is above 35, Sluter&#39;s algorithm is used along with the above-mentioned turning point value. This algorithm is based on using a 10 beat window before any given beat, and calculating the best predictor beat within that window for the given beat. This 10 beat window is moved across the entire signal “yfinal”, and the best average predictor beat is found. The error of this predictor beat is calculated, and if it is large-enough and the turning point value is within threshold, AF is called. 
         [0119]    Finally, P-waves are searched for. This is done using a template P-wave and correlating it with the average-beat signal before the QRS onset. The maximum value in the signal before the Q wave is found that is also a local maximum, and is taken to be the peak of the proposed p-wave and is used as the correlation point. The standard deviation of the proposed P-wave is also calculated and compared to the standard deviation of the rest of the average-beat signal before the Q-wave. The ratio of the std of the proposed P-wave to the std of the remaining signal is used as a weighting factor in determining the probability that the proposed P-wave is a P-wave. A final statistic is calculated for P-wave probability for which 1 means perfect P-wave, while 0 and negative numbers indicate there is no P-wave. 
         [0120]    If the P-wave statistic is below 0.25, AF is automatically called even if it was not called based on the RR-statistic indicators. If the P-wave statistic is above 0.7 and the ratio of standard deviations is large-enough, a signal that was called AF based on the RR-statistics is corrected and called non-AF. 
         [0121]      FIG. 10  illustrates schematically, one example of an apparatus implementing the techniques described above. For example, an apparatus may be a processor having software, hardware and/or firmware (or some combination thereof) for performing the techniques described herein. In some variations the apparatus may be configured as computer code for controlling a processor. The apparatus may also include one or more pairs of electrodes for receiving the starting signal. 
         [0122]    In  FIG. 10 , the input  1002  (e.g., from electrodes, or from a received ECG starting signal) receives a signal that may be optionally pre-processed, e.g., by pre-filter  1015 , as mentioned above. The system may also include a sub-region identifying module that reviews the signal being operated on to identify putative sub-regions (e.g., QRS regions). The sub-region identifying module  1001  may be configured to operate on different sub-regions (e.g., QRS, R-R), etc.) or it may include different sub-modules specific to these regions. The sub-region identifying module may be connected to a sub-region cross-correlator  1003  for cross-correlating putative sub-regions. The apparatus may also include on or more memory elements for generating and storing a matrix (e.g., of identified sub-regions); this memory may be modified as the signal is processed. Different matrixes (e.g., putative and/or correlated sub-regions matrixes such as putative and/or correlated QRS matrixes, putative and/or correlated R-R matrix, etc.). The cross-correlator  1003  may include separate sub-region correlators, such as QRS cross-correlator  1021 , R-R cross-correlators  1023 , etc. The apparatus may also include a differential filter module  1005 , which may include sub-modules (QRS filter module  1025 , R-R filter module  1027 ) or the like. In some variations, the apparatus also includes cardiac-health indicator detection modules  1015  configured to determine an indicator of the cardiac health of the patient based on the ECG signal, such as atrial fibrillation. One or more outputs  1031  may also be provided. The output may be a digital output or an indicator output. 
         [0123]    When a feature or element is herein referred to as being “on” another feature or element, it can be directly on the other feature or element or intervening features and/or elements may also be present. In contrast, when a feature or element is referred to as being “directly on” another feature or element, there are no intervening features or elements present. It will also be understood that, when a feature or element is referred to as being “connected”, “attached” or “coupled” to another feature or element, it can be directly connected, attached or coupled to the other feature or element or intervening features or elements may be present. In contrast, when a feature or element is referred to as being “directly connected”, “directly attached” or “directly coupled” to another feature or element, there are no intervening features or elements present. Although described or shown with respect to one embodiment, the features and elements so described or shown can apply to other embodiments. It will also be appreciated by those of skill in the art that references to a structure or feature that is disposed “adjacent” another feature may have portions that overlap or underlie the adjacent feature. 
         [0124]    Terminology used herein is for the purpose of describing particular embodiments only and is not intended to be limiting of the invention. For example, as used herein, the singular forms “a”, “an” and “the” are intended to include the plural forms as well, unless the context clearly indicates otherwise. It will be further understood that the terms “comprises” and/or “comprising,” when used in this specification, specify the presence of stated features, steps, operations, elements, and/or components, but do not preclude the presence or addition of one or more other features, steps, operations, elements, components, and/or groups thereof. As used herein, the term “and/or” includes any and all combinations of one or more of the associated listed items and may be abbreviated as “/”. 
         [0125]    Spatially relative terms, such as “under”, “below”, “lower”, “over”, “upper” and the like, may be used herein for ease of description to describe one element or feature&#39;s relationship to another element(s) or feature(s) as illustrated in the figures. It will be understood that the spatially relative terms are intended to encompass different orientations of the device in use or operation in addition to the orientation depicted in the figures. For example, if a device in the figures is inverted, elements described as “under” or “beneath” other elements or features would then be oriented “over” the other elements or features. Thus, the exemplary term “under” can encompass both an orientation of over and under. The device may be otherwise oriented (rotated 90 degrees or at other orientations) and the spatially relative descriptors used herein interpreted accordingly. Similarly, the terms “upwardly”, “downwardly”, “vertical”, “horizontal” and the like are used herein for the purpose of explanation only unless specifically indicated otherwise. 
         [0126]    Although the terms “first” and “second” may be used herein to describe various features/elements, these features/elements should not be limited by these terms, unless the context indicates otherwise. These terms may be used to distinguish one feature/element from another feature/element. Thus, a first feature/element discussed below could be termed a second feature/element, and similarly, a second feature/element discussed below could be termed a first feature/element without departing from the teachings of the present invention. 
         [0127]    As used herein in the specification and claims, including as used in the examples and unless otherwise expressly specified, all numbers may be read as if prefaced by the word “about” or “approximately,” even if the term does not expressly appear. The phrase “about” or “approximately” may be used when describing magnitude and/or position to indicate that the value and/or position described is within a reasonable expected range of values and/or positions. For example, a numeric value may have a value that is +/−0.1% of the stated value (or range of values), +/−1% of the stated value (or range of values), +/−2% of the stated value (or range of values), +/−5% of the stated value (or range of values), +/−10% of the stated value (or range of values), etc. Any numerical range recited herein is intended to include all sub-ranges subsumed therein. 
         [0128]    Although various illustrative embodiments are described above, any of a number of changes may be made to various embodiments without departing from the scope of the invention as described by the claims. For example, the order in which various described method steps are performed may often be changed in alternative embodiments, and in other alternative embodiments one or more method steps may be skipped altogether. Optional features of various device and system embodiments may be included in some embodiments and not in others. Therefore, the foregoing description is provided primarily for exemplary purposes and should not be interpreted to limit the scope of the invention as it is set forth in the claims. 
         [0129]    The examples and illustrations included herein show, by way of illustration and not of limitation, specific embodiments in which the subject matter may be practiced. As mentioned, other embodiments may be utilized and derived there from, such that structural and logical substitutions and changes may be made without departing from the scope of this disclosure. Such embodiments of the inventive subject matter may be referred to herein individually or collectively by the term “invention” merely for convenience and without intending to voluntarily limit the scope of this application to any single invention or inventive concept, if more than one is, in fact, disclosed. Thus, although specific embodiments have been illustrated and described herein, any arrangement calculated to achieve the same purpose may be substituted for the specific embodiments shown. This disclosure is intended to cover any and all adaptations or variations of various embodiments. Combinations of the above embodiments, and other embodiments not specifically described herein, will be apparent to those of skill in the art upon reviewing the above description.