Übergeben Sie AudioqueubufferRef-Daten an die FFT-Funktion!
-
14-11-2019 - |
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!
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
......