張 磊 李方鑫 王建新 肖超恩
(北京電子科技學(xué)院 北京 100070)
自適應(yīng)噪聲抵消系統(tǒng)的基本要求是原始輸入和參考輸入中信號(hào)必須統(tǒng)計(jì)相關(guān)[1]。在傳統(tǒng)的抵消算法中,要求噪聲滿足線性相關(guān)的條件。然而在現(xiàn)實(shí)中,噪聲通道往往十分復(fù)雜,具有非線性的特性;當(dāng)兩路輸入噪聲非線性相關(guān)時(shí),傳統(tǒng)的自適應(yīng)噪聲抵消算法(LMS、NLMS、RLS)[2-5]去噪效果難以保證,甚至產(chǎn)生信號(hào)失真。因此,需要尋找一種有效應(yīng)對(duì)噪聲非線性相關(guān)的自適應(yīng)噪聲抵消方法。
神經(jīng)網(wǎng)絡(luò)[6-7]利用大量的人工神經(jīng)元相互連接進(jìn)行計(jì)算,根據(jù)外界的信息改變自身的結(jié)構(gòu),主要通過調(diào)整神經(jīng)元之間的權(quán)值來對(duì)輸入的數(shù)據(jù)進(jìn)行建模,最終具備解決實(shí)際問題的效果。目前,在人工神經(jīng)網(wǎng)絡(luò)的實(shí)際應(yīng)用中,絕大多數(shù)的神經(jīng)網(wǎng)絡(luò)模型都采用BP網(wǎng)絡(luò)及其變化形式,它是前饋型神經(jīng)網(wǎng)絡(luò)的核心部分[8]。近年來,已有部分研究將神經(jīng)網(wǎng)絡(luò)應(yīng)用于自適應(yīng)噪聲抵消系統(tǒng)中,在有源噪聲控制方面取得了一定的效果。
2010年,Miry等[9]提出了一種基于模糊神經(jīng)網(wǎng)絡(luò)[10]的自適應(yīng)噪聲消除算法,該算法用于長(zhǎng)距離通信信道的噪聲消除,系統(tǒng)的主要優(yōu)點(diǎn)是易于實(shí)施和快速收斂。2010年,李曉艷[11]將基于神經(jīng)網(wǎng)絡(luò)的自適應(yīng)噪聲抵消器與基于LMS算法的自適應(yīng)噪聲抵消器進(jìn)行對(duì)比,在兩路噪聲信號(hào)線性和非線性相關(guān)時(shí)進(jìn)行了性能比較。結(jié)果表明基于神經(jīng)網(wǎng)絡(luò)的自適應(yīng)噪聲抵消器在兩路信號(hào)線性相關(guān)和非線性相關(guān)時(shí),均具有良好的噪聲抵消能力。2011年,蔣威等[12]為了提高無線電引信的抗干擾性,采用量子神經(jīng)網(wǎng)絡(luò)建立自適應(yīng)干擾對(duì)消系統(tǒng),實(shí)現(xiàn)對(duì)無線電引信干擾噪聲的自適應(yīng)抵消,提高了無線電引信的抗干擾性。2012年,周偉等[13]研究了基于最小均方誤差LMS準(zhǔn)則、遞推最小二乘RLS準(zhǔn)則和線性神經(jīng)網(wǎng)絡(luò)ADALINE[14]的三種自適應(yīng)噪聲抵消算法。結(jié)果表明,采用ADALINE算法信噪比至少改善26.6 dB,實(shí)現(xiàn)了高性能濾波。2014年,Dixit等[15]利用神經(jīng)網(wǎng)絡(luò)實(shí)現(xiàn)了基于最小均方自適應(yīng)濾波器算法(LMS)的自適應(yīng)噪聲抵消器,提出了自適應(yīng)噪聲抵消器的系數(shù)通過神經(jīng)網(wǎng)絡(luò)而不是數(shù)值自適應(yīng)算法進(jìn)行調(diào)整的方法。與直接使用LMS作為自適應(yīng)算法相比,使用神經(jīng)網(wǎng)絡(luò)調(diào)整系數(shù)后的LMS算法,收斂速度更快。但是相關(guān)文獻(xiàn)均沒有考慮神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)的變化對(duì)噪聲抵消效果的影響。
本文基于上述問題,分別在原始輸入和參考輸入中,噪聲線性相關(guān)和非線性相關(guān)的條件下,研究神經(jīng)網(wǎng)絡(luò)自適應(yīng)噪聲抵消系統(tǒng)不同隱含層神經(jīng)元節(jié)點(diǎn)數(shù)、不同隱含層傳輸函數(shù)、不同神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)算法以及不同信噪比原始輸入下,系統(tǒng)的噪聲抵消效果。
神經(jīng)網(wǎng)絡(luò)自適應(yīng)噪聲抵消系統(tǒng)的噪聲抵消原理如圖1所示,噪聲和信號(hào)沿信道傳到傳感器A、B中。除了接收到信號(hào)s之外,傳感器A還接收到一個(gè)不相關(guān)的噪聲n1。信號(hào)加噪聲為s+n1,組成抵消系統(tǒng)的“原始輸入”。傳感器B用來接收與信號(hào)不相關(guān)的,但是以某種未知的方式與噪聲n1相關(guān)的噪聲n0,這個(gè)傳感器給系統(tǒng)提供“參考輸入”。將噪聲n0通過神經(jīng)網(wǎng)絡(luò)自適應(yīng)濾波系統(tǒng)加以調(diào)整,使其產(chǎn)生近似為n1的輸出y。再將該輸出從原始輸入s+n1中減去,得到系統(tǒng)輸出為z=s+n1-y。
圖1 神經(jīng)網(wǎng)絡(luò)算法自適應(yīng)噪聲抵消系統(tǒng)
噪聲源的噪聲n0經(jīng)過實(shí)際環(huán)境得到噪聲n1,兩路噪聲(n0和n1)往往是非線性的,可以用非線性變換來模擬實(shí)際中噪聲所經(jīng)過的通道。要想得到濾波器的輸出y,必須盡可能地辨識(shí)出該非線性函數(shù),相當(dāng)于獲得自適應(yīng)神經(jīng)網(wǎng)絡(luò),使得在獲得噪聲源n0的條件下,自適應(yīng)神經(jīng)網(wǎng)絡(luò)無限逼近非線性變換函數(shù),此時(shí)y就能無限逼近原始輸入中的噪聲n1?,F(xiàn)實(shí)條件中,由于n1難以獲得,而傳感器A能得到d,且d為信號(hào)s與n1的疊加,s與n1不相關(guān),所以利用d替代n1對(duì)網(wǎng)絡(luò)進(jìn)行訓(xùn)練,完成對(duì)噪聲通道的模擬,得到系統(tǒng)輸出為z=d-y,達(dá)到噪聲抵消的目的。
噪聲抵消系統(tǒng)的輸入信號(hào)分為兩個(gè)部分:原始輸入和參考輸入。根據(jù)文獻(xiàn)[11]提出的參考輸入與原始輸入中,噪聲信號(hào)相關(guān)性的模型,在MATLAB R2014a環(huán)境下對(duì)兩路輸入信號(hào)進(jìn)行建模,如圖2所示。設(shè)原始輸入為50 Hz單頻信號(hào)和randn函數(shù)產(chǎn)生的服從正態(tài)分布的隨機(jī)噪聲信號(hào)的線性疊加,采樣頻率為1 kHz。
圖2 兩路噪聲信號(hào)建模
根據(jù)圖2的模型,在兩路噪聲線性相關(guān)條件下,設(shè)參考輸入n1與原始輸入中噪聲信號(hào)n0的關(guān)系為線性變換n0=n1+1。在兩路噪聲非線性相關(guān)條件下,設(shè)參考輸入n1與原始輸入中噪聲信號(hào)n0的關(guān)系為非線性變換n0=sin(n1)。
根據(jù)圖1的噪聲抵消模型,本文采用的單輸入單輸出BP神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)如圖3所示。BP神經(jīng)網(wǎng)絡(luò)輸入層、隱含層、輸出層的層數(shù)各為一層。輸入層節(jié)點(diǎn)數(shù)和輸出層節(jié)點(diǎn)數(shù)為1,隱含層節(jié)點(diǎn)數(shù)為N。
圖3 BP神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)
輸入層節(jié)點(diǎn)的輸出等于整個(gè)網(wǎng)絡(luò)的輸入信號(hào)x(n),隱含層第i個(gè)神經(jīng)元節(jié)點(diǎn)的輸入vi(n)等于權(quán)向量ω1i(n)與x(n)的乘積:
vi(n)=ω1i(n)x(n)
(1)
假設(shè)f(·)是隱含層傳輸函數(shù),則隱含層第i個(gè)神經(jīng)元的輸出等于:
ui(n)=f(vi(n))
(2)
輸出層節(jié)點(diǎn)的輸入等于權(quán)向量ω2i(n)與ui(n)的加權(quán)和:
(3)
假設(shè)g(·)是輸出層傳輸函數(shù),輸出層神經(jīng)元的輸出等于:
y(n)=g(w(n))
(4)
網(wǎng)絡(luò)的總誤差為:
e(n)=d(n)-y(n)
(5)
式中:d(n)為期望信號(hào)。
若按照信號(hào)功率來計(jì)算信噪比[16],自適應(yīng)噪聲抵消系統(tǒng)的輸入信噪比為原始輸入信號(hào)中的有用信號(hào)s的功率與干擾噪聲n0的總功率之比,并將結(jié)果取以10為底數(shù)的對(duì)數(shù),即:
(6)
輸出信噪比為有用信號(hào)s與經(jīng)過噪聲抵消系統(tǒng)的剩余噪聲z-s總功率之比,將結(jié)果取對(duì)數(shù):
(7)
式中:z為噪聲抵消系統(tǒng)的輸出信號(hào)。
本文定義信噪比增量ΔSNR為:
ΔSNR=SNRout-SNRin
(8)
根據(jù)前述模型,分別對(duì)不同隱含層節(jié)點(diǎn)數(shù)、不同神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)算法、不同隱含層傳輸函數(shù)和不同信噪比原始輸入下系統(tǒng)的噪聲抵消效果進(jìn)行仿真分析。
在MATLAB R2014a環(huán)境下,使用newff函數(shù)創(chuàng)建一個(gè)結(jié)構(gòu)為1-N-1的BP神經(jīng)網(wǎng)絡(luò)(N表示隱含層節(jié)點(diǎn)數(shù))。網(wǎng)絡(luò)的隱含層使用tansig或logsig函數(shù),輸出層使用purelin型線性函數(shù),訓(xùn)練過程的學(xué)習(xí)速率取為0.01,期望誤差值為0.01,學(xué)習(xí)算法[17]使用GD(標(biāo)準(zhǔn)梯度下降算法)、GDM(帶動(dòng)量的梯度下降算法)、GDA(可變學(xué)習(xí)速率梯度算法)、RP(彈性梯度算法)、LM(Levenberg-Marquardt算法)、BFG(擬牛頓算法)、OSS(一步正割算法)。
隱含層節(jié)點(diǎn)數(shù)對(duì)BP神經(jīng)網(wǎng)絡(luò)性能有很大影響。一般較多的隱含層節(jié)點(diǎn)數(shù)可以帶來更好的性能,但會(huì)導(dǎo)致訓(xùn)練時(shí)間過長(zhǎng)。目前并沒有一個(gè)理想的解析式可以用來確定合理的神經(jīng)元節(jié)點(diǎn)數(shù),通常的做法是采用經(jīng)驗(yàn)公式給出估計(jì)值[18]。
本節(jié)中,神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)算法使用LM算法,網(wǎng)絡(luò)的隱含層使用tansig函數(shù),改變隱含層節(jié)點(diǎn)數(shù),對(duì)噪聲抵消系統(tǒng)進(jìn)行仿真。
原始輸入和參考輸入中,噪聲線性相關(guān)時(shí)(兩路噪聲線性相關(guān)),進(jìn)行10次實(shí)驗(yàn)并對(duì)結(jié)果取平均值后,仿真結(jié)果如圖4所示。設(shè)定原始輸入信號(hào)信噪比為-0.87 dB,輸出信號(hào)信噪比隨隱含層節(jié)點(diǎn)數(shù)增加呈下降趨勢(shì)。在本節(jié)仿真的1-N-1網(wǎng)絡(luò)結(jié)構(gòu)中,當(dāng)隱含層節(jié)點(diǎn)數(shù)為1個(gè)時(shí),輸出信號(hào)信噪比為26.24 dB,輸出信號(hào)與原始輸入的ΔSNR為27.11 dB,達(dá)到最佳的噪聲抵消效果。
圖4 隱含層節(jié)點(diǎn)數(shù)仿真結(jié)果圖
在兩路噪聲線性相關(guān)的條件下,根據(jù)實(shí)驗(yàn)結(jié)果,優(yōu)化的單輸入單輸出BP神經(jīng)網(wǎng)絡(luò)隱含層節(jié)點(diǎn)數(shù)的公式為:
(9)
式中:取值范圍為[0,5]的整數(shù),計(jì)算結(jié)果向0取整。
原始輸入和參考輸入中,噪聲非線性相關(guān)時(shí)(兩路噪聲非線性相關(guān)),進(jìn)行10次實(shí)驗(yàn)并對(duì)結(jié)果取平均值后,仿真結(jié)果如圖5所示。設(shè)定原始輸入信號(hào)信噪比為0.42 dB,輸出信號(hào)信噪比隨隱含層節(jié)點(diǎn)數(shù)增加呈下降趨勢(shì)。在本節(jié)仿真的1-N-1網(wǎng)絡(luò)結(jié)構(gòu)中,當(dāng)隱含層節(jié)點(diǎn)數(shù)為1時(shí),輸出信號(hào)信噪比為4.76 dB,輸出信號(hào)與原始輸入的ΔSNR為5.18 dB,達(dá)到最佳的噪聲抵消效果。
圖5 隱含層節(jié)點(diǎn)數(shù)仿真結(jié)果圖
在兩路噪聲非線性相關(guān)的條件下,根據(jù)實(shí)驗(yàn)結(jié)果,優(yōu)化的隱含層節(jié)點(diǎn)數(shù)的經(jīng)驗(yàn)公式與式(9)相同。
使用式(9),在兩路噪聲線性相關(guān)和非線性相關(guān)的條件下,本節(jié)將隱含層節(jié)點(diǎn)數(shù)q確定為3。網(wǎng)絡(luò)的隱含層使用tansig函數(shù),神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)分別使用GD、GDM、GDA、RP、BFG、LM、OSS算法,進(jìn)行仿真。
兩路噪聲線性相關(guān)時(shí),設(shè)定原始輸入信號(hào)信噪比為-5.58 dB,經(jīng)過神經(jīng)網(wǎng)絡(luò)噪聲抵消系統(tǒng)后,輸出的信號(hào)信噪比如圖6所示。對(duì)仿真結(jié)果取10次平均后,神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)算法改善效果依次為:
OSS>LM>BFG>RP>GDA>GDM>GD
其中,OSS、LM、BFG和RP四種學(xué)習(xí)算法對(duì)原始輸入信號(hào)的ΔSNR都超過了25 dB,噪聲抵消效果明顯優(yōu)于其他3種算法。
圖6 神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)算法仿真結(jié)果圖
兩路噪聲非線性相關(guān)時(shí),設(shè)定原始輸入信號(hào)信噪比為-3.34 dB,經(jīng)過神經(jīng)網(wǎng)絡(luò)噪聲抵消系統(tǒng)后,輸出信號(hào)的信噪比如圖7所示。在兩路輸入非線性相關(guān)時(shí),神經(jīng)網(wǎng)絡(luò)噪聲抵消器的改善效果較兩路輸入線性相關(guān)時(shí)較弱,7種學(xué)習(xí)算法中對(duì)原始輸入信號(hào)的ΔSNR最大為6.70 dB(BFG),且經(jīng)過各學(xué)習(xí)算法噪聲抵消后的輸出信號(hào)平均信噪比為3.11 dB,噪聲抵消效果差別不大。
圖7 神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)算法仿真結(jié)果圖
logsig函數(shù)的特點(diǎn)是(-∞,+∞)范圍的數(shù)據(jù)被映射到區(qū)間(0,1),使用的計(jì)算公式為:
(10)
tansig函數(shù)是雙曲正切sigmoid函數(shù),在tansig函數(shù)中,輸出被映射在(-1,1)內(nèi)。計(jì)算公式為:
(11)
神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)使用GD、GDA、GDM、LM、OSS、RP、BFG算法,根據(jù)式(9),在兩路噪聲線性相關(guān)和非線性相關(guān)的條件下,本節(jié)將隱含層節(jié)點(diǎn)數(shù)q確定為3,對(duì)網(wǎng)絡(luò)的隱含層分別使用logsig、tansig函數(shù)進(jìn)行仿真。各組仿真實(shí)驗(yàn)進(jìn)行10次,并對(duì)結(jié)果取平均值。
兩路噪聲線性相關(guān)時(shí),設(shè)定原始輸入信號(hào)信噪比為-3.43 dB,仿真結(jié)果如圖8所示。神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)使用GD和GDM算法,經(jīng)過不同傳輸函數(shù)得到的輸出信號(hào)之間的SNR差值大于3 dB;GDA、LM、OSS、RP和BFG算法經(jīng)過不同傳輸函數(shù)得到的輸出信號(hào)之間的SNR差值小于1 dB。結(jié)果表明,神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)使用GD和GDM算法時(shí),相比logsig函數(shù),噪聲抵消系統(tǒng)使用tansig作為傳輸函數(shù)得到的輸出信號(hào),噪聲抵消效果顯著;其余五種算法由傳輸函數(shù)的差異產(chǎn)生的噪聲抵消效果差別不大。
圖8 傳輸函數(shù)仿真結(jié)果圖
兩路噪聲非線性相關(guān)時(shí),設(shè)定原始輸入信號(hào)信噪比為-2.50 dB,仿真結(jié)果如圖9所示。神經(jīng)網(wǎng)絡(luò)訓(xùn)練使用GD和GDM算法,經(jīng)過不同傳輸函數(shù)得到的輸出信號(hào)之間的SNR差值小于1.3 dB;GDA、LM、OSS、RP和BFG算法經(jīng)過不同傳輸函數(shù)得到的輸出信號(hào)之間的SNR差值小于0.5 dB。結(jié)果表明,兩路噪聲非線性相關(guān)時(shí),噪聲抵消系統(tǒng)使用tansig作為傳輸函數(shù)得到的輸出信號(hào),ΔSNR較大,噪聲抵消效果較好;其余五種算法由傳輸函數(shù)的差異產(chǎn)生的噪聲抵消效果差別不大。
圖9 傳輸函數(shù)仿真結(jié)果圖
兩路噪聲線性相關(guān)和非線性相關(guān)時(shí),根據(jù)式(9),將隱含層節(jié)點(diǎn)數(shù)q確定為3,隱含層傳輸函數(shù)使用tansig。設(shè)定原始輸入為不同信噪比的信號(hào),在兩路噪聲線性相關(guān)和非線性相關(guān)的條件下,比較使用BFG、GD、GDA、LM學(xué)習(xí)算法的噪聲抵消效果。
兩路噪聲線性相關(guān)時(shí),噪聲抵消系統(tǒng)的原始輸入和經(jīng)神經(jīng)網(wǎng)絡(luò)不同算法訓(xùn)練后,輸出信號(hào)信噪比如圖10所示。原始輸入信號(hào)的信噪比取-10~0 dB中的值,經(jīng)過系統(tǒng)噪聲抵消后,各算法輸出信號(hào)信噪比至少提高了2 dB,且隨著原始輸入信號(hào)信噪比的提高,系統(tǒng)的輸出信號(hào)信噪比也在提高。結(jié)果表明,兩路噪聲線性相關(guān)時(shí),神經(jīng)網(wǎng)絡(luò)噪聲抵消系統(tǒng)對(duì)信噪比小于0 dB的輸入信號(hào)有顯著的噪聲抵消效果。
圖10 系統(tǒng)的噪聲抵消效果
兩路噪聲非線性相關(guān)時(shí),噪聲抵消系統(tǒng)的原始輸入和經(jīng)神經(jīng)網(wǎng)絡(luò)不同算法訓(xùn)練后,輸出信號(hào)的信噪比如圖11所示。原始輸入信號(hào)的信噪比取2~10 dB中的值,經(jīng)過系統(tǒng)噪聲抵消后,各算法輸出信號(hào)信噪比平均提高了1~1.5 dB,且隨著原始輸入信號(hào)信噪比的提高,系統(tǒng)的輸出信號(hào)信噪比也在提高。結(jié)果表明,兩路噪聲非線性相關(guān)時(shí),神經(jīng)網(wǎng)絡(luò)噪聲抵消系統(tǒng)對(duì)信噪比大于0 dB的輸入信號(hào)有良好的噪聲抵消效果。
BP神經(jīng)網(wǎng)絡(luò)具有非線性映射和學(xué)習(xí)的能力,可用于噪聲抵消系統(tǒng)中噪聲的非線性建模。本文利用BP神經(jīng)網(wǎng)絡(luò)組成自適應(yīng)噪聲抵消系統(tǒng),在原始輸入和參考輸入中噪聲線性相關(guān)和非線性相關(guān)的條件下,研究了不同隱含層節(jié)點(diǎn)數(shù)、不同神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)算法、不同隱含層傳輸函數(shù)對(duì)系統(tǒng)噪聲抵消效果的影響,并優(yōu)化了噪聲抵消系統(tǒng)中單輸入單輸出BP神經(jīng)網(wǎng)絡(luò)隱含層節(jié)點(diǎn)公式。在不同信噪比原始輸入下,比較了系統(tǒng)的噪聲抵消效果。從仿真結(jié)果可知,系統(tǒng)的噪聲抵消效果受到隱含層節(jié)點(diǎn)數(shù)的影響;在隱含層傳輸函數(shù)選擇上,建議使用tansig作為傳輸函數(shù);在原始輸入和參考輸入中噪聲線性相關(guān)時(shí),神經(jīng)網(wǎng)絡(luò)噪聲抵消系統(tǒng)對(duì)信噪比小于0 dB的輸入信號(hào)有顯著的噪聲抵消效果;兩路輸入中噪聲非線性相關(guān)時(shí),系統(tǒng)對(duì)信噪比大于0 dB的輸入信號(hào)有提高信噪比的效果。噪聲抵消系統(tǒng)中BP神經(jīng)網(wǎng)絡(luò)采用優(yōu)化后的隱含層節(jié)點(diǎn)數(shù)公式,具有很強(qiáng)的降噪能力,可用于低信噪比下噪聲抵消。