Assistance Needed to Determine Noise in ECG Dataset

조회 수: 14 (최근 30일)
Sabrine
Sabrine 2024년 6월 22일
댓글: Star Strider 2024년 6월 22일
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,

채택된 답변

Star Strider
Star Strider 2024년 6월 22일
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
Sabrine
Sabrine 2024년 6월 22일
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,
Star Strider
Star Strider 2024년 6월 22일
As always, my pleasure!

댓글을 달려면 로그인하십시오.

추가 답변 (1개)

halleyhit
halleyhit 2024년 6월 22일
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
Sabrine
Sabrine 2024년 6월 22일
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,

댓글을 달려면 로그인하십시오.

카테고리

Help CenterFile Exchange에서 Smoothing and Denoising에 대해 자세히 알아보기

Community Treasure Hunt

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

Start Hunting!

Translated by