iPhone SDK中的AVAudioRecorder可用於獲取通道的峯值和平均功率,單位爲分貝。範圍在0db到160db之間。用於將其轉換爲0-10之間的刻度或可用於音頻電平表的類似內容的計算是什麼?iPhone SDK:AVAudioRecorder測量 - 如何將peakPowerForChannel從分貝更改爲百分比?
回答
範圍從-160 dB到0 dB。您可能希望將其顯示在從-90 dB到0 dB的儀表中。將其顯示爲分貝實際上比線性音頻水平更有用,因爲分貝是對數刻度,這意味着它更接近我們感知聲音的聲音。
這就是說,可以使用它來從分貝轉換爲線性的:
linear = pow (10, decibels/20);
和反向:
decibels = log10 (linear) * 20;
範圍用於上述分貝爲負無窮大到零,線性爲0.0至1.0。當線性值爲0.0時,即-inf dB;在1.0時線性爲0dB。
Apple還實現了dB線性幅度轉換類MeterTable.cpp和MeterTable.h 在SpeakHere應用示例中查找它。
您可以使用該計算值的內聯函數「上即時」
inline double DbToAmp(double inDb);
OR
創建MeterTable例如使用預先計算的查找表。這將轉換值存儲在內存中,以便您的應用程序可以減少計算次數。
float ValueAt(float inDecibels);
注:如果您有很多其他計算在同一時間進行或您需要非常快的處理,可能需要查找表。
SpeakHere應用示例鏈接 - > http://developer.apple.com/library/ios/#samplecode/SpeakHere/Introduction/Intro.html – 2013-06-26 21:31:06
而DbToAmp函數返回:' pow(10。,0.05 * inDb);' – CharlesA 2014-05-27 09:55:37
也https://github.com/warrenburton/MeterTableOC,如果你不想在你的項目中輕微的C++文件的麻煩 – 2015-07-03 22:37:34
這裏'20'究竟是什麼? – 2011-10-14 19:59:54
當測量空氣中的聲強時,參考值通常爲20微帕(μPa)的聲壓,這是健康的年輕人能夠聽到的平均最安靜的聲音的教科書值(頻率爲1000Hz) https: //www.researchgate.net/post/Is_there_any_relationship_between_dB_decibel_and_dBA_how_to_convert_dB_to_dBA – 2017-10-23 17:06:07