Frage

Ich versuche, die Frequenz eines gegebenen Tonprozesses durch das Mikrofon auf dem iPhone zu berechnen.

Ich habe den ganzen Beitrag über FFT (einschließlich aller Apple Code-Beispiele e.g auriotouch, sagt), aber keine Lösung für dieses Problem gelesen.

Ich verwende AUDIQUEUE, aber wie kann ich die Rohdaten "audioqueuebufferfef" aus der Audioque-Rückruffunktion (MyinputbufferHandler) inbuffer-> maudiodata weitergeben?Zum eigentlichen FFT-Datentyp "dspsplitcomplex" kann ich es berechnen.All dies mit dem Beschleunigungsrahmen. generasacodicetagpre.

die FFT-Funktion. generasacodicetagpre.

Ich habe keine Überall dort, wie dies zu tun ist.Bitte helfen!

War es hilfreich?

Lösung

Sie müssen den C-Datentyp der Daten im Audiopuffer und den Datentypen kennen, die die FFT unterstützt.Wenn sie nicht derselbe sind (allgemein 16-Bit-Unterzeichnung int versus kurzer Float), müssen Sie beim Auspacken und Kopieren der Arrays der PCM-Daten (in einer für Schleife) konvertieren.Bei realen Daten können Sie das imaginäre Array des Eingangs in die FFT aussetzen.

auch die Länge des Audio-Warteschlangenpuffers ist möglicherweise nicht derselbe der FFT-Länge, sodass Sie möglicherweise die Daten vom Audio-Warteschlangen-Rückruf auf eine andere Warteschlange in Ihrer App speichern müssen und einen anderen Arbeitergewinde durchführenDaten zu Ihren Analyse- / FFT-Routinen, während die Warteschlange füllt.

Andere Tipps

Werte der Amplitude sind: generasacodicetagpre.

Drucken Sie es nach der Verwendung von vdsp_fft_zrip ......

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top