Erstes Posting, danke für die tolle Community!AudioKit FFT-Konvertierung in dB?
Ich benutze AudioKit
und versuche, Frequenzgewichtung Filter an den Mikrofoneingang hinzufügen, und so versuche ich zu verstehen, die Werte, die aus der AudioKit AKFFTTap kommen.
Derzeit versuche ich nur den FFT-Puffer in dB umgewandelt drucken Werten
for i in 0..<self.bufferSize {
let db = 20 * log10((self.fft?.fftData[Int(i)])!)
print(db)
}
ich Werte im Bereich im Bereich von etwa -128 bis 0 erwartet, aber ich bin immer seltsame Werte von fast -200dB und wenn ich auf das Mikrophon blase, um die Messwerte zu hören, erreicht es nur ungefähr -60. Komme ich das nicht richtig an? Ich ging davon aus, dass die von der EZAudioFFT-Engine ausgegebenen Werte reine Amplitudenwerte wären und dass die normale dB-Umrechnungsmathematik funktionieren würde. Hat jemand Ideen?
Vielen Dank im Voraus für eine Diskussion zu diesem Thema!
Ich habe Ihre Idee der Summierung der absoluten Werte in 'self.fft? .fftData' versucht und ich bekomme definitiv ein vernünftigeres Ergebnis, jedoch sind die Ergebnisse immer noch viel zu empfindlich. Um dies zu testen, füge ich einen Offset-Wert hinzu, um die Messwerte zu einem dedizierten SPL-Meter zu bekommen, den ich hier an meinem Schreibtisch habe. Und wenn ich spreche, pfeife, blase oder rosa Rauschen erzeuge und Ergebnisse vergleiche, springt meine App 40 dB +, während das SPL-Meter nur um 7-10 dB ansteigt. Ich habe mit einigen iOS-Apps verglichen, um dB-Messwerte anzuzeigen, und sie scheinen ähnliche Ergebnisse mit dem SPL-Meter zu erzielen. Irgendwelche Ideen, warum das so viel sensibler wäre? –
Wie viele Proben verwenden Sie für eine Berechnung? voller Puffer? Ich benutzte Standard-Tap, ich habe keine Erfahrung mit AKFFTTap, also vielleicht fehlt mir etwas –