2010-03-17 56 views

回答

17

範圍從-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。

+10

這裏'20'究竟是什麼? – 2011-10-14 19:59:54

+0

當測量空氣中的聲強時,參考值通常爲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

4

Apple還實現了dB線性幅度轉換類MeterTable.cpp和MeterTable.h 在SpeakHere應用示例中查找它。

您可以使用該計算值的內聯函數「上即時」

inline double DbToAmp(double inDb); 

OR

創建MeterTable例如使用預先計算的查找表。這將轉換值存儲在內存中,以便您的應用程序可以減少計算次數。

float ValueAt(float inDecibels); 

注:如果您有很多其他計算在同一時間進行或您需要非常快的處理,可能需要查找表。

+1

SpeakHere應用示例鏈接 - > http://developer.apple.com/library/ios/#samplecode/SpeakHere/Introduction/Intro.html – 2013-06-26 21:31:06

+0

而DbToAmp函數返回:' pow(10。,0.05 * inDb);' – CharlesA 2014-05-27 09:55:37

+0

也https://github.com/warrenburton/MeterTableOC,如果你不想在你的項目中輕微的C++文件的麻煩 – 2015-07-03 22:37:34