As you can see in the figure it is an amplitude v/s time plot where there are 2 peaks (having large width) in this plot. I need an algorithm/program which will detect the no. of peaks (having large width). Help me and give me some suggestion

Answers (1)

Do you have the Image Processing Toolbox? This is easy if you do. First of all I think you need to filter. A morphological dilation (moving local max) would be best bet you can get by with a blur (conv() with a sliding averaging box filter). Then threshold at 0.4. Now you have two wide sections and 1 narrow section. This is where the Image Processing Toolbox would help - you could use bwareaopen() to get rid of narrow sections. You could also use regionprops to calculate the width of every section. You can use find() on the thresholded signal to find indexes above the threshold. Use diff() and then find() if you want to find the start and stop of the sections.

This question is closed.

Asked:

on 30 Mar 2013

Closed:

on 20 Aug 2021

Community Treasure Hunt

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

Start Hunting!