2010-03-30 9 views
5

Ich versuche, eine einfache Lautstärkeregler für das iPhone zu machen. Ich möchte, dass die Lautstärke in dB angezeigt wird. Bei Verwendung von erhalte ich nur Messungen bis zu 78 dB. Ich habe gelesen, dass das liegt daran, dass das dBFS-Spektrum für 16-Bit-Audioaufnahmen nur 96 dB beträgt.Wie bekomme ich eine Volumenmessung von iPhone-Aufnahme in dB, mit einer Grenze von mindestens 120dB

ich versuchte, dieses Stück-Code in der init-Funktion Modifizieren:

dataFormat.mSampleRate = 44100.0f; 
dataFormat.mFormatID = kAudioFormatLinearPCM; 
dataFormat.mFramesPerPacket = 1; 
dataFormat.mChannelsPerFrame = 1; 
dataFormat.mBytesPerFrame = 2; 
dataFormat.mBytesPerPacket = 2; 
dataFormat.mBitsPerChannel = 16; 
dataFormat.mReserved = 0; 

I den Wert von mBitsPerChannel verändert, der Hoffnung, den Bitwert der Aufzeichnung zu erhöhen.

dataFormat.mBitsPerChannel = 32; 

Mit diesen Variablen auf 32 gesetzt, die "mAveragePower" Funktion gibt nur 0.

Also, wie kann ich messen mehr Dezibel? Mein gesamter Code ist praktisch der gleiche wie in dem obigen Tutorial.

Vielen Dank im Voraus, Thomas

Antwort

5

16-Bit-Audio hat nur einen Dynamikbereich von 96 dB, aber ich vermute, dass Sie zwischen dB immer verwechselt werden können, die eine relativ Messung ist, und dB SPL, Das ist eine absolute Messung von Schalldruckpegel. Um dB SPL zu messen, müssen Sie Ihr Mikrofon und Ihre Audio-Hardware mit einer Referenz kalibrieren. Sobald Sie Ihren Eingang kalibriert haben, kann es gut sein, dass Ihr 96 dB dynamischer Bereich in einen absoluten Bereich von beispielsweise 44 dB SPL bis 140 dB SPL übersetzt wird.

Siehe meine Antwort auf eine frühere ähnliche Frage auch auf SO: How can I calculate audio dB level?

Hinweis: Definition von dB SPL ist Schalldruckpegel relativ zu 20 & mgr; Pa (rms).

+0

Ok, danke für deine (schnelle) Antwort. Wenn ich die Messungen an meinem iPhone-Mikrofon kalibriere, sind die Messungen auch auf anderen iPhones korrekt? Es ist mir egal, wenn es ein paar Dezibel aus ist, ich möchte nur einen Hinweis auf die Lautstärke der Geräusche geben, die vom Mikrofon aufgenommen werden. – Cyber

+0

Ich würde erwarten, dass Sie ein paar dB Variation zwischen iPhones bekommen werden, die das gleiche Modell (z. B. 3G) sind, aber es kann mehr Unterschiede zwischen verschiedenen Modellen geben. Beachten Sie jedoch auch, dass der Frequenzgang wahrscheinlich nicht flach ist, so dass Ihre Messungen ungefähr sind. Ein weiterer Punkt, den Sie beachten sollten, ist, dass Sie normalerweise einen Bewertungsfilter verwenden, wenn Sie dB SPL (z. B. A-Gewichtung) messen. Oh, und noch etwas: Es kann AGC-Schaltkreise in einigen oder allen iPhone-Modellen geben, die Ihre Messungen stören können, wenn Sie sie nicht deaktivieren können. –

Verwandte Themen