《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 可編程邏輯 > 業(yè)界動(dòng)態(tài) > 基于分布式算法和FPGA實(shí)現(xiàn)基帶信號(hào)成形的研究

基于分布式算法和FPGA實(shí)現(xiàn)基帶信號(hào)成形的研究

2008-09-05
作者:梁學(xué)東 卜 天 田日才

??? 摘 要: 提出了一種采用現(xiàn)場(chǎng)可編程門(mén)陣列(FPGA)實(shí)現(xiàn)基帶信號(hào)" title="基帶信號(hào)">基帶信號(hào)成形的FIR數(shù)字濾波器硬件電路的方案。該方案基于分布式算法" title="分布式算法">分布式算法的思想,利用FPGA豐富的查找表" title="查找表">查找表資源,從時(shí)域上對(duì)基帶信號(hào)直接進(jìn)行成形。因?yàn)樗捎玫某尚畏椒ㄟ\(yùn)算量小、精度高,所以適用于實(shí)時(shí)系統(tǒng)。所設(shè)計(jì)的電路通過(guò)硬件仿真,證明能夠滿(mǎn)足系統(tǒng)的要求,具有一定的理論和實(shí)際意義。
??? 關(guān)鍵詞: FPGA? 基帶信號(hào)成形? 分布式算法? 查找表

?

??? 根據(jù)Nyquist第一準(zhǔn)則,基帶信號(hào)成形能夠消除碼間串?dāng)_的影響。隨著超高速數(shù)字集成電路的發(fā)展,成形濾波器已經(jīng)由過(guò)去的基帶頻域模擬成形濾波器變成現(xiàn)在的基帶時(shí)域數(shù)字成形濾波器。與基帶模擬成形濾波器相比,基帶數(shù)字成形濾波器具有高精度、高可靠性和高靈活性等優(yōu)點(diǎn);同時(shí)還具有便于大規(guī)模集成、易于實(shí)現(xiàn)線(xiàn)性相位等特點(diǎn)。實(shí)現(xiàn)基帶數(shù)字成形的方法很多,與傳統(tǒng)算法相比,分布式算法可以極大地減少硬件電路的規(guī)模,提高電路的執(zhí)行速度。本文采用基于分布式算法思想的時(shí)域成形方法來(lái)實(shí)現(xiàn)基帶信號(hào)成形。
1 分布式算法的基本原理
??? 一個(gè)線(xiàn)性時(shí)不變網(wǎng)絡(luò)的輸出可以用下式表示:
???

其中,y(n)為第n時(shí)刻網(wǎng)絡(luò)的輸出;xk(n)為第n時(shí)刻的第k個(gè)輸入變量;Ak為第k個(gè)輸入變量的權(quán)值。在線(xiàn)性時(shí)不變系統(tǒng)中,對(duì)于所有n時(shí)刻,Ak都是常量。如果該網(wǎng)絡(luò)表現(xiàn)為濾波器,常量Ak即為濾波器抽頭系數(shù),變量xk為單一數(shù)據(jù)源的抽樣數(shù)據(jù)。仔細(xì)觀(guān)察(1)式可以看出,輸出單個(gè)y(n)需要將k個(gè)乘積累加,這種累加可以通過(guò)查找表來(lái)實(shí)現(xiàn),大大提高了運(yùn)算的效率。為了使乘法之后的數(shù)據(jù)寬度不至于展寬,先把數(shù)據(jù)源數(shù)據(jù)格式規(guī)定為浮點(diǎn)數(shù)2的補(bǔ)碼形式。需要注意的是,常量Ak不一定要進(jìn)行格式轉(zhuǎn)換來(lái)匹配輸入數(shù)據(jù)的格式,它可以根據(jù)所要求的精度進(jìn)行定義。變量xk可用下式表示:
???

式中,xkb為二進(jìn)制數(shù),即取值為0或1;xk0為符號(hào)位,“1”表示數(shù)據(jù)為負(fù),“0”表示數(shù)據(jù)為正。式中,時(shí)間參數(shù)“n”已經(jīng)被省略掉,因?yàn)樵谝韵碌耐茖?dǎo)中與時(shí)間參數(shù)無(wú)關(guān)。將(2)式代入(1)式中,得:
???

