兩台聲強 90 分貝的鋼琴同時彈奏的聲強是否為 180 分貝?
@萌吳 寫的很全面了。我補充一下,計算準確的前提下,什麼情況會出現3dB。
聲壓級的定義
首先,給出一段時域的、隨時間變化的聲音信號 [1]
其聲壓級的嚴格定義為
這裡面的 為被計算的這一段聲音信號聲壓的方均根,這麼算的
廣義上說,聲壓級代表著的平均量級。
然而人類在聽聲音的時候,聽到的是隨時間變化的信號。比如一分鐘內音樂廳內平均聲壓級為60dB,但是中間各種樂器的發出的聲音大小卻是時高時低,並不一直是60dB。
所以在考慮實際聽到聲音的時候,也要考慮到人耳接收到的、隨時間變化的信號本身。
「聲音相加」
假設有兩個信號,第一個和第二個信號在同樣給定時間範圍內,聲壓的RMS值分別為p1和p2,二者的聲壓級一樣,為90dB。
有這麼三種情況可以考慮一下[2]:
同相,反相和不相干。
如下圖。
- 同相則兩個信號波形完全一致,比如題主所問,兩台鋼琴同時彈奏,那麼人耳接收到的信號聲壓級+6dB。不過+6dB要滿足很多假設,鋼琴距離人耳距離一樣,兩架鋼琴一樣的調音,基頻和諧波的直達聲和反射聲傳遞路徑一樣,還不能考慮雙耳效應等等;
2. 極端情況(現實中很難發生):如果兩個信號相位正好相反,傳到人耳的時候發生相消干涉,那麼我們什麼都聽不見(如 @Markus Sheng 所說)。這就是為什麼我們要把信號當成一個時變的信號來看,而不單單是平均過後的聲壓級數字。主動降噪就是這個原理。
3. 拋開該問題本身,假如是兩段不相干的信號,那麼 中的 可以忽略,那麼結果就變成了+3dB。再回到第一點,我們做了那麼多的假設是為了什麼?因為很有可能實際情況中傳到人耳的信號就變得不相干了。
原來回答過人怎麼感知聲音高低的問題,感興趣的可以看下
人是怎麼感知聲音頻率高低的??www.zhihu.com想了解更多聲學的科普/獵奇/冷知識/工業應用/前景,歡迎圍觀我的專欄
可以聽的黑科技——聲學?zhuanlan.zhihu.com以及我的公眾號
子魚說聲學
參考
- ^Kuttruff, Heinrich.Acoustics: an introduction. CRC Press, 2006.
- ^Vorl?nder, Michael. Auralization: fundamentals of acoustics, modelling, simulation, algorithms and acoustic virtual reality. Springer Science Business Media, 2007.
首先,分貝數是個對數值,不能直接相加,180 分貝是錯的。
像題目中的兩台鋼琴,它們發出的聲音是不相干的。在這種情況下,疊加後信號的能量是單個信號的 2 倍,分貝值會增加 。
如果是兩個相干的聲音疊加增強,則疊加後信號的幅度是單個信號的 2 倍,能量則是 4 倍,分貝值會增加 。
7月19日更新:
今天收到了知乎的私信,這個回答被編輯推薦了。所以我想必須把最近和一些同行討論的思路更新到正文裡面來。因為我在正文里對於這兩個聲源為相干的假設只是一筆掠過。在此補充如下:
- 兩個聲源疊加的問題,在任何一本聲學教材里都會是前兩三章就會講的問題(如果第一章講的是聽覺系統和聽覺認知的話)。所以,既然題主提出這個問題,那麼我自然而然認為他其實是不懂聲學的,所以才寫的比較詳細。另一方面,他提問的初衷應該是兩個完全同等的聲源,因此我理解這個題目應該是按照兩個同頻率同相位同振幅、並且所發出頻率為單音(忽略鋼琴的音色)且符合其波長 遠小於兩個聲源距離 (高頻的情形, )的相干的點聲源來回答,而不考慮不相干的情形。
- 題主所寫的「聲強90分貝」顯然也是因為不懂聲學而把「聲強」和「聲壓級」的概念搞混了。因為「聲強」的單位是 ,不是分貝。所以,題主所說的90和180,是 。
- 我的回答可能造成了一定的歧義。因為我引用了那篇聲功率級的文章,裡面講得很詳細,所以沒有再贅述。在此補充一下:本文可能造成的歧義是「聲壓級增加6dB的同等情況下聲功率級增加3dB」。這顯然是錯誤的。我們來看如下的計算: 當聲壓變為原來的2倍時,按照聲壓平方與聲功率成正比的關係,可以知道聲功率變為原來的 倍,也就是 可以看出,當聲壓級增加6dB時,聲功率級也同樣增加了6dB。這是聲學體系的邏輯所在之處。
所以,其實「3dB與6dB之爭」並不是本文可能誤導的那個概念所致,而是在於上述原因。特此補充說明。歡迎討論!
以下是7月13日的正文,一字未改。
——————————————————————
首先謝謝 @Markus Sheng 邀請我來回答這個問題。
不看不知道,一看嚇一跳。原來信號處理領域對於「分貝」這個詞的領悟和聲學領域有這麼大的不同。
很多人回答3dB,但是我認為這個回答並不全面,甚至不太準確。點贊最多的劉博士的回答,列出了兩個公式,但是很可惜,這兩個公式都寫錯了!錯在哪裡呢?我接下來就細細梳理一下。
首先要明確「聲壓」這個概念,然後再來談「聲壓級」
所謂聲壓,就是聲音造成的壓力。我們都知道聲音是物體振動產生的,有振動就有對介質的推動和拉回,這一推一拉,宏觀上就是一種往複運動,而這種往複運動對介質產生了一個實質性的壓力,這個壓力就叫做聲壓。
一個振動所產生的聲壓為 ,那麼,通過實驗觀察,發現 在1kHz的振動頻率(關於振動頻率的解釋可以在這個答案里找到)時:
- 能被人耳辨識的最小值為 (這也是最小臨界值 ),
- 在微風的森林中為 ,
- 在圖書館為 ,
- 在辦公室里大約是 ,
- 在例如川流不息的大街上的平均值為 ,
- 警笛的平均值約為 ,
- 在噴氣式飛機發動機啟動時距離200米處為 ,
- 人耳能承受的最大聲壓為 。
綜上可以看出,從最小值到最大值,聲壓值跨越了7個數量級。這種書寫看起來很費墨水,也很容易讀錯。
由於人對於聲壓的認知似乎在物理上並不是線性的,而是以數量級為標尺的,所以,如果能用一種數量級的方式來表示聲壓的級別,一方面可以避免使用這麼多的0,另一方面可以更加方便直觀。因此,「聲壓級」的概念就被引入了:
- 例如我們現在需要考察的聲壓是 ,用它來與最小值臨界值 做除法,得到一個不帶單位的比值 ,從最小可聽的值到能承受的最大值,這個值看起來就是1,或10,或100,或1000,或10000等等這樣的數字;
- 接下來需要進一步把這些0去掉。聰明的人兒們用10做底對這個比值求對數,於是得到了 ,那麼相對應地,它就成為了1,或2,或3,或4這樣的數字。聰明的你可以發現,這裡的數字代表的其實就是用聲壓 除以 所得到的的數字的數量級(代數意義:倍數後面有幾個零)。然而這個用法還不夠完美,因為1、2、3、4這些數字代表了很大的跨度,然而它們自己之間的算數距離相對來說太小。本來我們用對數的目標是為了減少0,讓書寫和閱讀更方便,但是現在看來有點過於方便、過於簡單了。
- 所以人們根據人耳聽音的解析度級別,決定給上述對數再乘上20: 這裡的 就是傳說中的聲壓級了。 這個字母代表的是Level。這裡必須明確的是,比值 本身是不帶單位的(這就是劉博士回答的謬誤所在,他直接用 代替了這個比值,所以他寫的公式計算出來的單位肯定不是dB;是什麼呢?我也不知道……),所以最後求出來的聲壓級其實是一個沒有單位的「倍數」。那麼,用什麼樣的單位來代表這個倍數呢?最好的選擇就是「分貝Decibel」了,縮寫於是成為dB。
- 看到dB,我們就知道這是一個比值,是一個級別。然而這還不夠,因為不知道它是個什麼比值。我們在這裡比較的是聲壓,所以應該用聲壓級,sound pressure level,簡寫SPL,來作為單位的補充。所以有了dBSPL這個單位。此外,當對數底數為10時,通常省略不寫。公式最終完整為
現在,我們將聲壓級的計算套到上面所舉的例子中,將帕斯卡轉換為dBSPL再來看看:
- 能被人耳辨識的最小值為 0分貝,
- 在微風的森林中為 20分貝,
- 在圖書館為 40分貝,
- 在辦公室里大約是 60分貝,
- 在例如川流不息的大街上的平均值為80分貝,
- 警笛的平均值約為 100分貝,
- 在噴氣式飛機發動機啟動時距離200米處為 120分貝,
- 人耳能承受的最大聲壓級為 140分貝。
聲壓級的概念講完了。
然後,現在來看題主問的問題。
我們將ta的問題簡化為:兩個同相位、距離測量點同距離的聲源發出完全一樣(頻率、振幅都一樣)的聲音時,在測量點測得的聲壓級 與單個聲源的聲壓級 之間是否是兩倍關係?
我們可以來計算一下:這個計算的過程,其實就是將上述聲壓級公式中的 換成 時, 的變化量。我們知道,根據對數的運演算法則,可以這樣寫:
神奇的事情發生了:兩台鋼琴一起發聲,最終「多出來」的聲壓級竟然與原來的聲壓級無關,而是一個常數。這個常數就是
所以,如果談論的是聲壓級,那麼答案就是6分貝。用同樣的方式還能知道,同時有3台、4台或者n台鋼琴時,多出來的那一部分聲壓級就等於 。這樣我們就可以很方便地想像,如果有10台鋼琴同時演奏,那麼它們的總聲壓級比單個鋼琴的聲壓級高出了20分貝。
那麼,為什麼其他答主非常確定地給出了3分貝的答案呢?我為什麼說這個答案不準確?請繼續閱讀——
最後,還要再談談「聲功率」和「聲功率級」、以及「聲強」和「聲強級」的概念
【補充說明:本文的討論都是基於將聲源認為是點聲源(而不是線聲源)的假設。】
剛才我們一直講的是小 ,這個是聲壓,是一個可以直接測量的一階物理量。我們知道,聲音在空氣中傳播是以點擴散為球面的方式進行的。這樣一來,聲源距離 越大,聲壓 就越小:
換句話說, 與 成反比關係。現在我們來講講大 ,它代表的是power,也就是聲功率。聲音傳播符合能量守恆,也就是說,在以聲源點為球心的任何一個球面上,聲功率是一定的。在聲學領域,聲功率級的定義為:
其中 。這裡的單位就是dB了。因為與距離無關,聲功率級通常被用來描述聲源本身的能量級別,我在知乎上找到了一篇專門講聲功率級的文章,可以點擊這裡閱讀。
看到這個算式裡面的10,大家就可以明白,為什麼其他答主會得出3dB的答案了。只是因為我用了20,他們用了10。這裡也要提一下劉博士的另一個謬誤所在,他用了小 ,讓人看到這裡以為他討論的是聲壓級;然而在log前面他又用了10,說明他的思考是在能量級別上的。那麼為什麼我認為應該用20,而不是用10呢?因為人耳對於聲音大小的認知是基於聲壓級的。我們的聽覺系統不關心一個聲源本身的功率,而是關心自己所接收到聲壓的級別。
那麼,我們立刻就可以想到,球面上的總能量一定,那麼必然當球面增大時,其單位面積上的能量就越小;也就是說,球面越大,能量密度就越小。這個能量密度被定義為聲強度 ,它代表的是intensity。聲強度就與距離有關了,它與距離的平方 成反比:
聲強與聲功率一樣,是比聲壓更高階的物理量。因此聲強級的定義也是:
其中 。好,現在雖然看起來已經解決了3dB和6dB之爭,但你肯定還要問:為什麼一個用20,一個用10呢?
回答可能比想像的要簡單得多,因為:
左邊的平方在做對數運算的時候可以提到log前面去變成乘數2,於是10就變成了20。
最後,談談為什麼會有3dB這種答案
這其實也是我一直都在知乎上想要說的話。現在許多做電子音頻信號處理的同行其實並不是學聲學出身,而是學電子工程或者信息技術出身的。這讓他們很自然地以為,聲學領域的「分貝」和他們自己專業領域的「分貝」是同一個意思。其實,這裡需要補充一下:
- 聲功率級和聲能級,用dB;
- 聲壓級用dBSPL;
- 聽力測試用的則是dBHL(hearing level),而且這不是一個線性的物理量;
- 電功率級用dBW,毫瓦級別用dBm;
- 電壓級用dBu或者dBV,等等
有趣的是,電壓級別的計算也是用 來計算的。上面提到過,一階的物理量用20,二階的用10,這是因為前者的平方與後者成正比關係。根據電壓和功率的關係也同樣可以驗證:
同樣的也可以用到電流與功率的關係中去。本人不是電子工程專業的,但從大家的回答推測,也許在電子工程專業,能用到「分貝」這個概念的語境,通常都是在計算功率的級別。
這也很好理解:因為對於線性系統,沒有必要用對數的方式來進行電壓或者電流級別的劃分;然而在信號傳輸的應用中,由於信號傳輸類似於聲音的傳播,能量在擴散中,其密度與所在球面的面積相關,所以通信領域對於信號的強度使用對數方式表示更方便。顯然,對於通信業者來說,信號強度是一個很重要的指標。
在聲學領域雖然也有聲功率級和聲強級這樣的概念,但平時在聲學的語境中,「分貝」這個詞通常用來描述聲壓級。因為聲波是縱波,是機械波,它的傳輸通常只能在房間大小的尺度里進行;在這個尺度上,無論是人耳還是接收聲音的麥克風,都對聲壓級更感興趣。
給出3dB的答案或者寫出以10為乘數的對數公式,就是因為用了平日計算功率級的常識來回答了一個其實要用壓力級別回答的問題。希望,今天的這個回答不會讓其他幾位答主感到難堪,因為大家都是為了回答問題而出力。給你們鞠躬了!
服氣。
假定題目問的是聲壓級的增加吧,那同樣的聲音假定相位振幅都一致,聲壓級應該增加6個dB,如果振幅一致而相位相差180度,那就是完全抵消,聲壓級為-Inf。
真實世界中中完全一致的信號是幾乎不存在的,那6dB的增加就是理論的上限。所以我認為嚴謹的表述應該是「兩相干聲源疊加以後,聲壓級提高最大6dB」
爪機碼子不好貼公式,大佬 @萌吳 你來瞅瞅,感覺聲壓級和聲功率級的概念還是有點混淆。
但無論如何不會是180dB SPL。不然倆鋼琴一起彈個中央C不得把房子拆了……
分貝是對數疊加,不是線性疊加,單純從能量角度來說,90dB+90dB=93dB
很多答主也沒仔細審題,聲強和聲壓級還是存在區別的,聲強是矢量,存在方向性的,這樣的話,就未必滿足能量疊加了。
如果不考慮方向性,純粹看能量疊加,也需要考慮頻率問題,可以分為以下幾類情況:
①如果90dB是未計權聲強,能量疊加規則有效;
②如果兩台鋼琴的頻率是一樣的,無論是否計權,能量疊加規則依舊有效(可以直接用計權聲強疊加);
③如果兩台鋼琴的頻率不一致,且聲強是計權值,那就需要先換算成未計權狀態,再進行能量疊加。
推薦閱讀: