How to normalize and re-sample ECG signal?

18 visualizzazioni (ultimi 30 giorni)
There is an ECG signal I want to normalize and re-sample at 200Hz. The signal is stored in first row of 16265m.mat
This recording is downloaded from website of PhysioNet . It's length is 10 seconds.

Risposta accettata

Star Strider
Star Strider il 20 Gen 2016
I have no idea what you mean by ‘normalize’. When I looked it up, it seemed relatively noise-free, and the baseline was smooth and not offset. The sampling frequency is 128 Hz, so the easiest way to resample it is to use the Signal Processing Toolbox resample function:
y = resample(x, 200, 128);
The resample function incorporates filtering of the resampled signal, so I prefer it for signal processing.
  4 Commenti
Explorer
Explorer il 24 Gen 2016
Modificato: Explorer il 24 Gen 2016
Thank you for your detailed reply. I have used the function you asked to normalize the sampling frequency and here it is . The recordings I am re-sampling are from MIT-BIH Normal Sinus Rhythm, CU Ventricular Tacharrhythmia, MIT-BIH Malignant Ventricular Ectopy and MIT-BIH SupraVentricular Arrhythmia.
As you said above, bandpass filtering will be useful only for Normal Sinus Rhythm and it will not work for irregular rhythms.
But the recordings I am going to process include irregular rhythms so I need to use notch filter (Band Stop Filter). But what range of frequencies will be in pass band and what range will be in stop band. These things are not mentioned in paper I am referring. So do you have idea about these frequency ranges?
Please also code, if possible.
Star Strider
Star Strider il 24 Gen 2016
Modificato: Star Strider il 25 Gen 2016
My pleasure.
I didn’t say that passband filtering is only appropriate for NSR. A 2-48 Hz passband is only appropriate to NSR (although you can use a 1-100 Hz passband). Quoting from my earlier Comment, ‘Irregular rhythms such as atrial fibrillation/flutter and ventricular tachyarrhythmias require a 1-100 Hz passband’
For bandpass filters, I usually define the passband and stopband as (using the current example):
Fs = 250; % Sampling Frequency
Fn = Fs/2; % Nyquist Frequency
Wp = [2 100]/Fn; % Filter Passband (Normalised)
Ws = Wp .* [0.5 1/0.5]; % Filter Stopband (Normalised)
Then follow the rest of the filter design procedure I linked to in my previous Comment. Either the Butterworth or Chebyshev Type II design will work. For EKGs, because the low frequency cutoff is close to 0, I prefer the Chebyshev with a 1 dB passband ripple and 10 dB stopband ripple. If you have problems getting a stable filter, increase the stopband ripple, perhaps to 25 dB or so.
I haven’t looked that the file you linked to. I only look at those attached to MATLAB Answers posts. Attach it using the ‘paperclip’ icon, and complete both the ‘Choose file’ and ‘Attach file’ steps.

Accedi per commentare.

Più risposte (1)

Image Analyst
Image Analyst il 20 Gen 2016
I haven't seen the signal, but how about using interp1()?

Community Treasure Hunt

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

Start Hunting!

Translated by