2008-10-16 9 views
3

J'essaie d'écrire une application d'analyse audio, et j'ai besoin d'identifier les maxima locaux dans un tableau 2D qui représente un spectrogramme. J'ai déjà une bibliothèque open source qui peut générer le spectrogramme en utilisant des transformations de Fourier rapides, mais je me demandais si quelqu'un connaissait de bonnes bibliothèques pour m'aider à trouver les maxima? Je ne suis pas très sûr de quoi chercher Google - le meilleur que je pouvais penser était "bibliothèque numérique", mais cela ne m'a pas très loin.Une bibliothèque C pour trouver des maxima locaux?

De préférence en C, mais je suis ouvert à d'autres suggestions.

Répondre

1

La découverte de pics est un problème assez général. Il a déjà été discuté une fois sur SO comme Peak detection of measured signal.

Les réponses fournies incluent plusieurs heuristiques viables.

Bien sûr, je préfère my own answer si vous avez besoin de rigueur, mais ROOT est écrit en C++, et est presque certainement trop lourd pour votre application, vous aurez donc besoin de dépouiller tout le code que vous voulez ...

1

La bibliothèque scientifique de GNU comporte un multidimensional minimization framework qui peut être fait fonctionner pour la maximisation assez facilement. Cependant, il est conçu pour ne renvoyer qu'un minimum unique plutôt qu'un ensemble de minimums différents.