張大勇1,凌強(qiáng)1,計(jì)煒梁1,張俊斌2,徐酉亮2,熊遠(yuǎn)波2,吳藝英2
?。?.中國(guó)科學(xué)技術(shù)大學(xué) 自動(dòng)化系,安徽 合肥 230027; 2.白城兵器實(shí)驗(yàn)中心 輕武器部,吉林 白城 137001)
摘要:針對(duì)周期噪聲與窄帶噪聲,基于DSP硬件平臺(tái),進(jìn)行主動(dòng)降噪系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)。主要工作為次級(jí)通道辨識(shí)、對(duì)算法定點(diǎn)化處理和基于DSP的實(shí)時(shí)降噪實(shí)現(xiàn)。所提出的定點(diǎn)化方法大大提高了定點(diǎn)DSP的運(yùn)算速度,保證了降噪的實(shí)時(shí)性。其中降噪程序采用自適應(yīng)算法中的前饋濾波X最小均方算法,DSP采用德州儀器公司的16位定點(diǎn)DSP TMS320VC5509A,使用TLV320AIC23B作為音頻處理芯片,取得了明顯降噪效果。
關(guān)鍵詞:主動(dòng)降噪;濾波-X-最小均方算法;定點(diǎn)化
0引言
一直以來(lái),噪聲污染都是各國(guó)十分關(guān)注的問(wèn)題,同時(shí)它還是一個(gè)越來(lái)越嚴(yán)重的環(huán)境污染問(wèn)題。交通噪聲、工業(yè)噪聲、建筑噪聲等給人的生理和心理健康帶來(lái)嚴(yán)重危害。這些噪聲使人聽(tīng)力下降、易于疲勞、注意力下降、工作效率降低。因此,在噪聲越來(lái)越嚴(yán)重而人們?cè)絹?lái)越追求身體健康與生活質(zhì)量的情況下,對(duì)噪聲的降低,在理論研究和工程實(shí)踐中都將具有廣泛的研究?jī)r(jià)值和廣闊的市場(chǎng)前景。
傳統(tǒng)的噪聲控制方法主要有吸聲、隔聲和使用消聲器等被動(dòng)降噪(Passive Noise Control)方法[1],其本質(zhì)是利用聲波與材料的機(jī)械作用,使聲能變?yōu)闊崮艿绕渌问降哪芰恳詼p少噪聲。隨著信號(hào)處理技術(shù)和電子技術(shù)的高速發(fā)展,主動(dòng)噪聲控制(Active Noise Control)有了明顯的進(jìn)展[2]。其原理是根據(jù)2個(gè)聲波相消性干涉或聲波輻射抑制的方法,通過(guò)人為地制造1個(gè)控制聲源 (次級(jí)聲源),使其發(fā)出的聲音與原來(lái)的噪聲源(初級(jí)聲源)輻射噪聲大小相等、相位相反,使兩者作用結(jié)果互相抵消,從而達(dá)到降噪的目的。本文即采用主動(dòng)降噪思想,使用前饋濾波X最小均方(FXLMS)算法[3 4],并借助DSP平臺(tái)構(gòu)造一個(gè)主動(dòng)降噪系統(tǒng)。
本文首先通過(guò)DSP平臺(tái)產(chǎn)生白噪聲對(duì)次級(jí)通道進(jìn)行辨識(shí),然后對(duì)浮點(diǎn)程序進(jìn)行定點(diǎn)化處理,最后通過(guò)揚(yáng)聲器產(chǎn)生反噪聲來(lái)抵消外界噪聲。針對(duì)單頻噪聲和窄帶噪聲進(jìn)行降噪處理,能夠在C55x系列DSP平臺(tái)上實(shí)現(xiàn)實(shí)時(shí)性;而且通過(guò)對(duì)浮點(diǎn)算法進(jìn)行定點(diǎn)化處理,大大提高了在DSP平臺(tái)上的運(yùn)算速度;通過(guò)提高采樣率,可以對(duì)最高7 kHz的高頻噪聲進(jìn)行降噪,以適應(yīng)噪聲可能存在的變化。
1次級(jí)通道辨識(shí)
前饋X-濾波最小均方算法(FXLMS)算法即在基本的LMS算法的基礎(chǔ)上考慮了次級(jí)通道S(z)的影響。如圖1所示,次級(jí)通道指從產(chǎn)生聲音信號(hào)并通過(guò)揚(yáng)聲器輸出,到通過(guò)拾音裝置采集并獲得聲音信號(hào)的通道S(z)。原始噪聲d(n)疊加在自適應(yīng)濾波器輸出的噪聲抵消信號(hào)y(n)上,誤差信號(hào)e(n)被誤差麥克風(fēng)檢測(cè)到。但y(n)到e(n)的聲音次級(jí)通道函數(shù)S(z)會(huì)改變?cè)肼暤窒盘?hào)y(n),因此,需要對(duì)次級(jí)通道進(jìn)行建模,構(gòu)造S^(z)對(duì)次級(jí)通道進(jìn)行補(bǔ)償?!?/p>
具體的次級(jí)通道包括揚(yáng)聲器中的D/A轉(zhuǎn)換器、重構(gòu)濾波器、功放,揚(yáng)聲器到拾音裝置聲器之間的通道,拾音裝置中的誤差傳聲器、前置放大、抗混疊濾波器以及A/D轉(zhuǎn)換器。設(shè)定次級(jí)通道為30階,為了更準(zhǔn)確地辨識(shí)次級(jí)通道,本文根據(jù)最小均方算法進(jìn)行運(yùn)算。
如圖2所示,次級(jí)通道的辨識(shí)過(guò)程如下。
?。?)通過(guò)DSP平臺(tái)產(chǎn)生白噪聲y(n)并由音頻編解碼芯片aic23讀取,然后通過(guò)抵消揚(yáng)聲器發(fā)出白噪聲。
?。?)通過(guò)抵消麥克風(fēng)采集步驟(1)中抵消揚(yáng)聲器發(fā)出的白噪聲信號(hào)。
?。?)利用步驟(1)中的白噪聲信號(hào)計(jì)算自適應(yīng)濾波器的輸出信號(hào)r(n),求取公式如下:
式中u(n)表示步驟(1)產(chǎn)生的白噪聲信號(hào)序列,si(n)表示自適應(yīng)濾波器系數(shù),n為當(dāng)前時(shí)刻,M為濾波器階數(shù),i為濾波器的階數(shù)序號(hào)。
?。?)計(jì)算誤差信號(hào),其求取公式如下:
e′(n)=v(n)-r(n)(2)
式中v(n)為誤差麥克風(fēng)采集到的聲音信號(hào),r(n)為步驟(3)中自適應(yīng)濾波器的輸出。
?。?)利用最小均方準(zhǔn)則更新自適應(yīng)濾波器的系數(shù),其求取公式如下:
si(n+1)=si(n)+μe′(n)u(n-i),
i=1,…,M-1(3)
式中:迭代步長(zhǎng)μ取值0.05,濾波器階數(shù)M取30階。
?。?)判斷迭代次數(shù)是否大于T(T取10 000)次,當(dāng)?shù)螖?shù)大于T時(shí),停止迭代,完成對(duì)次級(jí)通道的辨識(shí),此時(shí)就得到了次級(jí)通道的系數(shù)。
2對(duì)浮點(diǎn)程序定點(diǎn)化處理
現(xiàn)有的DSP處理器中,無(wú)論從運(yùn)算速度還是設(shè)備成本看,定點(diǎn)處理器較浮點(diǎn)處理器都有一定的優(yōu)勢(shì)[5],因此本設(shè)計(jì)采用了C55x系列的16 bit定點(diǎn)DSP TMS320C5509A。但是由于定點(diǎn)DSP處理浮點(diǎn)數(shù)據(jù)比較慢,因此對(duì)浮點(diǎn)程序進(jìn)行了定點(diǎn)化處理。定點(diǎn)化可以直接著手進(jìn)行,也可以在完成浮點(diǎn)算法的基礎(chǔ)上對(duì)降噪程序進(jìn)行改造,本設(shè)計(jì)采用后者。
采用定點(diǎn)數(shù)表示實(shí)際的浮點(diǎn)數(shù),浮點(diǎn)數(shù)和定點(diǎn)數(shù)的轉(zhuǎn)換公式如下:
浮點(diǎn)數(shù)(X)轉(zhuǎn)換為定點(diǎn)數(shù):
XQ=(int)X*2Q(4)
定點(diǎn)數(shù)(XQ)轉(zhuǎn)換為浮點(diǎn)數(shù):
X=(float)XQ*2-Q(5)
對(duì)浮點(diǎn)算法定點(diǎn)化時(shí),加減法的運(yùn)算規(guī)則不變,乘法運(yùn)算時(shí)要將乘積除以2n,而乘除法運(yùn)算時(shí)要將被除數(shù)乘以2n,由于對(duì)2n進(jìn)行乘除運(yùn)算均可以用移位運(yùn)算替代,因此可以大大提高運(yùn)算速度。
不同的Q格式所表示的數(shù)的范圍不同,精度也不同。Q越大,數(shù)值范圍越小,但精度越高。例如,Q0(Q=0)的數(shù)值范圍是-32 768~+32 767,其精度是1,而Q15的數(shù)值范圍為-1~0.999 969 5,精度為1/32 768=0.000 030 51,因此數(shù)據(jù)范圍和精度是一對(duì)矛盾。
如圖3所示,本設(shè)計(jì)中針對(duì)浮點(diǎn)程序的定點(diǎn)化處理流程如下。
?。?)定標(biāo)方式選取為Q15。
?。?)利用式X15=(int)X*215將已知的浮點(diǎn)數(shù)據(jù)轉(zhuǎn)換為定點(diǎn)數(shù)據(jù)。所謂已知的數(shù)據(jù)是指能直接采集到的輸入信號(hào)(如采集麥克風(fēng)采集到的噪聲信號(hào),誤差麥克風(fēng)采集到的誤差信號(hào)),以及一些需要設(shè)定的參數(shù)(如迭代步長(zhǎng)μ)。
(3)將需要計(jì)算才能得到的浮點(diǎn)數(shù)據(jù)求取公式進(jìn)行定點(diǎn)化改造。例如浮點(diǎn)算法中e′(n)的求解公式為:
e′(n)=v(n)-r(n)
定點(diǎn)化后e′(n)的求解公式為:
e′15(n)=v15(n)-r15(n)(6)
r15 (n)為反噪聲信號(hào)r(n)的定點(diǎn)化形式,v15 (n)為誤差麥克風(fēng)采集的誤差信號(hào)v(n)的定點(diǎn)化形式,可由步驟(2)求得,即:
v15(n)=(int)v*215(7)
(4)用定點(diǎn)化算法對(duì)次級(jí)通道進(jìn)行再次辨識(shí)并測(cè)得次級(jí)通道的整形系數(shù)。通過(guò)DSP平臺(tái)產(chǎn)生白噪聲,并通過(guò)噪聲抵消揚(yáng)聲器輸出,對(duì)次級(jí)通道進(jìn)行辨識(shí),得到次級(jí)通道整形系數(shù)。
(5)判斷數(shù)據(jù)精度是否滿足要求。將步驟(4)中所測(cè)的次級(jí)通道的系數(shù)與浮點(diǎn)算法得到的系數(shù)進(jìn)行比較。如果次級(jí)通道的整形系數(shù)除以215后與浮點(diǎn)系數(shù)的誤差在-0.003~0.003之間,則數(shù)據(jù)精度符合要求,定點(diǎn)化結(jié)束。如果不滿足這個(gè)條件,就需要改變定標(biāo)格式對(duì)定點(diǎn)化進(jìn)一步改進(jìn),進(jìn)入步驟(6)。
?。?)使用Q16~Q31定標(biāo)方式,并進(jìn)入步驟(2)再次進(jìn)行定點(diǎn)化改造。
采用浮點(diǎn)算法與定點(diǎn)算法測(cè)得的次級(jí)通道對(duì)比圖如圖4所示,圖中實(shí)線表示浮點(diǎn)算法得到的次級(jí)通道的浮點(diǎn)系數(shù)。由于定點(diǎn)算法中次級(jí)通道采用的是Q15格式,因此虛線是定點(diǎn)算法學(xué)習(xí)到的系數(shù)除以215之后的數(shù)值,次級(jí)通道設(shè)定為30階,采樣率為1 kHz??梢园l(fā)現(xiàn),兩條曲線幾乎重合,它們的最大誤差是0.001 9,在-0.003~0.003之間。因此采用Q15定標(biāo)方法的定點(diǎn)算法后,精度滿足要求。
3利用揚(yáng)聲器產(chǎn)生反噪聲來(lái)抵消外界噪聲
定點(diǎn)程序的精度滿足要求時(shí),即開(kāi)始進(jìn)行降噪的階段。對(duì)于外界單頻與窄帶噪聲,通過(guò)抵消揚(yáng)聲器發(fā)出反噪聲,可以達(dá)到良好的降噪效果。
如圖5所示,降噪實(shí)現(xiàn)過(guò)程如下。
?。?)由音響輸出噪聲并通過(guò)采集麥克風(fēng)采集該噪聲信號(hào)。
?。?)利用步驟(1)采集的噪聲信號(hào)計(jì)算需要的反噪聲信號(hào)y(n),并利用抵消揚(yáng)聲器發(fā)出,其求取公式為:
式中x(n)為在n時(shí)刻采集到的外界噪聲,wi(n)為自適應(yīng)降噪濾波器在n時(shí)刻的系數(shù),N為自適應(yīng)降噪濾波器的階數(shù)。
?。?)由誤差麥克風(fēng)采集誤差噪聲信號(hào)e(n)。
(4)計(jì)算利用步驟(1)中采集到的噪聲信號(hào)經(jīng)過(guò)次級(jí)通道進(jìn)行補(bǔ)償后的值,其求取公式為:
式中ci(n)次級(jí)通道的系數(shù),x(n)為在n時(shí)刻采集到的外界噪聲,M為該自適應(yīng)濾波器系數(shù)。
(5)利用最小均方準(zhǔn)則更新自適應(yīng)降噪濾波器的系數(shù)wi(n),其求取公式如下:
wi(n+1)=wi(n)-μ*e(n)*x′(n-i)
i=0,…,N-1(10)
式中e(n)為步驟(3)中采集得到的誤差噪聲信號(hào),i為濾波器階數(shù)序號(hào),μ為迭代步長(zhǎng),x′(n)為步驟(4)中得到的噪聲信號(hào)的補(bǔ)償值。通過(guò)不斷調(diào)節(jié)自適應(yīng)濾波器系數(shù)濾就可以對(duì)外界噪聲進(jìn)行實(shí)時(shí)降噪處理。
4實(shí)驗(yàn)結(jié)果
利用音響發(fā)出7 kHz音頻作為外界噪聲,利用CCS軟件的Graph功能對(duì)得到的數(shù)據(jù)進(jìn)行作圖并截圖,采樣率設(shè)為16 kHz,結(jié)果如圖6和圖7所示。由圖6與圖7可以看出,降噪前噪聲幅值為1 300,降噪后最大值為300,換算為降噪比為:
20lg(1 300/300)=12.7dB
降噪效果比較明顯。同時(shí),噪聲在開(kāi)啟降噪到迭代250次穩(wěn)定,需要的時(shí)間是:
250/16000=0.015 625 s
由于人耳的反應(yīng)時(shí)間是0.1 s左右,因此降噪可以取得很好的實(shí)時(shí)效果。
5結(jié)論
本文利用前饋FXLMS算法進(jìn)行ANC程序設(shè)計(jì),提出了一種針對(duì)浮點(diǎn)FXLMS算法定點(diǎn)化的方法,通過(guò)在德州儀器公司的定點(diǎn)DSP C5509A上實(shí)施,大大提高了定點(diǎn)DSP的運(yùn)算速度,使降噪可以具有實(shí)時(shí)性;同時(shí),還可以對(duì)高頻噪聲取得良好的降噪效果。為了增強(qiáng)系統(tǒng)的性能,在今后的工作中可以考慮限制自適應(yīng)濾波器系數(shù)的波動(dòng)范圍[4],或者采用變步長(zhǎng)的改進(jìn)算法[6 7],以增強(qiáng)系統(tǒng)的魯棒性。
參考文獻(xiàn)
[1] 周亞麗. 有源噪聲與振動(dòng)控制[M]. 北京:清華大學(xué)出版社, 2014.
?。?] 陳克安. 有源噪聲控制[M]. 北京:國(guó)防工業(yè)出版社, 2003.