Need help to removing motion artifact from ECG signal

25 Ansichten (letzte 30 Tage)
Ali Asghar
Ali Asghar am 21 Mai 2023
Kommentiert: Star Strider am 24 Mai 2023
Hello Expert,
I have 4 channel ECG signal. Ecg is recored while the person is walking. So ECG have motion artifact. I need your advice..
1-Which filter use to remove motion artifact from the signal?
2- How to campare filtered and unfiltered signal?
Please see the attached data file.
I am looking positive for your reponse.
Take care

Akzeptierte Antwort

Star Strider
Star Strider am 21 Mai 2023
Try something like this —
LD = load('test10_00wm.mat')
LD = struct with fields:
val: [4×4000 double]
type('ECG.m') % I was hoping That The 'ECG.m' File Had A Sampling Frequency
ECG = val';
val = LD.val.'; % Transpose
Fs = 1;
L = size(val,1);
t = linspace(0, L-1, L)/Fs;
figure
tiledlayout(size(val,2),1)
for k = 1:size(val,2)
nexttile
plot(t, val(:,k))
grid
end
sgtitle('Original')
xlabel('Time (units)')
Fn = Fs/2;
NFFT = 2^nextpow2(L);
FTval = fft((val-mean(val)).*hann(L), NFFT)/L;
Fv = linspace(0, 1, NFFT/2+1)*Fn;
Iv = 1:numel(Fv);
figure
tiledlayout(size(val,2),1)
for k = 1:size(val,2)
nexttile
plot(Fv, abs(FTval(Iv,k))*2)
grid
xlim([0 Fs*0.1])
end
xlabel('Frequency (cycles/(time unit))')
val_filt = highpass(val, 0.001*Fs, Fs, 'ImpulseResponse','iir');
figure
tiledlayout(size(val,2),1)
for k = 1:size(val_filt,2)
nexttile
plot(t, val(:,k))
grid
end
sgtitle('Filtered')
xlabel('Time (units)')
figure
tiledlayout(size(val,2),1)
for k = 1:size(val_filt,2)
nexttile
plot(t, val(:,k))
grid
xlim([0 1000])
end
sgtitle('Filtered (Detail)')
xlabel('Time (units)')
The isoelectric reference in an EKG recording is defined as the value of the P-R interval. By that standard, there is not much baseline drift in columns 2-4, however a highpass filter eliminates what llitle baseline drift there may be.
The rhythm in all appears to be regular, however without an accurate time base, I cannot estimate the rate or measure the intervals. I assume normal sinus rhythim in all the columns, however I cannot see the P-deflections in any of them. Column 1 appears to be bad lead placement, although I cannot rule out significant pathology (possibly hyperkalemia, however a clinical correlation would be necessary). Columns 2 & 3 appear to be normal, although the P deflection appears to be absent in both and the T-deflection also absent in column 3. Column 4 has what appears to be significant S-T depression, likely due to ischaemia, although drug effects cannot be ruled out.
Clinical Impression: Column 1 needs to be re-recorded, column 4 could have significant pathology and needs urgent clinical follow-up.
.
  11 Kommentare
Ali Asghar
Ali Asghar am 24 Mai 2023
Verschoben: Star Strider am 24 Mai 2023
thanks star
Star Strider
Star Strider am 24 Mai 2023
As always, my pleasure!

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (0)

Produkte


Version

R2021a

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by