MATLAB Answers

How to remove noise from the signal and identify the peaks for each cycle of the total signal

조회 수: 10(최근 30일)
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

표시 이전 댓글 수: 1
Image Analyst
Image Analyst 22 Nov 2019
  1. Please indicate with red arrows or circles or something exactly what parts of the signal you consider to be "peaks" that you want to locate.
  2. And define "interference".
  3. And attach your data in a .mat file with the paper clip icon.
  4. Have you tried a filter like sgolayfilt() to smooth out the data?
  5. And read this link
Lokeswara reddy pamulapate
Ya I tried with sgolayfit() but did not work
In the data when we zoom in we get so many peaks in the data. There are some noisey signal which i want to remove.
Image Analyst
Image Analyst 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?

로그인 to comment.

채택된 답변

Daniel M
Daniel M 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

로그인 to comment.

추가 답변(1개)

mahyar
mahyar 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

로그인 to comment.

이 질문에 답변하려면 로그인을(를) 수행하십시오.


Translated by