1
$\begingroup$

I've been doing FFT's (on sound) for a while and usually use the highest intensity or the ones above average to get the spikes in an FFT result.

What would be a good method to get all the 'spikes' in an FFT. I can't use averages or peaks because the frequency response drops off. Visually its quite obvious there is a spike but I can't get a way extract the frequency from the spike.

Low frequencies always tend to have a higher itensity than higher ones but don't necessarily have any spikes in them.

Are there any good reliable techniques for this?

$\endgroup$
  • $\begingroup$ may be check the difference between the intensity at the current frequency and the one just before that? If the difference is above a certain threshold then consider it a spike, otherwise not. $\endgroup$ – user13267 Sep 30 '13 at 7:54
  • $\begingroup$ Thanks @user13267 it sounds like a good idea, I'll give it a try why not add this as an answer? $\endgroup$ – Akshat K Sep 30 '13 at 8:00
  • $\begingroup$ @user13267 I have a bit of trouble with aliasing, I do apply the window but its there in small amounts how do you think I can account this in? $\endgroup$ – Akshat K Sep 30 '13 at 9:47
1
$\begingroup$

A statistical test might be appropriate. For instance, if you assume the noise floor is Gaussian, then you could compute the standard deviation in any particular octave (or other appropriate sub-band), and look for maxima that are whatever multiple of standard deviations above the local average that you might consider to be statistically significant for your application.

$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.