Swift FFT - Komplexes Split-Problem

8

Ich versuche, FFT in einer Audiodatei zu finden, um die Frequenz mithilfe des Accelerate-Frameworks zu finden. Ich habe Code (wahrscheinlich falsch) von dieser Frage angepasst: Spektrogramm von AVAudioPCMBuffer verwenden Beschleunige das Framework in Swift

Obwohl die Größen von spectrum 'entweder 0 , inf oder nan 'und die Komponenten real und imag des komplexen Split-Prints ähnliche Ergebnisse; Dies bedeutet, dass dies die Ursache des Problems ist: ' betragsgröße = sqrt (pow ( real , 2) + pow ( imag , 2) "Korrigiere mich, wenn ich falsch liege, aber ich denke, der Rest des Codes ist in Ordnung.

Warum erhalte ich diese Ergebnisse und wie kann ich sie beheben (was sollten die geteilten Komponenten sein), und was mache ich falsch? Bitte bedenken Sie, dass ich neu bei FFT bin und Sampling und haben keine Ahnung, wie man das für eine Audiodatei einrichtet, so würde jede Hilfe sehr geschätzt werden. Vielen Dank.

Hier ist der Code, den ich verwende:

%Vor%     
user98874 11.10.2015, 15:04
quelle

1 Antwort

3

Es gab ein paar Probleme mit Ihrem Code:

  1. Sie haben die Audiodatei sample
  2. nicht gelesen
  3. channelSamples wurde falsch gepackt
  4. vDSP_fft_zrip hat über das Ende des Arrays hinaus gelesen. Es erwartet 2 ^ log2n Samples
  5. Die Ausgabe von

    vDSP_fft_zrip ist gepackt und Ihre Berechnungen erwarten ausgepackt

    %Vor%
Rhythmic Fistman 12.10.2015, 01:07
quelle