??? 從(4)式可以看出,每個(gè)方括號(hào)中進(jìn)行的是輸入變量的某一個(gè)數(shù)據(jù)位和所有常量A1~Ak的每一位進(jìn)行位相“與”然后求和,而指數(shù)部分則說(shuō)明了求和結(jié)果的位加權(quán),這種加權(quán)可以通過(guò)移位來(lái)實(shí)現(xiàn)。而方括號(hào)中的計(jì)算可以通過(guò)建立查找表來(lái)實(shí)現(xiàn),具體的操作可通過(guò)所有輸入變量的同一位進(jìn)行尋址來(lái)完成。通過(guò)(4)式,(1)式就可以用加法、減法和二進(jìn)制除法來(lái)計(jì)算了,這樣就避免了頻繁地使用乘法器,從而節(jié)約了系統(tǒng)的資源,并且大大縮短了運(yùn)算的時(shí)間[1]。
2 時(shí)域成形的原理
??? (4)式中的查找表方法可以縮短運(yùn)算的時(shí)間,但是二進(jìn)制除法還是會(huì)消耗掉大量的系統(tǒng)時(shí)鐘。因?yàn)橐O(shè)計(jì)的是基帶信號(hào)成形濾波器,所以可以通過(guò)直接在時(shí)域上成形的方法來(lái)完成。
??? 如果輸入為二進(jìn)制雙極性數(shù)據(jù),采用升余弦滾降濾波器進(jìn)行脈沖成形,其系統(tǒng)函數(shù)為:
???

??? 若取截短長(zhǎng)度為輸入信號(hào)" title="輸入信號(hào)">輸入信號(hào)碼元寬度的4倍,則當(dāng)輸入信號(hào)為“1111”時(shí),系統(tǒng)的輸出波形如圖1所示。

?


??? 圖中,h(t)為h(t)的截短。由圖1可知,只需要求出Δ時(shí)間段的波形疊加值,依次輸出,就可以得到輸入信號(hào)的成形波形。若在段內(nèi)抽樣8點(diǎn),則每個(gè)樣點(diǎn)有24個(gè)可能值,共有24×8=128個(gè)數(shù)據(jù)。將這128個(gè)數(shù)據(jù)存入查找表中,用連續(xù)四個(gè)輸入信號(hào)進(jìn)行尋址,就可以不必計(jì)算二進(jìn)制除法,從而提高系統(tǒng)的運(yùn)算速度。其硬件原理圖如圖2所示。

?


??? 圖中,SSR是一個(gè)四位移位寄存器" title="移位寄存器">移位寄存器,數(shù)據(jù)串行輸入,并行輸出,初始狀態(tài)預(yù)置為“0000”,每一時(shí)鐘信號(hào)讀入一位數(shù)據(jù),同時(shí)串行移位;計(jì)數(shù)器為8位,每次時(shí)鐘從000計(jì)數(shù)至111;ROM的寬度為7位,存儲(chǔ)27個(gè)數(shù)據(jù),對(duì)應(yīng)各個(gè)樣點(diǎn)的數(shù)值,每次時(shí)鐘到來(lái)時(shí),輸出8個(gè)10比特寬的數(shù)據(jù)[2]
3 用FPGA實(shí)現(xiàn)
??? 由圖2可知,系統(tǒng)主要由移位寄存器、計(jì)數(shù)器和查找表組成,其中查找表(ROM)對(duì)系統(tǒng)運(yùn)算速度的影響最大。如果直接用寬度為7的查找表進(jìn)行尋址的話(huà),最長(zhǎng)的尋址路徑需要27個(gè)系統(tǒng)時(shí)鐘,這樣損失太大。所以考慮用尋址寬度小的查找表。假定系統(tǒng)輸入數(shù)據(jù)的碼速率為4.352Mbps,濾波器的滾降系數(shù)α=0.35,則用FPGA可實(shí)現(xiàn)成形濾波器。
3.1 輸入單元
??? 輸入單元由移位寄存器和選擇網(wǎng)絡(luò)組成。移位寄存器是由四個(gè)帶異步復(fù)位端的D觸發(fā)器級(jí)連而成,數(shù)據(jù)串行輸入,并行輸出,共用同一個(gè)時(shí)鐘和異步復(fù)位信號(hào),其作用是將輸入數(shù)據(jù)讀入查找表中。選擇網(wǎng)絡(luò)是為了減小查找表的尋址寬度,根據(jù)前三個(gè)輸入數(shù)據(jù)的值來(lái)選擇對(duì)應(yīng)的查找表。選擇網(wǎng)絡(luò)的電路圖如圖3所示。

