賴 川
(西南電子技術(shù)研究所,四川 成都 610036)
現(xiàn)代戰(zhàn)爭中,接收機(jī)不但會受到外部環(huán)境干擾信號的影響,同時(shí)也會受到自身發(fā)射機(jī)信號的影響,導(dǎo)致接收信號變差,無法正常接收信號,甚至導(dǎo)致通信中斷。消除這些噪聲的主要方法是使用濾波器濾波。濾波器可以較好的過濾干擾信號,保證正常信號到達(dá)接收端,從而改善通信狀態(tài)。但是,一般的濾波器需要根據(jù)頻點(diǎn)范圍的變化而變化,即需要濾波的范圍越大,濾波器就需要做的足夠?qū)挘瑥亩鴮?dǎo)致設(shè)備成倍增加;同時(shí),濾波器的濾波范圍也有限,如果干擾信號頻點(diǎn)和接收信號頻點(diǎn)太近,濾波器基本就沒有效果了。有沒有一種濾波器能夠自適應(yīng)的根據(jù)接收頻點(diǎn)調(diào)整信號,過濾非接收頻點(diǎn)的噪聲信號成為人們研究的重點(diǎn)。
自1960年Windrow和Hoff等人提出最小均方誤差(Least Mean Square,LMS)算法以來,人們在自適應(yīng)濾波方面取得了豐碩的成果。LMS算法具有結(jié)構(gòu)簡單,計(jì)算量小,穩(wěn)定性好,易于實(shí)現(xiàn)等優(yōu)點(diǎn),在自適應(yīng)濾波中得到的廣泛應(yīng)用。但是,LMS采用了固定步長的收斂算法,導(dǎo)致前期干擾信號強(qiáng)時(shí),收斂效果明顯;后期信號變?nèi)?,步長過大,導(dǎo)致收斂變慢的問題也十分突出。于是,人們提出來各種有效的方法來修正定步長帶來的收斂速度和穩(wěn)態(tài)誤差的問題。文獻(xiàn)[1-2]提出了一種Sigmoid函數(shù)變步長LMS算法,較好的提高了迭代后期收斂速度問題。單是Sigmoid函數(shù)過于復(fù)雜。文獻(xiàn)[3]采用了類似Sigmoid函數(shù)的變步長算法,但是簡化了Sigmoid函數(shù),增加了a,b兩個(gè)修改因子修改Sigmoid函數(shù),較好的改進(jìn)了Sigmoid函數(shù)算法在誤差接近零時(shí),收斂較差的問題。但是a,b值選取不好的話效果會變得更差。文獻(xiàn)[4]針對該問題提出了a,b可變方法,更好的改進(jìn)了Sigmoid函數(shù)提升了收斂速度和效果。文獻(xiàn)[5]提出了一種分段函數(shù)思想,在迭代初期,使用較大的步長,迭代后期使用較小的步長,依次解決收斂后期速度變慢的問題。文獻(xiàn)[6-7]還提出了其他一些變步長函數(shù)的方法,以此提高收斂速度和收斂效果。但是這些算法都沒有考慮真實(shí)信號對算法收斂性能的影響。
隨著理論的深入研究,人們逐漸將研究的中心從理論轉(zhuǎn)移到算法的實(shí)際硬件實(shí)現(xiàn)。文獻(xiàn)[8-13]都是講述了不同的變步長LMS算法如何在DSP(Digital Signal Process)上實(shí)現(xiàn),并實(shí)際軟仿真測試了實(shí)現(xiàn)后的算法的噪聲抑制效果,均得到了較好的噪聲抑制和較快的收斂速度。隨著各種變步長算法在DSP上的實(shí)現(xiàn)及其取得的抑制效果,人們又逐步開始將基于DSP實(shí)現(xiàn)LMS算法應(yīng)用到具有實(shí)際背景的環(huán)境中,來抑制具體的干擾噪聲:文獻(xiàn)[14-15]都是利用DSP芯片實(shí)現(xiàn)了不同的變步長LMS算法,并將它應(yīng)用在聲回波系統(tǒng)中,有效的抑制了回波噪聲,提高了話音的音質(zhì)。文獻(xiàn)[16]則利用DSP實(shí)現(xiàn)了一種變步長算法,用他來解決立體聲回波對接收端的噪聲影響,取得了很好的效果。這些研究僅僅是利用DSP芯片實(shí)現(xiàn)LMS算法,再模擬實(shí)際噪聲環(huán)境,進(jìn)行干擾抑制,分析了這種架構(gòu)的可行性,沒有進(jìn)行實(shí)際的工程設(shè)計(jì)及驗(yàn)證。文獻(xiàn)[17]提出了一種工程實(shí)現(xiàn)方案,但最后也僅僅是進(jìn)行的軟仿真,得到了噪聲抑制的可行結(jié)論。
本文設(shè)計(jì)一種根據(jù)采集的實(shí)時(shí)信號決定迭代步長的算法,確保不同的信號采用不同的步長進(jìn)行收斂迭代的方式,避免了單一變步長方式中,所有信號均采用一種變步長方式的方法。文章簡單分析了硬件設(shè)計(jì)思路,重點(diǎn)關(guān)注算法的設(shè)計(jì)和DSP的實(shí)現(xiàn),并將實(shí)現(xiàn)的算法用于實(shí)際工程中進(jìn)行對消測試,取得了較好的效果。
對消原理如圖1所示。原始輸入信號中除了有用信號S外,還混入了不相關(guān)的噪聲信號N0。要使系統(tǒng)輸出獲得高質(zhì)量的有用信號S,就需要自適應(yīng)濾波器通過調(diào)整接收到噪聲參考信號N1,產(chǎn)生一個(gè)與N0信號幅度相等,相位相差180度的信號Y(理想情況)疊加到原始輸入中,使得系統(tǒng)輸出干凈的有用信號S(實(shí)際為S+N0-Y)。
圖1 對消原理圖
假設(shè)S和N0、N1不相關(guān),但是N0和N1是相關(guān)的,則有:
故當(dāng)輸出E的期望值最小時(shí),N0與Y的期望值也越小。此時(shí),Y信號就是N0的最優(yōu)期望值。為了實(shí)現(xiàn)這個(gè)目標(biāo),我們采用LMS算法。
基于最速下降法的固定步長LMS算法的迭代公式如下:
其中:X(t)=[x(t),x(t-1),…,x(t-M+1)]T為時(shí)刻t的參考通道輸入信號矢量;W(t)=[W0(t),W1(t),W2(t),…, WM-1(t)]T為T(t)時(shí)刻自適應(yīng)濾波器的權(quán)系數(shù);M為濾波器階數(shù);d(t)為主通道輸入信號;e(t)為誤差;μ為收斂步長,控制穩(wěn)定性和收斂速度。
如果迭代過程中,μ值始終保持不變,則表示該算法為定步長算法,如果μ在迭代中會變化,則表示算法為變步長算法。
數(shù)學(xué)上,一個(gè)向量的表示可以用直角坐標(biāo)系的兩個(gè)坐標(biāo)表示,也可以采用極坐標(biāo)系的幅度和相位兩個(gè)指標(biāo)表示。對于一個(gè)信號矢量,如果我們想知道這個(gè)信號的具體情況:要么采集它的幅度和相位值;要么對其進(jìn)行正交分解,得到X軸和Y軸的信號強(qiáng)度值。對于前者,我們采集幅度強(qiáng)度和相位值是比較困難的。因此,本文采用正交分解的思想,將輸入的信號進(jìn)行分解,采集信號在X軸和Y軸的信號強(qiáng)度值。
圖2 矢量正交分解圖
進(jìn)行信號分解后,自適應(yīng)濾波器只需要根據(jù)采集到的X、Y兩路的干擾信號強(qiáng)度,修正濾波器輸出的X、Y兩路的信號強(qiáng)度,達(dá)到抑制干擾信號的目的。因此,濾波器階數(shù)為M=2。同時(shí),硬件設(shè)計(jì)需要滿足對信號的正交分解及分解后的信號強(qiáng)度 檢測。
由于不同頻點(diǎn)的信號會有一定的差異,為了適應(yīng)不同信號的抑制,本文在做射頻抑制前,先采集信號樣本,作為迭代步長的參考,具體方式如下:
設(shè)步長μ為如下表達(dá)式:
其中,a為常量收斂因子,λ為與采樣值有關(guān)的變量。由于采用了正交分解,因此本文的濾波器階數(shù)為2,設(shè)矢量信號的正交分解向量為采用歸一化處理,則有:
故得到:
算法的實(shí)現(xiàn)需要進(jìn)行反復(fù)的迭代,以達(dá)到射頻抑制的效果,所以對運(yùn)算的速度要求很高,而數(shù)字信號處理器就具有運(yùn)算速度快、計(jì)算精度高、硬件配置強(qiáng)等特點(diǎn),非常適合用于算法的開發(fā)和實(shí)現(xiàn)。我們采用TI公司生產(chǎn)的TMS320C6416芯片。該芯片具有最快1.39 ns指令周期時(shí)間,可以達(dá)到5760MIPS運(yùn)算速度,具有兩路乘法器,每個(gè)時(shí)鐘周期支持最大4路16*16bit的乘法運(yùn)算或者8路8*8 bit的乘法運(yùn)算。同時(shí),芯片自帶1M內(nèi)部RAM,滿足程序內(nèi)部取數(shù)要求,豐富的外圍接口,可以極大的減少外圍電路的開發(fā)。
整個(gè)算法實(shí)現(xiàn)分為4大塊:
(1)初始化。包含芯片配置初始化,全局變量初始化。
(2)采集零漂值(即沒有任何信號輸入時(shí)采集到的信號強(qiáng)度),作為收斂基準(zhǔn)。
(3)采集信號樣本值。
(4)根據(jù)采集到的輸入信號值,進(jìn)行迭代計(jì)算,直到某次采集結(jié)果值和零漂值的誤差在設(shè)定的閾 值內(nèi)。
具體實(shí)現(xiàn)流程如下:
開始;
(1)芯片初始化,全局變量初始化,其中a=0.1,Th=10。a表示常量收斂因子,Th表示收斂門限。
(2)獲取當(dāng)前狀態(tài)下設(shè)備內(nèi)部零漂值sx,sy。sx表示x軸零漂信號值,sy表示y軸零漂信號值。
(3)采集樣本信號值x0,y0;進(jìn)而得到λ1和λ2的值。
(4)采集對消后的信號強(qiáng)度值,如果|xnowsx|+|ynow-sy|≤Th.成立,則執(zhí)行下一步,否則繼續(xù)執(zhí)行當(dāng)前步驟。
(5)迭代結(jié)束。
具體流程如圖3所示。
采用圖4中所示測試環(huán)境進(jìn)行測試,其中:信號源輸出18 dBm的信號,進(jìn)過10 dB功分器分成兩路信號,一路信號直接輸入給對消設(shè)備的參考信號N1;另一路經(jīng)過20 dB衰減后作為干擾信號N0和正常信號S進(jìn)行合成后輸入到設(shè)備另一個(gè)輸入口。對消前后結(jié)果反映在頻譜分析儀上。選取了5個(gè)點(diǎn)進(jìn)行測試,涵蓋了包括高中低三段頻點(diǎn)值。單載波測試結(jié)果見表1;FM信號(頻偏1 kHz,調(diào)制信號頻率400 Hz)測試結(jié)果見表2;AM信號(調(diào)制度 5%,調(diào)制信號頻率400 Hz)測試結(jié)果見表3,通過表格統(tǒng)計(jì)結(jié)果可以發(fā)現(xiàn),基于DSP實(shí)現(xiàn)的LMS對消算法對三種波形均能實(shí)現(xiàn)了40 dBm以上的對消比;根據(jù)統(tǒng)計(jì)迭代次數(shù)及時(shí)間可以發(fā)現(xiàn),整個(gè)迭代次數(shù)最大不超過160次,時(shí)間不大于20 ms。
圖3 算法迭代流程
圖4 對消性能測試
表1 單載波測試結(jié)果
表2 2FM測試結(jié)果
表3 3AM測試結(jié)果
本文采用的基于采樣值決定當(dāng)前頻點(diǎn)迭代步長方式的LMS算法,具有收斂速度快、抑制效果好的特點(diǎn)。實(shí)物測試結(jié)果表明:該變步長LMS算法不僅僅適用于單載波的噪聲抑制,也適用于FM、AM信號的噪聲抑制,具有很好的工程應(yīng)用效果。下一步,將考慮實(shí)現(xiàn)實(shí)時(shí)變步長算法,進(jìn)一步提高對消收斂的速度、進(jìn)一步降低對消時(shí)間的消耗。