Hello everyone, I am looking for frequency (fft magnitude) peaks for specific activity. In order to confirm my theory, I have performed experiments in many different situations. So, what I need to do is to get specific peaks for my desired activities. Once I confirm those peaks do not happen in any other situation(noise, power supply ripple..) my theory is correct. So now, I have a hard time how to distinguish those peaks. Is there any specific method (algorithm) that exists, or should I just look for unions, and differences in my data. Hope I explained enough, wg

:
Moved by Admin

ana wrote: > Hello everyone, > > I am looking for frequency (fft magnitude) peaks for specific activity. > In order to confirm my theory, I have performed experiments in many > different situations. So, what I need to do is to get specific peaks for > my desired activities. Once I confirm those peaks do not happen in any > other situation(noise, power supply ripple..) my theory is correct. > Hi, just for clarification: Are you looking for a way to find the local maxima of a two dimensional curve, consisting of measured values? Or... - ... in more than two dimensions? - ... with constraints regarding the detection of maxima? - ... under hard (time/space/whatever) conditions? - ... using interpolation, to find the "real" value? - ... do you want to skip the fft? - ... ? > So now, I have a hard time how to distinguish those peaks. Umm, of course the most simple algorithm to find a maximum in 2d may be:

1 | if (x[n] > x[n-1]) && (x[n] > x[n+1]) then |

2 | print "maximum found." |

It runs in situ and in linear time, so there is basically nothing wrong with it. When the problem becomes more complicated there may be a bunch of methods you can try, depending on the concrete constraints; e.g. - using gradients - a linear programming solver - the wide field of genetic programming - mathmatical methods like Lagrange multipliers - and surely a lot more...