<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > 二維FIR濾波器的FPGA實(shí)現

二維FIR濾波器的FPGA實(shí)現

作者: 時(shí)間:2015-01-06 來(lái)源:網(wǎng)絡(luò ) 收藏

  O 引言

本文引用地址:http://dyxdggzs.com/article/267748.htm

  二維有限長(cháng)單位脈沖響應濾波器(2D—FIR)用于對二維信號的處理,如在通信領(lǐng)域中廣泛采用2D-FIR完成對I、Q兩支路基帶信號的濾波[1]。由于涉及大量復數運算并且實(shí)時(shí)性要求高,如果不對算法作優(yōu)化在技術(shù)上很難實(shí)現。目前主要設計方案是利用廠(chǎng)商提供的一維FIR知識產(chǎn)權核(IP),組成二維濾波器[2]。這種方案沒(méi)有考濾復數運算的特點(diǎn),不可能在算法上優(yōu)化,而且IP核的內部代碼是不可修改的,因此在不同廠(chǎng)商的器件上不可移植。2D_FIR的復數運算都需轉成實(shí)數運算來(lái)實(shí)現的,而其中實(shí)數乘法運算占用邏輯資源遠比實(shí)數加法多。通過(guò)分析復數乘法特點(diǎn),減小其所需實(shí)數乘法器個(gè)數就可以減小邏輯資源占用率并提高運算速度。這種方案優(yōu)點(diǎn)在于直接優(yōu)化算法,不會(huì )受IP核限制可移植性很強。

  1 2D—FlR的設計

  采用設計復數常見(jiàn)的方案[2]為:用廠(chǎng)商提供的4個(gè)實(shí)數IP核組合成2D—。很明顯這種設計沒(méi)有考慮復數運算的特點(diǎn),2D—FIR濾波器占用資源至少4倍于實(shí)數FIR濾波器,硬件資源耗費過(guò)大,性能也會(huì )受到不小的影響。因此從算法上分析并優(yōu)化濾波器的結構非常必要。

  1.1 算法優(yōu)化

  2D—FIR濾波器結構采用卷積型,它對輸入數據的處理就是進(jìn)行卷積運算[3],如(1)式所示:

  

 

  (1)式中各量全為復數:xρ(n)為輸入數據為濾波器抽頭系數。由(1)式可以看出其運算過(guò)程是先作復數乘法運算,再將乘積結果作復數加法得到一個(gè)復數乘法由4個(gè)實(shí)數乘法和2個(gè)實(shí)數加法構成。而相同位數的實(shí)數乘法器與實(shí)數加法器相比會(huì )占更多的硬件資源,也會(huì )對電路性能產(chǎn)生更多的負面影響。通過(guò)優(yōu)化后的復數乘法如下:

  

 

  比較(2)式和(3)式可以得到兩個(gè)式子中xR×CI、xI×CR是共有項,故優(yōu)化后的復乘法器需3個(gè)實(shí)數乘法器和5個(gè)實(shí)數加法器。如果抽頭系數為常數cR-cI,可以事先計算,還可以省一個(gè)加法器。通過(guò)Quartus II編譯、分析可以看到復乘法器性能提升了近14%,同時(shí)器件資源占用卻下降了17%。因為濾波器共需15個(gè)復乘法器所以總體上減小的邏輯單元非??捎^(guān)。

  1.2 FPGA實(shí)現

  考慮到2D—FIR濾波器的運用背景,除HDTV信道中要求抽頭數大于100以外抽頭數定為15已能滿(mǎn)足一般通信系統的要求,輸入數據和抽頭系統數據寬度都為16位。其中,輸入數據整數位(含符號位)為4位,小數位為12位,抽頭系數整數位為(含符號位)3位,小數位為13位,輸出數據與輸入數據位寬選取一樣。FPGA實(shí)現浮點(diǎn)小數運算代價(jià)太大,解決小數運算的方法是將小數表示為帶符號的整數[2],運算后再對結果進(jìn)行截尾處理。

  由于2D—FIR濾波器中有很多乘法和加法器,它們都是大型組合邏輯電路,所以需要在電路上進(jìn)一步優(yōu)化。引入多級流水線(xiàn)是提升電路工作速度很有效的方法[4],文獻[2]所采用的轉置卷積型濾波器結構實(shí)質(zhì)是在乘法器之間加入了一級流水線(xiàn),但相對于多級流水線(xiàn)其對電路性能提升并不大。本文加流水線(xiàn)具體的做法是用寄存器將組合電路分成若干延時(shí)相近的小型組合電路,同時(shí)將乘法和加法器分別設置為3級和2級流水線(xiàn)以滿(mǎn)足流水線(xiàn)配平原則。FPGA選用Altera公司專(zhuān)用于數字信號處理的EPlS20芯片,經(jīng)過(guò)Quartus II編譯后從報告中看到濾波器工作頻率為146MHz,占用芯片54%的邏輯資源。

  2 仿真及結論

  電路仿真結果如圖1所示,輸入數據為[1+3*i,5,0,0,0 0,0,2,3.5,1+2*i,0,0…],抽頭系數在模塊中設為[0.851*i,0,0,1,-i,1.15-0.4.i,0,0,0,i, 0, 0, 0, 0,圖1 2D—FIR濾波器電路時(shí)序仿真結果

  

 

  0.1*i]。為了方便驗證仿真結果,事先計算出輸出數據并轉化為帶符號位的整數[-10457+3486i,0+17428i,0,4096+12288i,32768—4096i,9626—7987i…]。從圖3中的仿真結果可以看到,經(jīng)過(guò)十幾個(gè)時(shí)鐘周期的延時(shí)后復數FIR濾波器的輸出為[3486+10457 i,17428,0,4096+12288i,32767-4096i,9626-7987i…],前面兩個(gè)數據與計算結果不一致是因為:復濾波器剛開(kāi)始工作時(shí)內部移位寄存器默認的數據是0而不是外部輸入的數據,當數據全部裝載入濾波器后,計算結果完全滿(mǎn)足設計要求。

  通過(guò)對算法與電路的優(yōu)化使2D—FIR濾波器的性能提高了13%,邏輯資源的占用減小了16%。文中所提出的方案比常規方法更有效,而且具有更強的可移植性。

電氣符號相關(guān)文章:電氣符號大全


濾波器相關(guān)文章:濾波器原理


fpga相關(guān)文章:fpga是什么


濾波器相關(guān)文章:濾波器原理


電源濾波器相關(guān)文章:電源濾波器原理


脈沖點(diǎn)火器相關(guān)文章:脈沖點(diǎn)火器原理
數字濾波器相關(guān)文章:數字濾波器原理


關(guān)鍵詞: FIR濾波器 FPGA

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>