Assistance Needed to Determine Noise in ECG Dataset
14 views (last 30 days)
Show older comments
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,
0 Comments
Accepted Answer
Star Strider
on 22 Jun 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 Comments
More Answers (1)
halleyhit
on 22 Jun 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.
See Also
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!