MATLAB: How to get the main peaks from a signal with a lot of noises

findpeaks

I have a signal with a lot of noises and I would like to find those peaks that I have circled in the attached picture. I tried using findpeaks function with MinPeakHeight and MinPeakProminence options but I did not succeed. Thanks

Best Answer

That appears to be a Fourier transform of a noisy signal. If so, because the noise is broadband, a frequency-selective filter of the time-domain signal will not provide an effective solution.
I would use the envelope (link) function on the data you presented, and then identify the peaks of the envelope. You will have to experiment with it to get the resolution you want.