2011-10-10 83 views
0

我是currentyl在C++中的Windows 7上創建的東西就像一個小型軟件音頻合成器。核心引擎正在運行,並在收到midi事件時播放音符,更改程序等。此刻我困惑的是將輸出聲道的0 dB參考聲壓級放在哪裏。0db聲音級別的默認值爲絕對浮點值

假設合成器產生440Hz的正弦波,振幅爲| 0.5f | 。爲了計算聲壓級,我需要設置參考電平(0分貝)。有沒有人知道這樣的默認設置?

回答

3

當相對於滿量程的分貝有問題時,AKA dBFS,0 dB分配給最大可能的數字電平。來自Wiki的引用:

0 dBFS被分配給最大可能的數字電平。例如,在任何點 達到最大電平的50%的信號將在-6dBFS處達到峯值,即在滿量程以下6dB。所有峯值 的測量結果都將爲負數,除非它們達到最大數字值 。

+0

請注意,0 dB滿量程與0 dB SPL(聲壓級)不同。 –

+0

@保羅,確定你是對的。除此之外,我建議考慮按照EBU R 128規範http://tech.ebu.ch/loudness規定的響度級度量。 –

1

首先你需要清楚單位。 dB本身是比率,不是絕對值。正如@Roman R.所建議的那樣,您可以使用0 dB來表示「滿量程」,然後您的量程將爲0 dB(最大值)到某個負的dB值,這對應於您感興趣的最小值(例如-120 D b)。然而,這只是一個任意的測量,並沒有告訴你有關信號絕對值的任何信息。

在你的問題中雖然你參考了dB SPL(SPL =聲壓級),其中的絕對單位。 0 dB SPL通常定義爲20μPa(RMS),大約是人類聽力閾值,在這種情況下,感興趣的範圍可能是-20 dB SPL,例如+120 dB SPL。但是,如果您真的想測量dB SPL而不是隻是一個任意的dB值,那麼您需要校準系統以考慮麥克風增益,麥克風頻率響應,A-D靈敏度/增益以及其他各種因素。這不是微不足道的,但如果你真的想要實施某種SPL測量系統,這是非常重要的。

+0

謝謝你的確切答案。我通過與聽力測量系統合作,瞭解了大部分情況。 dBFS這個詞我真正的意思是沒有想到,所以我在這裏問。 –