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