iPhone: puissance du processeur pour effectuer le domaine de fréquence / transformation DSP / Fourier?

StackOverflow https://stackoverflow.com/questions/1425504

Question

Je souhaite analyser le son MIC de façon continue (pas seulement un snipper ou un échantillon pré-enregistré), afficher un graphique de fréquence et filtrer certains aspects de l'audio. L'iPhone est-il assez puissant pour cela? Je suppose que la réponse est oui, étant donné les applications de reconnaissance vocale Google et iPhone, Shazaam et d’autres applications de reconnaissance musicale, ainsi que des applications de tuner de guitare. Cependant, je ne sais pas à quelles limitations je vais devoir faire face.

Quelqu'un joue-t-il avec ce domaine?

Était-ce utile?

La solution

L'échantillon aurioTouch d'Apple a une implémentation FFT.

Autres conseils

Les applications que j'ai vues effectuent une sorte de reconnaissance musicale / vocale ont besoin d'une connexion Internet. Il est donc fort probable qu'elles soient simplement calculées en fonction de l'audio et envoyées par HTTP pour permettre la reconnaissance. le serveur.

Dans tous les cas, les graphes de fréquence et le filtrage ont déjà été effectués sur des processeurs inférieurs il y a une dizaine d'années. L'iPhone ne devrait poser aucun problème.

" Assez rapide " peut être fonction de vos attentes (ou de celles de vos clients) en ce qui concerne la résolution de fréquence que vous recherchez et votre fréquence d'échantillonnage de base.

Une FFT en N points est de l'ordre de N * log2 (N), donc si vous n'avez pas assez de MIPS, réduire N est une zone de concession potentielle pour vous.

Dans de nombreuses applications, la fréquence d'échantillonnage est non négociable, mais si c'était le cas, ce serait une autre possibilité.

J'ai créé une application qui calcule la FFT en direct

http://www.itunes.com/apps/oscope

Vous pouvez trouver mon code pour la FFT sur GitHub (bien que ce soit un peu approximatif)

http://github.com/alexbw/iPhoneFFT

Le nouveau SDK iPhone OS 4.0 d’Apple permet le calcul intégré de la FFT avec l'option "Accélérer". bibliothèque, je commencerais donc à travailler avec le nouveau système d'exploitation s'il s'agit d'un élément central des fonctionnalités de votre application.

Vous ne pouvez pas simplement porter du code FFT écrit en C dans votre application ... il existe l'option du compilateur miniature qui complique l'arithmétique en virgule flottante. Vous devez le mettre en mode armé

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top