Compressing ECG Signals using Matching Pursuit

Considering that the number of ECG records annually numbers in the millions and the use of sending ECG records over telephone lines for remote analysis is increasing.

Abstract
Considering that the number of ECG records annually numbers in the millions and the use of sending ECG records over telephone lines for remote analysis is increasing, the need for effective ECG compression techniques is great. On this project we try to measured the efficiency of Matching pursuit algorithm , on compressing an ECG signal on real time by implemented the algorithm with C++.

Algorithm stages
Create dictionary of time-frequency atoms:
1
The basic function that had been choose it’s a gabor function that given as:
2
Divide the signal to segments and perform on each segment iterative algorithm such as:
3
4 Is the residual vector after each iteration which calculate as:
5
for each chosen function the parameters are saved.

at the end of the process after m iterations the signal can be written as:
6
The Decompress stages are the opposite to those whose described above , by create the dictionary functions with the stored parameters,
And reconstruct the signal from those functions and the inner_products values.

Implementation
78

Results
The graphs below compare two ECG signals, normal ECG (blue) and not normal ECG signal (pink).

This graph had been tested for 5% PRD requested:
9

This graph had been tested with a dictionary of 7680 function:

10

Conclusion
We achieve good compression ratio, 1:37, for regular ECG signal. For other signals it’s recommended to insert another kind of function to the dictionary. In addition implementation of back projection algorithm will decrease the time for each iteration in the algorithm.

Acknowledgments
We would like to thank our supervisors Johanan Erez , Elad Yom-Tov and the PSPL laboratory for their support and guidance and to the Ollendorff Research Center Fund which supported this project.