上一期我們聊完了Tone-to-Noise Ratio算法,這一期我們來聊Tonality和Prominence Ratio。
Tonality
Tonality 應(yīng)該是這一系列里面最知名的函數(shù)了,因為名稱好記,朗朗上口,有時候翻譯為音調(diào)度。常規(guī)的Tonality函數(shù)實際上包含了兩種不同的算法:DIN 45681 Tonality和Psychoacoustic tonality,計算結(jié)果完全不同,工程師需要區(qū)分清楚。
DIN45681 Tonality
DIN 45681規(guī)定了Tonality的完整計算流程。DIN我們都很熟悉了,德國國家標準組織,在心理聲學(xué)參數(shù)標準方面那絕對是領(lǐng)先的了。DIN 45681 Tonality實際上和我們前面講的ECMA-74 TNR計算過程是一樣的,結(jié)果也差不多,基本上可以看作同一個函數(shù)。所以,DIN 45681 Tonality的特點和TNR是一樣的,僅適用于穩(wěn)定的離散單頻信號。兩者的主要區(qū)別在于一些細節(jié),比如說峰值的識別方法、頻率分辨率的要求、是否計權(quán)等等。對結(jié)果比較有影響的有兩點:
一是對于同一個臨界頻帶內(nèi)的多個峰值,DIN 45681 Tonality會將這些峰值合成一組顯示在結(jié)果中。如圖1所示紅色曲線。
圖1 DIN 45681 Tonality和ECMA-74 TNR結(jié)果對比
二是結(jié)果數(shù)值顯示不同。TNR的結(jié)果是峰值聲壓和該臨界頻帶剩下聲壓的差值,如果超過圖2顯示的閾值,則認定為突出的單頻噪音。而DIN 45681 Tonality則沒有這樣的閾值規(guī)定,這個算法用了Penalty這個概念,即差值數(shù)據(jù)調(diào)整。計算出來的聲壓差值如果比較大,就加上一個懲罰值,最大6dB,讓這個單頻噪音看起來更明顯??蓞⒖紙D1中210 Hz的單頻噪音結(jié)果。
圖2 ECMA-74建議的TNR和PR的閾值
還有一點需要注意的是,這兩種算法結(jié)果都是以dB表示,是沒有量綱的!
Psychoacoustictonality (Tonality: Aures/Terhardt)
這個可以說是最有迷惑性的方法了。首先,該方法基于心理聲學(xué)參數(shù),考慮了響度的影響計算得到Tonality結(jié)果,比其他方法要更符合人的主觀判斷。其次,該方法定義了一個新的單位:tu。寬頻噪聲是0 tu,純正弦波是1 tu。整個算法的實現(xiàn)是通過計算所有tonal信號的響度,所有其它噪聲信號的響度,并考慮掩蔽效應(yīng)等影響,借助不同的權(quán)重系數(shù)計算得到其結(jié)果。因為這個算法是從整體進行考慮的,所以只能得到每個時間點所有聲音信號的總體結(jié)果。如圖3所示,橫軸是時間,縱軸是音調(diào)度tu值。顯示結(jié)果不太容易理解和分析,因此在日常使用的時候,只能簡單用于數(shù)據(jù)對比,不能進一步指導(dǎo)深入研究,比如,到底那些頻率引起了tonal噪聲,影響的程度是多少等等。
圖3 Tonality: Aures/Terhardt計算結(jié)果
ProminenceRatio (PR: ECMA-74, ISO 7779)
Prominence Ratio也被翻譯為突出比,在ECMA-74和ISO 7779里面有詳細的算法介紹。PR的基本概念和TNR是一樣的,所以過程就不再羅嗦了。我們來看看PR和其他算法的一些區(qū)別吧。
- PR和TNR的主要區(qū)別是,TNR考慮的是峰值和對應(yīng)的一個臨界頻帶的關(guān)系,而PR考慮的是峰值所在臨界頻帶和周邊兩個臨界頻帶的關(guān)系,所以計算的聲壓差是當前臨界頻帶的聲壓級和周圍兩個臨界頻帶聲壓級均值的差。
- 基于ECMA-74的PR適用條件和TNR是完全一樣的。標準里面明確規(guī)定了,這些方法僅能用于穩(wěn)定的離散單頻噪聲,所以計算的結(jié)果也和TNR結(jié)果類似,是沒有量綱的dB值,閾值曲線如圖2所示。而且,和TNR受到的規(guī)定一致,對于每個算出來的tonal信號,都要經(jīng)過主觀聽覺評價。
- PR的計算涉及到三個臨界頻帶,這要比TNR的范圍寬多了。所以如果我們不嚴格按照ECMA-74的要求來使用,有一些不是單頻噪聲的tonal信號,比如阻尼比較小的共振等,通過計算也可以得到突出比的結(jié)果。這樣一來,適應(yīng)面更廣,結(jié)果也更有用了。在軟件里面有一項專門的設(shè)置,如圖4所示。
雖然PR可以適用于非單頻信號的分析,但是仍然受制于以上這幾種算法的限制:基于FFT的非心理聲學(xué)函數(shù)。所以,只能用于穩(wěn)態(tài)信號,或者緩變信號,不能明確指示出人耳對不同tonal噪聲的感受。另外,前面提到的各種算法由于FFT本身的要求,譜線數(shù)、重疊率、窗函數(shù)等等參數(shù)都是需要工程師手工設(shè)置的,不同的參數(shù)數(shù)值對結(jié)果的影響非常大,如圖5所示。對同一個信號,當設(shè)置的譜線數(shù)不同時(從左到右依次為:16384、8192、4096),計算的結(jié)果完全不一樣。那到底哪一個才是我們需要的正確結(jié)果呢?
圖5 不同譜線數(shù)計算結(jié)果
HSA高分辨率譜分析
HSA的全稱是High-resolution Spectral Analysis,高分辨率譜分析。估計各位小伙伴看到這里有點摸不到頭腦了,怎么忽然出來一個新的名詞,莫非公眾號也是按字數(shù)給稿費的嗎?我覺得這個是好主意,下面我準備接著寫量子速讀和全腦開發(fā)了!
我們前面說過,常規(guī)的tonal算法需要考慮突出的音調(diào)、單頻成分,因此頻率分辨率就是一個很關(guān)鍵的參數(shù)。各種標準上都有明確的限制,必須有足夠精細的頻率分辨率,才能準確地識別出來突出的單頻峰值,進而計算得到準確的結(jié)果。
而我們都知道,頻率分辨率和時間分辨率成反比例關(guān)系。頻率分辨率越精細,相應(yīng)的時間塊越長。所以,用常規(guī)的FFT頻譜去找突出單頻的時候,如果想得到準確的結(jié)果,包括單頻的幅值和頻率,就必須有足夠長且穩(wěn)定的信號才可以。這就是為什么常規(guī)的tonal算法僅能用于分析穩(wěn)態(tài)音調(diào)的原因。魚與熊掌,不可兼得啊。
怎么樣才能全都要呢?為了優(yōu)化常規(guī)tonal算法,擴展其用途,我們引入了HSA高分辨率譜分析算法。HSA算法是對于常規(guī)FFT的優(yōu)化,主要通過去卷積運算,去掉FFT窗函數(shù)的影響,識別信號中的主要音調(diào)成分的準確頻率和幅值。
HSA算法的實施過程大概是這個樣子的:首先找到信號中最主要的單頻成分,并對此成分進行整周期分析。我們知道,如果能夠整周期地進行FFT運算,能量沒有泄露,不用加窗函數(shù),計算的頻率值和幅值都會非常好。HSA算法可以通過設(shè)置迭代次數(shù),依次考慮不同的單頻成分,抑制非周期成分,從而在不需要延長時間信號的情況下,極大的提高單頻信號的分辨率和精度。
怎么樣,看出來一些端倪了吧,常規(guī)的TNR分析基于FFT分析結(jié)果,如果我們用HSA替代FFT的過程,同樣的時間長度,頻率分辨率就會提高,相應(yīng)的對于瞬態(tài)tonal信號識別和處理的能力也就提高了。比如圖6的掃頻信號,如果用常規(guī)的TNR算法,根本無法識別其中的tonal成分(圖6中),如果采用HSA算法,計算效果拔群(圖6右)。
圖6 從左到右:FFT vs. Time; TNR with FFT; TNR with HAS
好了,以上就是今天的內(nèi)容了,需要細細品味才能get到其中的差異哦。
未完待續(xù),還有一個大招等著你~
關(guān)于我們
海德聲科(HEAD acoustics China)是全球領(lǐng)先的聲學(xué)解決方案及聲音與振動分析領(lǐng)域供應(yīng)商HEAD acoustics GmbH在中國設(shè)立的子公司。HEAD acoustics憑借其在聲學(xué)領(lǐng)域的專業(yè)性和相關(guān)軟硬件研發(fā)的先驅(qū)地位,在NVH、聲學(xué)和語音音頻質(zhì)量的測量、分析和優(yōu)化領(lǐng)域廣受贊譽。其產(chǎn)品和服務(wù)廣泛用于汽車、電信,IT設(shè)備、辦公用品和家電行業(yè)的制造商和研究機構(gòu),以及在聲音環(huán)保領(lǐng)域的企業(yè)與院所等。