Skip to content

Python command line application used to denoise ECG data using wavelet transform, Savitky-Golay filter and Deep Neural Networks.

Notifications You must be signed in to change notification settings

MichWozPol/ECG_denoising

Repository files navigation

ECG_denoising

Python command line application used to denoise ECG data using wavelet transform, Savitzky-Golay filter and deep neural network.

Considered noises

  • baseline wander
  • power line interference
  • external electromagnetic fields
  • random body movements

Wavelet transform

Steps:

  1. Signal loading
  2. Multilevel signal decomposition
  3. Signal denoising using SureShrink method
  4. Inverse Discrete Wavelet Transform

Summary:
Mostly Daubechies and Symlets wavelets were tested. Best performance largly depends on signal, however sym10, sym11, sym13 and db13 are the best wavelets for used database. If it comes to decompostion level, best performance shows third decomposition level.

Savitzky-Golay filter

Best performance can be observed for window length = 2, polynomial degree = 2 and padding method = "interp".

Deep neural networks

Each network was trained using QT database and MIT-BIH Noise Stress Database.

FCN-DAN

Autoencoder neural network, used to teach network how to encode and decode desired signal. FCN-DAN results are much better than aforementioned methods, nevertheless network was learning on specific dataset.
mean RMSE = 1.859
mean MAD = 0.429

DRNN

Simple neural network consisted of LSTM layer and densely connected following layers (consisted of 64 neurons each).
mean RMSE = 3.047
mean MAD = 0.689

Results Overview

Databases

About

Python command line application used to denoise ECG data using wavelet transform, Savitky-Golay filter and Deep Neural Networks.

Topics

Resources

Stars

Watchers

Forks

Packages

No packages published