how to improve detrending?

6 Ansichten (letzte 30 Tage)
Explorer
Explorer am 19 Feb. 2016
Code:
d=load('CU_Ventricular_Tacharrhythmia\cu01m.mat');
noisyECG_withTrend=d.val(1,:);
subplot(2,1,1), plot(noisyECG_withTrend), grid on,
nnoisyECG_withTrend = noisyECG_withTrend';
t = 1:length(noisyECG_withTrend);
[p,s,mu] = polyfit((1:numel(noisyECG_withTrend))',nnoisyECG_withTrend,6)
f_y = polyval(p,(1:numel(noisyECG_withTrend))',[],mu);
ECG_data = nnoisyECG_withTrend - f_y; % Detrend data
subplot(2,1,2), plot(t,ECG_data); grid on
%ax = axis;
%axis([ax(1:2) -1.2 1.2])
title('Detrended ECG Signal')
xlabel('Samples'); ylabel('Voltage(mV)')
legend('Detrended ECG Signal')
  1 Kommentar
Explorer
Explorer am 19 Feb. 2016
Bearbeitet: Explorer am 19 Feb. 2016
Basically, I am trying to remove baseline error so that I can extract features like R to R delay and other intervals.

Melden Sie sich an, um zu kommentieren.

Akzeptierte Antwort

Star Strider
Star Strider am 19 Feb. 2016
See if this filter does what you want (assuming Fs=256):
Fs = 256;
Fn = Fs/2;
Wp = [1 90]/Fn;
Ws = Wp.*[0.5 1.25];
Rp = 1;
Rs = 20;
[n,Wn] = buttord(Wp,Ws,Rp,Rs);
[b,a] = butter(n,Wn);
[sos,g] = tf2sos(b,a);
figure(1)
freqz(sos, 2048, Fs);
  5 Kommentare
Star Strider
Star Strider am 16 Okt. 2018
@Evenor —
My code uses functions from the Signal Processing Toolbox. You need to have it installed in order to run my code. You should be able to run it in R2014a.
Sibi Ramachandran
Sibi Ramachandran am 13 Feb. 2019
@Star Strider Good morning sir I saw your comments and it helped me to understand the use of these filters. I recently posted a question and I was wondering if you would be able to help me also? Thank you so much!

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (0)

Kategorien

Mehr zu Measurements and Feature Extraction finden Sie in Help Center und File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by