How to normalize and re-sample ECG signal?

34 次查看(过去 30 天)
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.

采纳的回答

Star Strider
Star Strider 2016-1-20
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 个评论
Explorer
Explorer 2016-1-24
编辑:Explorer 2016-1-24
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 2016-1-24
编辑:Star Strider 2016-1-25
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.

请先登录,再进行评论。

更多回答(1 个)

Image Analyst
Image Analyst 2016-1-20
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