1.引言
在移動(dòng)通信和高速無(wú)線(xiàn)數(shù)據(jù)通信中,多徑效應(yīng)和信道帶寬的有限性以及信道特性的不完善性導(dǎo)致數(shù)據(jù)傳輸時(shí)不可避免的產(chǎn)生碼間干擾,,成為影響通信質(zhì)量的主要因素,,而信道的均衡技術(shù)可以消除碼間干擾和噪聲,并減少誤碼率,。其中判決反饋均衡器(DFE)是一種非常有效且應(yīng)用廣泛得對(duì)付多徑干擾得措施,。目前DFE大致有以下幾種實(shí)現(xiàn)方法:1)采用多片通用數(shù)字濾波器集成電路級(jí)聯(lián)方式,但同時(shí)由與多片帶來(lái)的體積和功耗的增加,,在實(shí)際中運(yùn)用不多,。2)采用DSP來(lái)實(shí)現(xiàn),,如MotorolaSC140就是單片的可編程均衡器,采用軟件來(lái)實(shí)現(xiàn)算法,,但由于受器件功能限制,,在實(shí)時(shí)性要求極高的場(chǎng)合中受到限制。3)采用可編程邏輯器件實(shí)現(xiàn),隨著可編程邏輯器件邏輯門(mén)數(shù)量和速度的不斷增加,,在單片上實(shí)現(xiàn)系統(tǒng)集成已經(jīng)成為可能,,而且FPGA特別適合實(shí)現(xiàn)可配置的判決反饋均衡器。
2.判決反饋均衡器的基本原理
判決反饋均衡器(DFE)是一種非線(xiàn)性均衡器,。如圖1所示,,由前饋部分(由FIR濾波器組成)和反饋部分(由IIR濾波器組成)組成,前饋部分可以抵消在時(shí)間上超前的碼間干擾和在時(shí)間是滯后的碼間干擾(由中心抽頭的位置決定),反饋部分可以抵消在時(shí)間上滯后的碼間干擾,。
均衡器的輸出為:
式中M,N分別為前饋濾波器和反饋濾波器的長(zhǎng)度。抽頭系數(shù)更新采用DD_LMS(directdecisionleastmeansquare)和CMA(constantmodulusalgorithm)算法,,CMA是一種盲自適應(yīng)算法,,即不需要訓(xùn)練序列,可以讓均衡器收斂到較低的MSE水平,,但由于CMA的誤差量較大,,從而步長(zhǎng)較小,CMA的跟蹤能力有限,,因而,,在DFE設(shè)計(jì)中,CMA常常作為均衡器的初始化算法,,即對(duì)多徑信號(hào)的時(shí)延和幅度進(jìn)行粗略估計(jì),。而DD_LMS算法相對(duì)于CMA有更低的MSE水平,并且DD_LMS具有較低的誤差量,,從而步長(zhǎng)更大,,跟蹤能力強(qiáng),因而,,在DFE設(shè)計(jì)中,,DD_LMS常常作為均衡器穩(wěn)定后的自適應(yīng)算法。
3.設(shè)計(jì)思想
由于我們?cè)O(shè)計(jì)的DFE是一個(gè)比較復(fù)雜的系統(tǒng),,我們?cè)谠O(shè)計(jì)中根據(jù)功能塊自下而上分層次進(jìn)行,,這樣可以節(jié)省設(shè)計(jì)時(shí)間,減少設(shè)計(jì)輸入的錯(cuò)誤,,消除重復(fù)的電路元件,,并能簡(jiǎn)化校驗(yàn)于進(jìn)行修改,在實(shí)際設(shè)計(jì)中,,按照模塊的大小和功能分成三部分:如圖二所示,,PARTI包括接口和DFE均衡器,,PARTII包括判決器和誤差控制函數(shù)運(yùn)算模塊,PARTIII為抽頭系數(shù)調(diào)整部分,。
出于靈活性的考慮,,系統(tǒng)采用類(lèi)似于集散控制而非集中控制的方案,也就是系統(tǒng)沒(méi)有一個(gè)中心控制器,,這樣可以保持三個(gè)部分的相對(duì)獨(dú)立,,若要改變?cè)O(shè)計(jì),比如改變算法,,只需要改變誤差控制函數(shù)運(yùn)算模塊即可,。各模塊的恰當(dāng)分割大大增加了系統(tǒng)的靈活性。
4.各模塊的FPGA實(shí)現(xiàn)
4.1接口模塊
本系統(tǒng)并未涉及具體的A/D器件,,僅根據(jù)常用的A/D器件的工作信號(hào)設(shè)計(jì)系統(tǒng)接口模塊,。
在轉(zhuǎn)換完成后,一般A/D器件輸出一個(gè)低電平信號(hào)作為A/D的允許信號(hào),。該信號(hào)在系統(tǒng)中為輸入信號(hào)ad_end,,接口模塊系統(tǒng)時(shí)鐘始終監(jiān)控ad_end的電平變化,當(dāng)檢測(cè)到ad_end的低電平時(shí),,接口模塊產(chǎn)生一個(gè)“開(kāi)始”脈沖作為允許信號(hào),,允許DFE的延遲環(huán)節(jié)接收輸入數(shù)據(jù),并開(kāi)始移位,。其實(shí)現(xiàn)如圖三所示,。
4.2DFE模塊
均衡器分為FFE(FeedforwardEqualizer)和FBE(FeedBackwardEqualizer)兩部分,結(jié)構(gòu)類(lèi)似,前饋濾波器為32階的FIR濾波器,,反饋濾波器為64階的IIR濾波器,,濾波器系數(shù)寬度都為16位,精度為15位,,輸入數(shù)據(jù)寬度為12位,,精度為10位,判決器輸出數(shù)據(jù)為2位,,精度為0位,,該模塊主要由輸入移位寄存器和卷積模塊組成。
(1)輸入移位寄存器
對(duì)于前饋濾波器,,由于共有32階,,因此輸入寄存器的長(zhǎng)度為32。定義一個(gè)32×12的二維數(shù)組FFF[32][12],復(fù)位信號(hào)有效時(shí),,F(xiàn)FF清零,。復(fù)位信號(hào)無(wú)效,而輸入使能信號(hào)有效時(shí),,每來(lái)一個(gè)時(shí)鐘上升沿,,就從輸入端進(jìn)入一個(gè)數(shù)據(jù),,上一時(shí)刻的數(shù)據(jù)分別前移一位,最前面的數(shù)據(jù)被第二個(gè)數(shù)據(jù)覆蓋,。
對(duì)于反饋濾波器,,由于有64階,因此輸入寄存器的長(zhǎng)度為64,定義一個(gè)64×12的二維數(shù)組FFF[64][12],數(shù)據(jù)輸入方式和前饋濾波器相同。
(2)卷積部分的實(shí)現(xiàn)
對(duì)于前饋濾波器,,輸入數(shù)據(jù)寬度是12位,,精度為10位,濾波器系數(shù)寬度為16位,,精度為15位,,輸入數(shù)據(jù)為帶符號(hào)數(shù),數(shù)據(jù)的高位為符號(hào)位,,為實(shí)現(xiàn)相乘運(yùn)算,,設(shè)計(jì)12×16位的乘法器,分別從前饋輸入移位寄存器和前饋系數(shù)移位寄存器中取出數(shù)據(jù)和系數(shù)作為12×16的輸入,,這樣32個(gè)乘法器就分別得到32個(gè)乘積,,乘積的寬度為11+15,精度為10和15的數(shù)據(jù)相乘后得到的數(shù)據(jù)精度為25位,因此結(jié)果的小數(shù)點(diǎn)在第25位和26位之間,。為減少系統(tǒng)的硬件開(kāi)銷(xiāo),把乘法器的輸出結(jié)果進(jìn)行合理的截取,,取精度為15位,,低10位丟棄,這樣乘法器的輸出就變?yōu)閺牡?1位到第27位的數(shù)據(jù),,寬度為17位,,精度為15位。反饋濾波器實(shí)現(xiàn)與之類(lèi)似,。
4.3誤差控制函數(shù)運(yùn)算模塊
誤差控制函數(shù)運(yùn)算模塊主要完成判決輸出以及誤差控制函數(shù)的運(yùn)算,。不同的抽頭更新算法在于誤差控制函數(shù)的不同。判決器的功能是進(jìn)行誤差判決,,判決器判決部分比較簡(jiǎn)單,,由于二進(jìn)制數(shù)采用補(bǔ)碼表示,判決和誤差的計(jì)算都可以用組合電路來(lái)實(shí)現(xiàn),。
4.4抽頭系數(shù)調(diào)整模塊
本模塊完成抽頭系數(shù)的自適應(yīng)調(diào)整,,模塊主要由系數(shù)移位寄存器和系數(shù)調(diào)整運(yùn)算模塊組成。
(1)系數(shù)移位寄存器
對(duì)于前饋寄存器,,相應(yīng)的輸入移位寄存器有32節(jié),,則系數(shù)移位寄存器也有32節(jié)。設(shè)置一個(gè)初始系數(shù)裝入輸出端,,32個(gè)系數(shù)輸入端,32個(gè)系數(shù)輸出端,,復(fù)位信號(hào)有效時(shí),,所有寄存器清零,初始系數(shù)串行裝入,,裝入7個(gè)初始系數(shù)需要7個(gè)時(shí)鐘周期,在裝入使能有效時(shí),,每來(lái)一個(gè)時(shí)鐘上升沿,裝入一個(gè)系數(shù),,先裝入的系數(shù)右移動(dòng)一個(gè)寄存器,,如果系數(shù)調(diào)整使能有效,則每來(lái)一個(gè)時(shí)鐘上升沿就把來(lái)自系數(shù)調(diào)整運(yùn)算模塊調(diào)整后的系數(shù)并行裝入到系數(shù)移位寄存器中,。
對(duì)于反饋系數(shù),,移位寄存器有64節(jié),移位原理同前饋濾波器,。
(2)系數(shù)運(yùn)算調(diào)整
抽頭系數(shù)的調(diào)整可按上式來(lái)計(jì)算,,其中為時(shí)刻前抽頭系數(shù)向量,為時(shí)刻反饋抽頭系數(shù)向量,,為輸入數(shù)據(jù)向量,,為判決器輸出向量,為誤差控制函數(shù)計(jì)算模塊的輸出,。
對(duì)于前饋抽頭系數(shù),,輸入的前一個(gè)時(shí)刻的系數(shù)來(lái)自前饋系數(shù)移位寄存器輸出的系數(shù),每來(lái)一個(gè)時(shí)鐘,,系數(shù)調(diào)整一次,。為寬度12位,精度為10位的數(shù)據(jù),,為寬度為九位,精度為0位的數(shù)據(jù),,兩者輸入到一個(gè)12×9乘法器相乘后,得到寬度為11+8+1=20位,,精度為10位的數(shù)據(jù),。由于在誤差控制模塊中計(jì)算時(shí),只取了低9位,,小數(shù)點(diǎn)右移了15位,,現(xiàn)在把小數(shù)點(diǎn)左移15位得到寬度為26,精度為25的數(shù)據(jù)。截取高16位,,得到寬度為16,、精度為15的系數(shù)調(diào)整量。前一個(gè)時(shí)刻的系數(shù)和這個(gè)調(diào)整量輸入到一個(gè)16位減法器,,這里系數(shù)極小,,所以不必考慮進(jìn)位,得到一個(gè)寬度為16位,、精度為15位的差,,即調(diào)整后的系數(shù),,輸出到前饋系數(shù)移位寄存器。
對(duì)于反饋抽頭系數(shù),,輸入的前一個(gè)時(shí)刻的系數(shù)來(lái)自反饋系數(shù)移位寄存器輸出的系數(shù),。每來(lái)一個(gè)時(shí)鐘,系數(shù)調(diào)整一次,。為寬度為2,、精度為0的數(shù)據(jù),為寬度9位,、精度0位的數(shù)據(jù),,兩者輸入到一個(gè)2×9乘法器相乘后,得到寬度為1+8+1=10位,、精度為0位的乘積,。同樣把小數(shù)點(diǎn)左移15位,得到系數(shù)調(diào)整量,。前一個(gè)時(shí)刻的系數(shù)和這個(gè)調(diào)整量輸入到一個(gè)16位減法器,,得到一個(gè)調(diào)整后的系數(shù),寬度16位,、精度15位,。
4.5FPGA實(shí)現(xiàn)
整個(gè)設(shè)計(jì)全部用verilogHDL語(yǔ)言實(shí)現(xiàn),F(xiàn)PGA芯片采用XC2VP70,采用SynplifyPro7.7進(jìn)行綜合,,ncverilog5.0進(jìn)行功能仿真,,ISE6.3生成布線(xiàn)文件。根據(jù)綜合結(jié)果對(duì)設(shè)計(jì)進(jìn)行了優(yōu)化,,最后系統(tǒng)顯示最高頻率可到80M,上板測(cè)試功能正常,,系統(tǒng)延遲控制在35us范圍以?xún)?nèi),,可以滿(mǎn)足絕大多數(shù)高速無(wú)線(xiàn)數(shù)據(jù)通訊系統(tǒng)對(duì)均衡器的要求。
5總結(jié)
本文作者創(chuàng)新點(diǎn):針對(duì)高速無(wú)線(xiàn)數(shù)據(jù)通訊的實(shí)時(shí)性要求,,提出采用FPGA來(lái)實(shí)現(xiàn)可配置均衡器的設(shè)計(jì),,在設(shè)計(jì)過(guò)程中采用自頂而下劃分的設(shè)計(jì)方式,即方便了設(shè)計(jì)的需要,,同時(shí)又滿(mǎn)足了性能的要求,,在實(shí)際項(xiàng)目中收到很好的效果。