Finding peaks only in signal

1 view (last 30 days)
ben howey
ben howey on 30 Jul 2015
Answered: Star Strider on 30 Jul 2015
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
Azzi Abdelmalek on 30 Jul 2015
[peak,idx]=findpeaks(YourSignal,'minpeakwidth',1000)

Star Strider
Star Strider on 30 Jul 2015
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.

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!