Skip to content Skip to navigation

Connexions

You are here: Home » Content » Algorithms for ECG Signal Analysis

Navigation

Lenses

What is a lens?

Definition of a lens

Lenses

A lens is a custom view of the content in the repository. You can think of it as a fancy kind of list that will let you see content through the eyes of organizations and people you trust.

What is in a lens?

Lens makers point to materials (modules and collections), creating a guide that includes their own comments and descriptive tags about the content.

Who can create a lens?

Any individual member, a community, or a respected organization.

What are tags? tag icon

Tags are descriptors added by lens makers to help label content, attaching a vocabulary that is meaningful in the context of the lens.

This content is ...

Affiliated with (What does "Affiliated with" mean?)

This content is either by members of the organizations listed or about topics related to the organizations listed. Click each link to see a list of all content affiliated with the organization.
  • Rice University ELEC 301 Projects

    This module is included inLens: Rice University ELEC 301 Project Lens
    By: Rice University ELEC 301As a part of collection: "ELEC 301 Projects Fall 2008"

    Click the "Rice University ELEC 301 Projects" link to see all content affiliated with them.

Also in these lenses

  • Lens for Engineering

    This module is included inLens: Lens for Engineering
    By: Sidney BurrusAs a part of collection: "ELEC 301 Projects Fall 2008"

    Click the "Lens for Engineering" link to see all content selected in this lens.

Recently Viewed

This feature requires Javascript to be enabled.
 

Algorithms for ECG Signal Analysis

Module by: Christine Moran, Yuheng Chen, Leslie Goldberg. E-mail the authors

Summary: In order to accurately detect the heart rate in the ECG signal, filter banks analysis in Matlab is used on the filtered ECG signal. This algorithm can also be used to detect abnormalities in the ECG signal. LabVIEW is then used to notify the user of the results. This includes displaying the heart rate and alerting the user if an abnormality is detected.

ECG Signal Analysis: Abnormality Detection

The flowchart below breaks down the tasks needed to accomplish signal analysis in greater detail. Both LabVIEW and Matlab were used to accomplish these tasks.

Figure 1
Signal Analysis Flow Chart
Signal Analysis Flow Chart (graphics1.png)

Matlab Implementation of Filter Banks Analysis

Many scenarios deal with signals which contain specific energy distributions in the frequency domain. For example, with regard to the ECG, a significant proportion of the energy from the QRS complex extends to a frequency of 40 Hz, and even more if the Q, R, and S waves have very sharp morphologies. The P and T waves, in general, have a significant proportion of their energy only up to 10 Hz. Thus, a strategic approach to detecting heartbeats is to analyze different sub-bands of the ECG, rather than just the output of one filter which maximizes SNR of the QRS.

In this filter bank analysis technique we use 5 sub-bands, each one has bandwidth 5Hz. The ECG signal is processed by those 5 sub-band filters and downsampled. The downsampled signal is

Figure 2
Figure 2 (graphics2.png)

A variety of features which are indicative of the QRS complex can be designed by combining sub-bands of interest from l = 0, 1, … , M-1. For example a sum-of-absolute values feature P1 can be computed using sub-bands 1, 2, and 3.

Figure 3
Figure 3 (graphics3.png)

P1 has a value which corresponds to the energy in the frequency band [5.6, 22.5] Hz. Similarly, P2 and P3 can be computed using sub-bands {1, 2, 3, 4}, and {2, 3, 4}, respectively, and these values are proportional to the energy in their respective sub-bands. Heuristic beat detection logic can be used to incorporate some of the above features which are indicative of the QRS complex.

Figure 4 gives an overview of the sequential levels in the beat detection algorithm. The goal of the detection algorithm is to maximize the number of true positives (TP’s), while keeping the number of false negatives (FN’s) and false positives (FP’s) to a minimum. Since it is not possible to arrive at this goal using one simple detector, multiple detectors with complementary FN’s and FP’s performances are simultaneously operated and the results of each fused together to arrive at an overall decision. The advantage of this strategy is that multiple features which are indicative of the QRS complex can be used to detect beats.

Figure 4
Beat Detection Algorithm Schematic
Beat Detection Algorithm Schematic (graphics4.png)

A one-channel beat detection block is described in Figure 5.

Figure 5
Schematic of One-Channel Beat Detection Block
Schematic of One-Channel Beat Detection Block (graphics5.png)

The detection strength Ds of an incoming feature (e.g., P1, P2, P3) is determined by comparing with the signal and noise levels (SL and NL, respectively):

Figure 6
Figure 6 (graphics6.png)

If a feature’s value is less than NL then Ds is limited at 0, and if it is above SL then DS is limited to one. When a feature has a greater than a specified threshold (preset between zero and one) it is classified as a signal peak and the signal history is updated with the feature’s value. If the feature has a smaller than the threshold it is classified as a noise peak and the noise history is updated with the feature’s value.

The detail operations of each level can be found in the paper by V. Afonso et al (ECG beat detection using filter banks, IEEE Trans. Biomed. Eng. 46: 1999). Also, download and run ECGmain.m to test out filter banks. Supplementary mfiles: nqrsdetect.m, ECGSigProc.m, t.mat, x.mat.

LabVIEW Programming for Signal Processing and Interfacing

LabVIEW is used to not only process and acquire the signal, but to also develop an user friendly interface that automatically alerts the user to any abnormalities or arrhythmias detected. This particular ECG is developed to detect left ventricular hypertrophy and old myocardial infarction. It will also automatically display the heart rate and whether or not the patient’s heart rate is within a healthy range.

Figure 7: This view of the the GUI shows a normal, healthy ECG signal. The indicator lights (6) will change color depending on the diagnosis. Additionally, the green trace turns red if any abnormality or arrhythmia is detected.
The Graphical User Interface
The Graphical User Interface (graphics7.png)

The user interface consists of several useful features. First, there is a text input for the patient’s name to avoid confusion in the clinic. Second, the ECG chart is automatically updated with the name and live signal data. Third, the user can control the data acquisition periods. The heart rate and any abnormalities are displayed in the patient report. The warning lights to the left of the patient report correspond to the current condition of the patient’s ECG. If everything is normal, the green light is on and the signal is green. If an arrhythmia is detected, the yellow light turns on and a warning message will appear in the patient report that indicates the type. Similarly, the orange light turns on if an abnormality is detected and a warning message appears in the report. For either of these, the ECG trace turns red in the chart window. A red light indicates that no recognizable signal is being detected. This can mean that the patient has flat-lined, that the circuit board is not powered or that the leads are not connected properly. As a result, the warning message will ask the user to check the lead and power connections. Finally, the form can be reset between patients. You can download our VI here to test it out.

Content actions

Download module as:

Add module to:

My Favorites (?)

'My Favorites' is a special kind of lens which you can use to bookmark modules and collections. 'My Favorites' can only be seen by you, and collections saved in 'My Favorites' can remember the last module you were on. You need an account to use 'My Favorites'.

| A lens I own (?)

Definition of a lens

Lenses

A lens is a custom view of the content in the repository. You can think of it as a fancy kind of list that will let you see content through the eyes of organizations and people you trust.

What is in a lens?

Lens makers point to materials (modules and collections), creating a guide that includes their own comments and descriptive tags about the content.

Who can create a lens?

Any individual member, a community, or a respected organization.

What are tags? tag icon

Tags are descriptors added by lens makers to help label content, attaching a vocabulary that is meaningful in the context of the lens.

| External bookmarks