基于FPGA的自適應(yīng)均衡器的研究與設(shè)計
摘要:近年來,自適應(yīng)均衡技術(shù)在通信系統(tǒng)中的應(yīng)用日益廣泛,利用自適應(yīng)均衡技術(shù)在多徑環(huán)境中可以有效地提高數(shù)字接收機(jī)的性能。為了適應(yīng)寬帶數(shù)字接收機(jī)的高速率特點(diǎn),本文闡述了自適應(yīng)均衡器的原理并對其進(jìn)行改進(jìn)。最后使用FPGA芯片和Verilog HDL設(shè)計實(shí)現(xiàn)了自適應(yīng)均衡器并仿真驗證了新方法的有效性。
信道均衡技術(shù)(Channel equalization)是指為了提高衰落信道中的通信系統(tǒng)的傳輸性能而采取的一種抗衰落措施。它主要是減小信道的多徑時延帶來的碼間串?dāng)_(ISI)問題。其原理是對信道或整個傳輸系統(tǒng)特性進(jìn)行補(bǔ)償,從而達(dá)到系統(tǒng)傳輸?shù)囊?。在?shí)際的通信系統(tǒng)中,信道的特性是未知的并且是不理想的,傳統(tǒng)的均衡器無法滿足系統(tǒng)的要求,自適應(yīng)均衡器直接從傳輸?shù)男盘栔?,根?jù)某種算法不斷調(diào)整系統(tǒng)中濾波器的增益,來適應(yīng)信道的隨機(jī)變化,從而有更好的失真補(bǔ)償性能,使均衡器總是保持最佳的工作狀態(tài)。FPGA以其處理速度快、開發(fā)周期短、可重復(fù)修改、開發(fā)工具智能、支持并行處理等優(yōu)點(diǎn)成為現(xiàn)代通信領(lǐng)域硬件設(shè)計的首選方式之一?;贔PGA實(shí)現(xiàn)的自適應(yīng)均衡器能夠更好地適應(yīng)當(dāng)前通信的發(fā)展要求,具有更廣闊的應(yīng)用前景。
最小均方誤差算法(LMS)是較常用的一種實(shí)現(xiàn)自適應(yīng)均衡器的算法,也是FPGA實(shí)現(xiàn)自適應(yīng)均衡器的最理想的算法,所以本文選擇使用LMS算法設(shè)計均衡器。本文所設(shè)計的自適應(yīng)均衡器是寬帶數(shù)字接收機(jī)的一部分,為了滿足寬帶系統(tǒng)的高速率,實(shí)時性的特點(diǎn),在算法設(shè)計,對LMS算法進(jìn)行一定的改進(jìn)。
1 LMS算法基本原理
LMS算法是基于最小均方差準(zhǔn)則的維納濾波器和最速下降法(method of steepest descent)提出的,其公式如下:
y(n)=uT(n)w(n) (1)
e(n)=d(n)-y(n) (2)
w(n+1)=w(n)+2μe(n)u(n) (3)
d(n)為期望輸入信號,e(n)為誤差,其中μ為步長因子,用以控制收斂速度與穩(wěn)定性,LMS算法收斂的條件為:0
LMS算法的基本步驟如下:
步驟1,初始化w(0)=0,n=0;選擇μ;
步驟2,根據(jù)式(2)(3)計算誤差e(n)和w(n+1);
步驟3,若誤差不滿足要求,更新n=n+1,重復(fù)步驟2,若滿足要求則停止迭代。
下圖為最小均方誤差算法的原理框圖。
2 LMS算法改進(jìn)
在寬帶系統(tǒng)中,數(shù)據(jù)量大,速率快,因此對均衡器的處理速度要求高,簽于此本文把變步長LMS算法和符號LMS算法結(jié)合在一起,以滿足上述要求。
步長因子μ控制著算法的收斂速度和穩(wěn)定性,當(dāng)μ較大時收斂速度快,穩(wěn)定性較差,μ較小,穩(wěn)定性好,收斂速度慢。變步長LMS算法可以兼顧收斂速度和穩(wěn)定性兩個方面。一種變步長算法的公式為:
μ(n)=β[1-exp(-α|e(n)|2)] (4)
α、β為參數(shù)。由上式看到隨著誤差的減小,步長因子也在減小,穩(wěn)定性增加。
公式(3)中,我們看到,每次迭代都會使用乘法器,運(yùn)算量較大。符號LMS算法對公式(3)中的誤差e(n)進(jìn)行縮放,每次迭代可減少使用一次乘法器,公式如下:
由公式(5)可以看出,符號LMS算法會損失一定的精度。變步長LMS算法可以改變步長以獲得快的收斂速度,結(jié)合符號LMS算法,可以大量減少運(yùn)算量,提高系統(tǒng)的效率。本文對兩種算法的混合算法進(jìn)行matlab仿真,選取64階均衡器,數(shù)據(jù)的訓(xùn)練長度為1 000,跟蹤變步長計算的參數(shù)選擇α=4,β=1/128。下面對兩種方法混合算法用matlab仿真,并和傳統(tǒng)算法比較,如圖2所示。
為了便于FPGA實(shí)現(xiàn),按照變步長LMS算法思想,本文不在對變步長LMS算法中步長μ進(jìn)行跟蹤計算,而是指定步長收斂之前為0.02,收斂之后步長0.15,其他參數(shù)不變,使用Matlab仿真,如圖3所示。
從圖中我們看到混合算法的誤差比傳統(tǒng)算法有所增大,但是在迭代300次后趨于穩(wěn)定,比傳統(tǒng)算法減少200次,因此混合算法更能滿足實(shí)時性的要求。
圖3中,由于收斂之前步長且不隨誤差的減小而減小(迭代次數(shù)為200),所以收斂速度更快;收斂之后步長較小,平均的穩(wěn)態(tài)誤差比混合算法有所減小。
3 基于FPGA自適應(yīng)均衡器的實(shí)現(xiàn)
由仿真可知,我們提出的混合算法可以滿足設(shè)計自適應(yīng)均衡器的要求。本章將基于此算法的用FPGA實(shí)現(xiàn)自適應(yīng)均衡器。
采用FPGA設(shè)計LMS自適應(yīng)均衡器的結(jié)構(gòu)圖如圖4所示。它主要分為FIR濾波器模塊、誤差計算模塊、權(quán)值更新模塊和狀態(tài)分配模塊4個單元。
文中為了方便實(shí)現(xiàn),F(xiàn)IR濾波器模塊實(shí)現(xiàn)18階的FIR濾波。誤差計算模塊中的基準(zhǔn)信號d(k)事先可存在ROM里。權(quán)值更新部分實(shí)現(xiàn)FIR濾波器系數(shù)的計算與調(diào)整,設(shè)定收斂之前μ=2-4,收斂之后μ=2-6。
狀態(tài)分配模塊功能包括初始化各模塊,它產(chǎn)生控制信號、控制實(shí)現(xiàn)各個模塊完成特定功能;協(xié)調(diào)各個模塊間的操作。
由于FPGA不支持浮點(diǎn)數(shù)運(yùn)算,而自適應(yīng)濾波器必然要涉及到小數(shù)的計算,因此我們將所有小數(shù)化為二進(jìn)制處理。本文設(shè)計采用4..4格式,第一位為符號位。
根據(jù)以上參數(shù),按照LMS原理以及結(jié)構(gòu)圖,我們即可編寫程序,主程序流程圖如圖5所示。
文中選用xilinx公司的ISE12.4為開發(fā)工具,Modelsim為仿真工具。為了便于比較,我們將輸出信號和期望信號進(jìn)行判決。仿真結(jié)果如下。
圖6(a)中信道無干擾,可以看出輸出信號和期望信號一致;若信道發(fā)生突變,如圖6(b)所示,在經(jīng)歷一段時間后均很器可以消除碼間干擾。通過仿真,可以得到:基于混合算法的自適應(yīng)均衡器可以消除碼間串?dāng)_,能夠快速地從多徑信號中恢復(fù)出發(fā)送信號,減少誤碼。
4 結(jié)論
文中改進(jìn)了LMS算法原理,利用FPGA實(shí)現(xiàn)了自適應(yīng)均衡器,從仿真結(jié)果來看,采用FPGA實(shí)現(xiàn)自適應(yīng)均衡器完全可滿足設(shè)計要求,基于改進(jìn)型算法可獲得較高的數(shù)據(jù)處理速度。鑒于時間和本文篇幅較小,設(shè)計中FIR濾波器的階數(shù)選取相對較小,而且引入符號LMS算法,因而對白適應(yīng)均衡器的收斂精度會帶來一定的影響,但可以通過增加FIR濾波器的階數(shù)和數(shù)據(jù)的位數(shù)來提高精度。