Assistance Needed to Determine Noise in ECG Dataset

14 visualizzazioni (ultimi 30 giorni)
Dear Community,
I have an ECG dataset, but I am unsure whether the signals are noisy or not. Here are some details about the dataset:
  • Type of data: 12-lead ECG recordings
  • Duration: Each recording is 10 seconds long
  • Sampling rate: 500 Hz
  • Data format: Each signal column contains the raw ECG recording, with each value representing the amplitude of the ECG signal at a given time point.
  • Length of data: 5,000 data points per lead
  • Unit of measurement: 0.01 mV (standard Philips record system)
I have also visualized the ECG signals for all 12 leads attached
Could anyone guide me on how to determine if these signals are noisy? Are there specific techniques or MATLAB functions that can help identify and possibly filter out the noise? Any advice or pointers to relevant resources would be greatly appreciated.
Thank you!
Best regards,

Risposta accettata

Star Strider
Star Strider il 22 Giu 2024
It does not appear to be excessively noisy. There is some baseline variation, however this is not present in every lead and is not present in contiguous leads as I would expect it to be, so it may be artificial.
The way to determine if there is noise in a signal is to calculate the Fourier transform (preferably one-sided) and then determine the magnitude of low-frequency baseline drift and the presence of band-limited noise (such as mains/line-frequency niose) or broadband noise. Band-limited noise can be dealt with using a frequency-selective filter (incluindg a bandstop or ‘notch’ filter), however broadband noise is best dealt with using wavelet denoising or a Savitzky-Golay filter, and luck, since it may be impossible to deal with effectively.
  2 Commenti
Sabrine
Sabrine il 22 Giu 2024
Thank you for your detailed explanation! I appreciate the insight regarding the baseline variation and the possibility of it being artificial. Your suggestions on using the Fourier transform to identify different types of noise and the appropriate filtering techniques are very helpful. I will definitely look into frequency-selective filters, wavelet denoising, and Savitzky-Golay filters as you recommended.
Thanks again for your assistance!
Best regards,

Accedi per commentare.

Più risposte (1)

halleyhit
halleyhit il 22 Giu 2024
Hi Sabrine, it depends on how you define "noise". If you define "high frequency signal" as "noise", Star already provides solution regarding Fourier transform.
Generally speaking, you can define noise by frequency-domain method or time-domain method. Then you need to design filter. IIR and FIR filters can remove noise defined by frequency-domain, while Wiener and Karman filters works fine in time-domain.
After you remove "noise", you get "pure" signal. Then you can compare noise and pure, to say whether it is noisy.
MATLAB can help you design filter, but it is you who decide filter type and requirements.
  1 Commento
Sabrine
Sabrine il 22 Giu 2024
I really appreciate your recommendation! I'll definitely give it a try and see how it works out. Thanks again for the suggestion!
Best regards,

Accedi per commentare.

Community Treasure Hunt

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

Start Hunting!

Translated by