How to remove noise from the signal and identify the peaks for each cycle of the total signal
26 views (last 30 days)
Show older comments
Lokeswara reddy pamulapate
on 22 Nov 2019
Hi everyone,
I have medical data of aorata, In which I want to remove the noise signals and identify the peaks and interference. After that I want to separate the each cycles
from starting point of peak to ending point of the peak for total signal present.
Can any one help me how to proceed on.
Thank you very much for your time.
4 Comments
Image Analyst
on 22 Nov 2019
It's not really clear why some of the peaks got marked with red and some didn't. Can you explain in words what criteria you're using to say whether a peak is a legitimate peak instead of a noise peak?
Accepted Answer
Daniel M
on 22 Nov 2019
Your data has too many artifacts to allow easy processing. You would first need to visually/manually go through your data and select chunks of it that are free of artifacts. Long periods of flat noise and large spontaneous non-periodic spikes I would consider to be artifacts. Possibly the sensor was not attached properly and the impedance was too high, possibly motor stimulation or other muscular artifacts. You can't analyze this data effectively, without more advanced techniques (like independent component analysis).
If this is EKG data, the typically preprocessing is to bandpass filter from 0.5-150 Hz, depending on your sampling rate, then notch filter the line noise (typically 50 or 60 Hz plus the harmonics). You could possibly use an sgolayfilt to remove other types of noise. You may also need to do other detrending of baseline shift.
If you need help with any of this, let us know, or search MATLAB Answers. I have personally written answers to dozens of questions regarding EKG, as well as how to do bandpass and notch filters. Search with: answered_by:"Daniel M" to get answers I have contributed.
After that, to extract the peaks and epoch the data, follow the example on this page:
0 Comments
More Answers (1)
mahyar
on 3 Feb 2020
I assume your goal is event detection. You need to apply more agressive filter to remove high frequency noise and obtain smoother signal. Then apply "findpeaks" function to your data to identify the peaks and apply again to inverted data to detect some potential onset/offset. Then you might set some thresholds to select best identified points to finaly extract the events.
0 Comments
See Also
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!