焦中興,劉 威,何嶺松
(華中科技大學(xué)機械科學(xué)與工程學(xué)院,湖北 武漢 430074)
響度是聲質(zhì)量評定中的重要參數(shù),自從1933年Fletcher提出響度(loudness)概念以來,響度一直是心理聲學(xué)領(lǐng)域的研究熱點。人們建立了多種響度計算模型,其中Stevens響度計算模型[1-2]和Zwicker響度計算模型[3]都比較成功,成為1975年的國際標準[4]。然而,Zwicker模型和Stevens模型均采用圖表法,在計算精度方面有所欠缺。Moore在Zwicker模型的基礎(chǔ)上進行了改進[5-6],其計算模型基于解析式,理論上可針對頻譜、聲壓連續(xù)變化的聲音信號進行響度計算,該模型成為了2005年的美國國家標準[7]。然而,Moore模型僅給出了可參數(shù)化描述的典型信號的響度計算方法,對現(xiàn)場采集的非參數(shù)化描述聲音信號,必須通過FFT算法等手段提取信號的特征參數(shù),將其轉(zhuǎn)換為Moore模型能夠計算的參數(shù)化描述的標準信號類型,然后才能進行響度計算。
Moore模型的計算流程如圖1所示,它模擬了人體聽覺系統(tǒng)的整個過程。首先人體的頭部、軀干以及人耳由于其特定的生理結(jié)構(gòu)對不同頻率的信號成分具有不同的放大和衰減作用。Moore模型中的外、中耳傳遞函數(shù)模擬了人體外耳和中耳對信號的這一濾波作用,經(jīng)過外、中耳濾波處理,可以獲得信號到達耳蝸的有效聲壓級。接下來由信號的有效聲壓級分布特征來確定372個耳蝸濾波器,用于模擬內(nèi)耳的掩蔽機理。將信號的有效聲壓級作為輸入,用372個耳蝸濾波器對信號進行濾波,即可求得信號的頻域激勵模式。根據(jù)激勵大小的不同,利用相應(yīng)的計算公式,便可由頻域激勵求得372個特性響度。將特性響度連接為1條曲線,求解曲線下的面積即為單耳響度。Moore認為雙耳響度為單耳響度的2倍,所以單耳響度乘以2,即可得總響度。
圖1 Moore模型的基本流程
根據(jù)Moore的描述,要想計算一個聲音信號的響度,首先必須確定該信號的頻譜。信號的頻譜可以用以下4種參數(shù)化方式[7]給出:
(1)頻譜由復(fù)合音信號的離散頻率成分確定,則需要給出各成分的頻率和聲壓級。
(2)頻譜由幾個帶寬確定的噪聲確定,則首先需要給出噪聲的個數(shù)。這里的噪聲既可以是白噪聲(此處特指在通帶內(nèi)具有恒定的聲壓譜級),也可以是粉紅噪聲(此處特指在通帶內(nèi)聲壓譜級隨頻率的增加而衰減,衰減率為3dB/octave)。對于白噪聲,需要給出上、下截止頻率和聲壓譜級;對于粉紅噪聲,需要給出上、下截止頻率和基準頻率以及基準頻率處的聲壓譜級。
(3)頻譜由離散頻率成分和帶通噪聲混合確定,前者按第(1)種方式給出參數(shù),后者按第(2)種方式給出參數(shù)。
(4)頻譜由信號的26個相鄰的1/3倍頻程聲壓級來確定,這里假設(shè)在每個1/3倍頻程帶內(nèi)頻譜都是平坦的。
其中,若信號用第(2)種方式給出,在Moore算法中還需要對其進行進一步簡化處理,將頻譜連續(xù)的噪聲信號簡化為頻譜離散的復(fù)合音。簡化方法:對于帶寬大于30 Hz的噪聲,其可以簡化為一系列間隔為10Hz的純音,純音的聲壓級比其所在頻率處的噪聲聲壓譜級高10dB;對于帶寬小于30Hz的噪聲,可以近似為一系列間隔為1 Hz的純音,各純音的聲壓級等于其對應(yīng)頻率的聲壓譜級。若信號用第(4)種方式給出,則把信號當作26個帶寬確定的白噪聲,信號的簡化方法同帶寬大于30Hz的噪聲的簡化方法。
從1.2節(jié)的描述可知,Moore響度計算的前提是以參數(shù)化方式給出的頻譜,并對頻譜連續(xù)的信號進行簡化。所有信號最終都將被轉(zhuǎn)化為參數(shù)化描述的復(fù)合音或純音。
對于用聲級計測量的聲音信號,通??梢垣@得信號的1/3倍頻程聲壓級,輸入Moore模型就可以計算出聲音信號的響度。在更多情況下,人們是用A/D卡對聲音信號進行采集,要想將獲取的數(shù)字信號輸入到Moore模型中,需要用FFT算法進行預(yù)處理,提取信號的頻譜參數(shù)。
圖2是用FFT算法計算Moore響度的計算模型,其中包含了3條計算路線。計算路線1直接將FFT頻譜中的譜線作為復(fù)合音中的離散頻率成分來計算響度。對用44.1 kHz采樣的聲音信號,有文獻指出可以采用44 100點的FFT算法[8-9],以達到足夠的精度。然而工程應(yīng)用中,一般認為分析點數(shù)大于4 096即為大點數(shù)FFT運算。而且,F(xiàn)FT分析點數(shù)過多時,雖然會獲得很好的頻域分辨能力,但頻譜譜線增多會增加計算量。所以需要分析不同F(xiàn)FT長度對響度計算精度的影響,以確定一個合適的FFT分析點數(shù)。
圖2 用FFT計算Moore響度的方法
計算路線2將校正后頻譜中的譜線作為復(fù)合音中的離散頻率成分來計算響度。由于能量泄漏和柵欄效應(yīng)的影響,采用FFT算法估計的純音和復(fù)合音的頻率和幅值可能會存在很大誤差。例如,采用矩形窗進行FFT運算時,幅值最大誤差可達36.4%[10]。采用漢寧窗,幅值誤差會有一定程度的減小,并可減小旁瓣泄漏,但其影響仍然不可忽視。因此,在這里采用能量重心法[11]對頻譜進行了校正,并重點分析加頻譜校正和不加頻譜校正對Moore響度計算精度的影響。
計算路線3先利用FFT頻譜計算信號的1/3倍頻程聲壓級,然后再計算Moore響度。這里主要是為了分析1/3倍頻程處理對Moore響度計算精度的影響。
圖3(a)是頻率為300 Hz,聲壓級為60 dB的純音信號的響度計算結(jié)果。圖中3條曲線分別表示了3種不同計算路線的響度計算結(jié)果隨FFT采樣點數(shù)增加的變化情況。其中,路線1的計算結(jié)果用帶加號的虛線表示;路線2的計算結(jié)果用帶方形符號的點劃線表示;路線3的計算結(jié)果用帶三角符號的點線表示。以參數(shù)化方式給定頻率和聲壓級獲得的Moore標準響度用帶星號的實線表示。結(jié)果表明:對于300 Hz的純音,不應(yīng)采用1/3倍頻程處理方式來計算響度,因為即使采用很高的采樣點數(shù)進行FFT變換,響度結(jié)果仍有很大誤差;直接用FFT頻譜譜線作為復(fù)合音計算響度時,不必采用過高的采樣點數(shù)進行FFT變換;采樣點數(shù)過低(小于2048點)時,響度結(jié)果有較大誤差,需要進行頻譜校正。
圖3 純音響度計算結(jié)果
為了進一步驗證以上結(jié)論是否適用于所有純音,計算了頻率分別為1 kHz和3 kHz,聲壓級均為40dB 的純音的響度,如圖 3(b)和圖 3(c)所示,圖中曲線的含義同圖3(a)。結(jié)果表明:對于純音,確實沒有必要采取過多的數(shù)據(jù)點進行FFT計算;對于頻率較低的純音,分析點數(shù)過少時,需要進行頻譜校正,否則響度計算結(jié)果會有較大誤差;采用1/3倍頻程處理計算響度,始終會有很大誤差。因此,計算純音響度不應(yīng)測量或計算信號的1/3倍頻程聲壓級。
美國國家標準中指出Moore模型僅適用于穩(wěn)定聲音的響度計算,包括純音、復(fù)合音(含和聲與非和聲)和不同帶寬的噪聲。然而對于復(fù)合音來說,當其中的某2個頻率成分的頻率差遠小于頻率均值時,響度將產(chǎn)生波動,稱為節(jié)奏感。因此,Moore模型應(yīng)該不適用于此類聲音的響度計算,這里僅對頻率間隔較大(≥100Hz)的復(fù)合音進行計算。圖4(a)所示為頻率成分為1 kHz、1.3 kHz,聲壓級均為60 dB復(fù)合音響度計算結(jié)果。結(jié)果顯示:采用1/3倍頻程處理方式計算響度,誤差始終很大;采用校正譜進行響度計算,使用1 024個采樣點,即可使響度結(jié)果很精確;而直接用FFT頻譜計算響度,在采樣點數(shù)達到8 192點時結(jié)果才很精確;圖4(b)為頻率成分為1 kHz、3 kHz,聲壓級均為60 dB復(fù)合音響度計算結(jié)果,它進一步印證了上述結(jié)論,即采用校正譜計算同直接用FFT頻譜計算,可采用較少的采樣點數(shù)即可達到足夠的精度。
圖4 復(fù)合音響度計算結(jié)果
圖5(a)為頻帶范圍為0.9~1.1kHz,聲壓譜級為40dB的窄帶噪聲響度計算結(jié)果。結(jié)果顯示:無論直接利用FFT頻譜作為復(fù)合音還是經(jīng)過1/3倍頻程處理,響度結(jié)果同Moore標準值相差均很大。分析可能的原因:Moore計算的帶通噪聲為具有理想頻譜分布的白噪聲,即用理想濾波器濾波獲取的白噪聲。通帶之外,沒有任何能量分布;通帶之內(nèi),能量嚴格均勻分布。然而實際上這種信號是不存在的,并且這里使用的白噪聲是利用巴特沃斯濾波器濾波獲取的,因而其不具有理想通帶。因此這里的標準響度值參照Zwicker算法給出的結(jié)果,在圖中用帶空心圓的實線表示。然而2種方式的計算結(jié)果同Zwicker算法結(jié)果仍相差很大,并且經(jīng)過1/3倍頻程處理后,誤差相對更大些。
增大噪聲的帶寬,計算頻帶范圍為0.75~1.25kHz,聲壓譜級為30 dB的窄帶噪聲的響度如圖5(b);頻帶范圍為0.5~5.5 kHz,聲壓譜級為30 dB的噪聲響度如圖5(c)。觀察圖5可知:對帶寬較窄的白噪聲,2種方法計算出的響度均有很大誤差,且?guī)捲秸?,誤差越大;隨著帶寬的增加,經(jīng)過1/3倍頻程聲壓級處理計算響度的誤差相對于直接利用譜線作為復(fù)合音計算響度的誤差逐漸減小,當噪聲帶寬較大時,計算結(jié)果誤差將很小。
圖5 窄帶噪聲響度計算結(jié)果
計算純音或復(fù)合音的響度時,不要測量或計算信號的1/3倍頻程聲壓級,應(yīng)使用頻譜譜線直接作為復(fù)合音。計算帶寬較寬的信號時,應(yīng)首先測量或計算信號的1/3倍頻程聲壓級。計算純音或?qū)拵г肼暤捻懚葧r,可以采用長度較短的FFT運算,但當純音的頻率較小時,需要進行頻譜校正。為了避免頻譜校正并使響度計算達到足夠的精度,推薦使用的采樣點數(shù)為4096。
[1]Stevens S S.Procedure for calculating loudness:MarkⅥ[J].The Journal of the Acoustical Society of America,1961,33(11):1577-1585.
[2]Stevens S S.Perceived level of noise bu markⅦand decibels[J].The Journal of the Acoustical Society of America,1972,51(2):575-601.
[3]Fastl H,Zwicker E.Psychoacoustics:fact and models[M].Berlin Heidelberg:Springer,2007.
[4]ISO 532—1975 Acoustic-method for calculation loudness level[S].1975.
[5]Moore B C J,Glasberg B R,Thomas B.A model for the prediction ofthresholds, loudness, and partial loudness[J].J Audio Eng Soc,1997,45(4):224-240.
[6]Glasberg B R,Moore B C J.A revision of zwicker’s loudness model[J].Acta Acustica,1996(82):335-345.
[7]ANSI S3.4—2005 Procedure for the computation of loudness of steady sounds[S].2005.
[8]鄭文,陳克安,馬元峰.Moore模型與響度計算中的關(guān)鍵問題[J].電聲技術(shù),2007,31(6):11-16.
[9]馬元峰,陳克安,王娜.Moore響度模型的數(shù)值計算方法[J].聲學(xué)技術(shù),2008,27(3):390-395.
[10]謝明,丁康.頻譜分析的校正方法[J].振動工程學(xué)報,1994,7(2):172-179.
[11]丁康,江利旗.離散頻譜的能量重心校正法[J].振動工程學(xué)報,2001,14(3):354-358.