2D PEAK FINDER

10 views (last 30 days)
raj
raj on 22 Mar 2012
Hello , I have a very large matrix of 900x500 which i gained from applying a spectrogram. what i want is to find the local maxima for every row and plot those values.A threshold value is initialized for reference as peaks above this values are plotted. Actually what i did earlier was using the max(A(the matrix)- threshold,0) but the result obtained by this and by adjusting the colorbar of my spectrogram gives me the same result . I want to know is my idea of peakfinding correct? or can u suggest me the correct method of finding the peaks above a threshold .
  1 Comment
raj
raj on 22 Mar 2012
hmmm just now got some clarity how can i plot only the peaks any idea??

Sign in to comment.

Accepted Answer

Geoff
Geoff on 22 Mar 2012
Howdy, if you only want to plot the peaks (with their original values)
B = A;
B(B <= threshold) = NaN;
plot(B'); % Transposed to treat rows of B as individual series
By setting any non-required value to NaN, you make the line non-continuous. If you have only a single value above the threshold at one time, it will be difficult to see unless you use markers on your plot:
plot(B', '.-');
  2 Comments
raj
raj on 22 Mar 2012
How can I plot the peaks using markers on a 2D plot??? It is almost like a surf plot or imagesc plot but only with marking of the different peak values
raj
raj on 22 Mar 2012
if i plot using an imagesc command I almost get the results as a spectrogram which represents the same results of a spectrogram with change in color bar scale . Is it the right way of representing the peak finder results

Sign in to comment.

More Answers (0)

Community Treasure Hunt

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

Start Hunting!