<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è) > EDA/PCB > 設計應用 > FIR數字濾波器分布式算法的原理及FPGA實(shí)現

FIR數字濾波器分布式算法的原理及FPGA實(shí)現

作者: 時(shí)間:2007-03-09 來(lái)源:網(wǎng)絡(luò ) 收藏
摘要:在利用FPGA實(shí)現數字信號處理方面,分布式算法發(fā)揮著(zhù)關(guān)鍵作用,與傳統的乘積-積結構相比,具有并行處理的高效性特點(diǎn)。詳細研究了基于FPGA、采用分布式算法實(shí)現FIR數字濾波器的原理和方法,并通過(guò)Xilinx ISE在Modelsim下進(jìn)行了仿真。關(guān)鍵詞:分布式算法 DALUT FPGA FIR 數字濾波器正在迅速地代替傳統的由R、L、C元件和運算放大器組成的模塊濾波器并且日益成為DSP的一種主要處理環(huán)節。FPGA也在逐漸取代ASIC和PDSP,用作前端數字信號處理的運算(如:FIR濾波、CORDIC算法或FFT)。乘累加運算是實(shí)現大多數DSP算法的重要途徑,而分布式算法則能夠大大提高乘累加運算的效能。 1 傳統的乘累加結構FIR數字濾波器基本理論 FIR濾波器被稱(chēng)為有限長(cháng)脈沖響應濾波器,與IIR數字濾波器相對應,它的單位脈沖響應h(n)只有有限個(gè)數據點(diǎn)。輸入信號經(jīng)過(guò)線(xiàn)性時(shí)不變系系統輸出的過(guò)程是一個(gè)輸入信號與單位脈沖響應進(jìn)行線(xiàn)性卷積的過(guò)程,即: 式中,x(n)是輸入信號,y(n)是卷積輸出,h(n)是系統的單位脈沖響應??梢钥闯?,每次采樣y(n)需要進(jìn)行L次乘法和L-1次加法操作實(shí)現乘累加之和,其中L是濾波器單位脈沖響應h(n)的長(cháng)度??梢园l(fā)現,當L很大時(shí),每計算一個(gè)點(diǎn),則需要很長(cháng)的延遲時(shí)間。 2 乘累加運算的位寬分配 DSP算法最主要的就是進(jìn)行乘累加運算。假設采樣信號的位寬用N來(lái)表示,則N位與N位的乘累結果需要2N位的寄存器來(lái)保存;如果兩個(gè)操作數都是有符號數,則乘積只有2N-1個(gè)有效位,因為產(chǎn)生了兩個(gè)符號位。 為了使累加器的結果不產(chǎn)生溢出,需要對累加器進(jìn)行冗余設計,也就是說(shuō)要在累加器2N的位寬上多設計出K位,累加器的長(cháng)度M計算方式如下(L為濾波器的長(cháng)度): 對于無(wú)符號數:M=2N+K=2N+log2 L 對于有符號數:M=2N=K=2N+log2 L-1 3 乘累加運算的分布式算法原理分析 得益于Xilinx FPGA查找表結構的潛能,分布式算法在濾波器設計方面顯示出了很高的效率,自20世紀90年代初以來(lái)越來(lái)越受到人們的重要。分布式算法是基于查找表的一種計算方法,在利用FPGA實(shí)現數字信號處理方面發(fā)揮著(zhù)重要的作用,可以大大提高信號的處理效率。它主要應用于數字濾波、頻率轉換等數字信號處理的乘累加運算。 分布式算法推導如下: 設Ak是已知常數(如濾波器系數、FFT中的正弦/余弦基本函數等),xk(n)是變量,可以看作是n時(shí)刻的第k個(gè)采樣輸入數據,y(n)代表n時(shí)刻的系統響應。那么它們的內積為: 其中,xk(n)變量可以寫(xiě)成下面的格式: 式中,B為數據格式的字長(cháng),xkb是變量的二進(jìn)制位,只有“0”和“1”兩種狀態(tài)。將(2)式代入(1)式得: 4 FPGA實(shí)現過(guò)程中查找表的構造方法 根據以上論述,括號中的每一乘積項代表著(zhù)輸入變量的某一位與常量的二進(jìn)制“與”操作,加號代表著(zhù)算術(shù)和操作,指數因子對括號中的值加權。如果事先構造一個(gè)查找表,該表存儲著(zhù)括號中所有可能的組合值,就可以通過(guò)所有輸入變量相對應位的組合向量(XNb,X(N-1)b,...x1b)對該表進(jìn)行尋址,該查找表稱(chēng)為DALUT。DALUT的構造規則如表1所示。5 采用分布式算法實(shí)現FIR數字濾波器 為了說(shuō)明問(wèn)題,以一個(gè)三個(gè)系數的FIR數字濾波器為例設計分布式算法,字寬也設置為三位。設FIR數字濾波器系數為:h(0)=5,h(1)=2,h(2)=3。 在進(jìn)行FPGA設計時(shí),該表以組件Component形式構建,設置為ROM結構,提供輸入尋址端口table_in[2..0],輸出端口table_out[3..0]。FPGA算法的結構圖如圖2所示。算法實(shí)現中的幾個(gè)關(guān)鍵問(wèn)題為: (1)采用狀態(tài)機實(shí)現分布式算法的狀態(tài)轉移 狀態(tài)機的實(shí)現如圖3所示,設置三個(gè)狀態(tài)s0、s1、s2 。狀態(tài)s0完成數據的裝入,數據寄存器需要成對出現,一個(gè)完成數據的延遲,另一個(gè)完成數據的移位,并將狀態(tài)轉移到s1;狀態(tài)s1完成查找表功能、數據移位和分布式算法的乘累加運算,數據移位一個(gè)數據寬帶后將狀態(tài)轉移到s2;狀態(tài)s2完成數據的輸出,并將狀態(tài)轉移到s0。利用狀態(tài)機可以條理清楚地簡(jiǎn)化計算過(guò)程,在算法實(shí)現時(shí)發(fā)揮著(zhù)關(guān)鍵的作用。(2)系統時(shí)鐘與數據輸入時(shí)鐘的關(guān)系 根據上述的狀態(tài)轉移關(guān)系,可以得出:每輸入一個(gè)數據,在下一次數據輸入之前,需要在狀態(tài)s1停留一個(gè)數據寬帶(三位)的時(shí)鐘時(shí)間,在s2停留一個(gè)時(shí)鐘的數據輸出時(shí)間。也就是說(shuō),系統時(shí)鐘頻率應是數據輸入頻率的5倍,即fclkock=5fxin。 (3)分布式算法中的乘累加式公推導及核心代表實(shí)現 設B是數據的字寬,Pn是分布式算法第n位的結果,則有: 有了該關(guān)系式,就可以通過(guò)for...loop循環(huán),使用一條語(yǔ)句完成分布式乘累加算法。具體如下: for n in 0 to B-1 loop P:=p/2+tableout(n)*2B-1; End loop; 6 算法仿真驗證與結論 本文實(shí)現的FIR濾波器在Xilinx的集成開(kāi)發(fā)環(huán)境ISE下利用ModelSim進(jìn)行了仿真。當輸入數據為7,3,1...時(shí),仿真輸出依次為35,29,32,16...,與乘累加方式FIR濾波算法得出的結果完全一致。假設查找表和PDSP的通用乘法器延時(shí)時(shí)間相同,分布式算法的等待時(shí)間是Br,通用乘法器的等待時(shí)間是N1??梢?jiàn),對于位寬較小的數據來(lái)說(shuō),分布式算法的執行速度遠高于乘累加運算??梢?jiàn),利用FPGA實(shí)現分布式計算大大提高了計算的速度,在高速信號處理中發(fā)揮著(zhù)重要作用。

評論


相關(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>