MATLAB: How to do denoising for ECG signal

digital image processingdigital signal processingimage analysissignal processingSignal Processing ToolboxwaveletWavelet Toolbox

Hi Everyone, I faced a problem to apply Wavelet for denoising ECG Signal I know there are three steps you have to do which are :
  1. Transform the noisy ECG signal to wavelet domain for finding DWT coefficients of each level (sub band).
  2. Apply thresholding to obtain the estimated wavelet coefficients for each level. It is possible to use different thresholding functions.
  3. Reconstruct the denoised ECG signal from the estimated wavelet coefficients by inverse DWT.but I am still cnofifusing please I am looking for you help.
my code is :
S=load('data.mat');
y1=S.sig209;
nsig = awgn(y1,15);
sig1=y1+nsig;
[CA,CD] = wavedec(sig1,5,'sym7');
P = thselect(CA,'rigrsure');
CA= wthresh(CA,'s',P);
Csig = idwt(CA,CD,'sym7');
Thank you for your help

Best Answer

1. thresholding function is applied only on details coefficients
2. you can use another thresholding function as semi-soft,soft, garrote, hard ,hyperbolic
3. you can change threshold value ...there is more than one technique,depending on your noise: baseline, power line, muscle noise...
Related Question