Finding peaks only in signal
Show older comments
I want to find only the peaks in a signal that could have more than one frequency as shown in the picture

At the trough there is sometime small peaks that are being picked up using the findpeaks function.
Answers (2)
Azzi Abdelmalek
on 30 Jul 2015
[peak,idx]=findpeaks(YourSignal,'minpeakwidth',1000)
Star Strider
on 30 Jul 2015
0 votes
You have a clean signal without much noise.
I would begin by doing an fft on your signal, and use it to choose the frequency components of interest. Then use a bandpass filter to keep the frequencies you want. (A brief description of filter design and implementation is here.)
After that, use findpeaks, choosing the appropriate name-value pairs to tweak it to your needs as necessary. It will be much easier to use findpeaks on the filtered signal than on the original unfiltered signal.
Categories
Find more on Descriptive Statistics in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!