Hi everyone again!
this time I am struggling in order to find the distribution of peaks in a random signal (actually a vibration). The theory says that the distribution of peaks (not of the instantaneous amplitudes!) can give interesting informations on the type of signal. And be used for fatigue evaluation. See for example the following excerpt from Harris-Shock and Vibration Handbook.
So if a have a very long file with sampled data (for example 10E3, 10E4 points) with a good enough sampling frequency, I could think to try to determine numerically the following distribution (also from Harris-Shock and Vibration Handbook)
Now before I reinvent the wheel I wanted to ask around if someone knows a tool that is already posted in forum and that can make the trick.
Or even something in MATLAB, even if I am aware I am speaking here of the competition .
I am not the best programmer but if I have to develop it myself, I think I would write a pseudo-algorithm like:
for every time step j take the absolute value of y(j)
if abs(y(j)) > abs(y(j-1)) AND abs(y(j))>abs(j+1)) then
p=p+1, peak(p)=y(j)
at the end the vector peak(p) contains all the peaks and I can make use of the hist/histogram function to plot my results.
The question is if there is some kind of hidden tool that already does this. It should be a relatively common problem of statistic.
I already looked into the Data Analysis Extension Pack but although there are localmax functions, they are not what I am looking for.
Thanks in advance for any hint
Best regards
Claudio
Solved! Go to Solution.
> I am not the best programmer but if I have to develop it myself, I think I would write a pseudo-algorithm like:
Looking just at the two neighbors would give you a lot of false positives in case of a noisy signal, I guess.
> I already looked into the Data Analysis Extension Pack but although there are localmax functions, they are not what I am looking for.
Why?? localmax seems to do exactly what you proposed with your pseudocode but you additionally have better control of the window width using the optional last function argument.
> I am not the best programmer but if I have to develop it myself, I think I would write a pseudo-algorithm like:
Looking just at the two neighbors would give you a lot of false positives in case of a noisy signal, I guess.
> I already looked into the Data Analysis Extension Pack but although there are localmax functions, they are not what I am looking for.
Why?? localmax seems to do exactly what you proposed with your pseudocode but you additionally have better control of the window width using the optional last function argument.
Hi Werner...
Why? because probably I should go home as it is Friday evening :-). I just didn't understand, that localmax/min works on the whole time history, I read quickly and thought it will work only on ONE maximum/minimum.
Best regards and thanks a lot for your help.
Claudio
And here are the required files if someone in the future should need them. As a small sign of gratitude for this forum.
Nice weekend everyone!
Claudio
Thank you, Claudio.