3

I'm trying to write an audio analysis application, and I need to identify local maxima in a 2D array which represents a spectrogram. I've already got an open source library that can generate the spectrogram using Fast Fourier Transforms, but I was wondering if anybody knew of any good libraries to help me with actually finding the maxima? I'm not quite sure what to search Google for - the best I could think of was "numerical library" but that hasn't got me very far.

Preferably in C, but I'm open to other suggestions.

warren
  • 32,620
  • 21
  • 85
  • 124
andygeers
  • 6,909
  • 9
  • 49
  • 63

2 Answers2

1

Peak finding is a fairly general problem. It has already been discussed once on SO as Peak detection of measured signal.

The answers provided include several viable heuristics.

Of course, I prefer my own answer if you need rigor, but ROOT is written in c++, and is almost certainly too heavy for your application, so you'll need to strip out just the code you want...

dmckee --- ex-moderator kitten
  • 98,632
  • 24
  • 142
  • 234
1

The GNU Scientific Library features a multidimensional minimization framework that can be made to work for maximization easily enough. It's designed to only return a single minimum rather than a bunch of different minima, however.

andygeers
  • 6,909
  • 9
  • 49
  • 63