?


??? 圖中的“F_SWITCH”模塊是一個(gè)開(kāi)關(guān)電路,當(dāng)使能端為高電平時(shí),將輸入端的數(shù)據(jù)輸出,否則輸出端為高阻態(tài)。根據(jù)圖3的原理,當(dāng)前三個(gè)輸入信號(hào)為100時(shí),選中第5個(gè)開(kāi)關(guān)。這樣,只要將第5個(gè)開(kāi)關(guān)選通的查找表中數(shù)據(jù)依次輸出,就可以得到成形信號(hào)。這時(shí)查找表的尋址寬度為3位,大大節(jié)約了尋址時(shí)間。查找表尋址方式的電路圖如圖4所示。

?


??? 在圖4中,計(jì)數(shù)器的作用是在第四位數(shù)據(jù)到來(lái)時(shí),激勵(lì)查找表將其存儲(chǔ)的8個(gè)數(shù)據(jù)依次輸出。L_ROM是尋址寬度為3位的查找表。
3.2 查找表
??? 在圖1中的Δ段內(nèi)抽樣8點(diǎn),且濾波器為升余弦滾降濾波器,則有下式成立:
???

??? 對(duì)(7)式進(jìn)行計(jì)算,列出所有可能的樣點(diǎn)值,如表1所示。

?


??? 將表1中每一行的值轉(zhuǎn)化為二進(jìn)制補(bǔ)碼形式,寫(xiě)入尋址寬度為3位的16個(gè)查找表中。此查找表帶有使能端,當(dāng)使能端為高電平時(shí),輸出端選中數(shù)據(jù),否則輸出端為高阻態(tài)。這種查找表對(duì)于時(shí)鐘上升沿的延時(shí)最大為14.5ns,而輸入信號(hào)的碼元周期為230ns,所以能夠很好地滿(mǎn)足系統(tǒng)的要求。
4 設(shè)計(jì)結(jié)果
??? 用FLEX10k30A器件實(shí)現(xiàn)成形濾波器,將得到的輸出數(shù)據(jù)轉(zhuǎn)化為十進(jìn)制數(shù),并畫(huà)出相應(yīng)的波形。當(dāng)輸入信號(hào)為“1010001”時(shí),成形信號(hào)的時(shí)域波形如圖5所示。

?


??? 由圖5可以看出,在各個(gè)取樣點(diǎn)碼之間串?dāng)_很小,達(dá)到了基帶信號(hào)成形的目的。
??? 本設(shè)計(jì)基于分布式算法思想,在時(shí)域上對(duì)基帶信號(hào)直接成形。利用FPGA豐富的查找表資源,提出了一種高效的成形算法。通過(guò)FPGA驗(yàn)證,證明工作正常,性能良好。
參考文獻(xiàn)
1 Suk Ho Lee.The Role of Distributed Arithmetic?in FPGA-based Signal Processing. Naval Postgraduate School Monterey. California AD-A164-199,1999:33~45
2 Luis Aberto Munoz. FPGA-based FIR Filter Using BitSerial Digital Signal Processing.Naval Postgraduate School Monterey. California AD-A264-522,1999: 25~36

本站內(nèi)容除特別聲明的原創(chuàng)文章之外,轉(zhuǎn)載內(nèi)容只為傳遞更多信息,并不代表本網(wǎng)站贊同其觀(guān)點(diǎn)。轉(zhuǎn)載的所有的文章、圖片、音/視頻文件等資料的版權(quán)歸版權(quán)所有權(quán)人所有。本站采用的非本站原創(chuàng)文章及圖片等內(nèi)容無(wú)法一一聯(lián)系確認(rèn)版權(quán)者。如涉及作品內(nèi)容、版權(quán)和其它問(wèn)題,請(qǐng)及時(shí)通過(guò)電子郵件或電話(huà)通知我們,以便迅速采取適當(dāng)措施,避免給雙方造成不必要的經(jīng)濟(jì)損失。聯(lián)系電話(huà):010-82306118;郵箱:aet@chinaaet.com。