MATLAB Answers

Sharah
0

How to find number of times graph goes back to zero

Asked by Sharah
on 15 Jun 2014
Latest activity Commented on by Star Strider
on 16 Jun 2014
Hello everyone, I am new to MATLAB and I am currently plotting a normalised gyroscope data as in the picture below, and I am trying to count the number of the graph trying to go back to zero (on the word, number of the graph descending after reaching each peak)
For example, if I calculate it manually fromthe graph, it's around 9 times it tries to go back to zero. But I am trying to do analysis on big data so I really ned way of finding it by MATLAB.
Help me, thanks

  0 Comments

Sign in to comment.

1 Answer

Answer by Star Strider
on 15 Jun 2014
 Accepted Answer

To find the troughs, invert the ‘y’ values and use findpeaks:
Example:
x = linspace(0,250,250); % Create Data
y = 0.25*sin(0.25*pi*x) .* exp(-(x-125).^2./1000) + exp(-(x-125).^2./1000);
[pks,plocs] = findpeaks(y); % Find peaks
[trs,tlocs] = findpeaks(0.1+max(y) - y); % Find troughs
figure(1)
plot(x, y)
hold on
plot(x(plocs), y(plocs), '^r', 'MarkerFaceColor','r') % Plot peaks
plot(x(tlocs), y(tlocs), 'vg', 'MarkerFaceColor','g') % Plot troughs
hold off
grid
produces:

  6 Comments

My pleasure!
Did the thresholding work as you want it to? If not, findpeaks has other options we can consider. If you want to post your data here I can experiment with findpeaks on it.
I always use the ‘.png’ format (portable network graphics). You used .jpg, which at least used to use a discrete cosine transform that produces ‘ringing’ at abrupt transitions. (If Image Analyst happens upon this, I will welcome his explanation and clarification.)
thank you, that solution is very helpful. yes, i do have another problem with it but i posted on anther question http://www.mathworks.co.uk/matlabcentral/answers/134657-how-to-detect-point-before-it-went-on-plateau
My pleasure!
I saw your other post and suggested a solution.

Sign in to comment.