新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 技術(shù)方案 > 基于FPGA的16抽頭FIR數(shù)字低通濾波器設(shè)計(jì)與仿真

基于FPGA的16抽頭FIR數(shù)字低通濾波器設(shè)計(jì)與仿真

作者: 時(shí)間:2014-09-09 來源:網(wǎng)絡(luò) 收藏

  摘要 采用改進(jìn)并行分布式算法設(shè)計(jì)了一種16抽頭FIR數(shù)字,首先用工具箱中的FDATool設(shè)計(jì)濾波器系數(shù),然后使用硬件描述語言Verilog HDL和原理圖,實(shí)現(xiàn)了子模塊和系統(tǒng)模塊設(shè)計(jì),在與QuartusII中對系統(tǒng)模塊進(jìn)行聯(lián)合仿真。仿真結(jié)果表明,設(shè)計(jì)系統(tǒng)性能穩(wěn)定,濾波效果良好,且實(shí)用性較強(qiáng)。

本文引用地址:http://butianyuan.cn/article/262694.htm

  數(shù)字濾波器分為有限沖激響應(yīng)(FIR)和無限沖激響應(yīng)(IIR)兩種。其中,F(xiàn)IR數(shù)字濾波器在實(shí)現(xiàn)任意幅頻特性的同時(shí)能夠保證嚴(yán)格的線性相位特性。由于其單位沖激響應(yīng)是有限的,沒有輸出到輸入的反饋,因此系統(tǒng)是穩(wěn)定系統(tǒng)。FIR數(shù)字濾波器在通信、圖像處理、模式識別等領(lǐng)域有著廣泛應(yīng)用。

  在實(shí)時(shí)性要求較高的應(yīng)用場合,相比于DSP芯片或?qū)S眯酒?,采用可編程芯?a class="contentlabel" href="http://butianyuan.cn/news/listbylabel/label/FPGA">FPGA實(shí)現(xiàn)FIR數(shù)字濾波器具有高速、高精度、高靈活性的優(yōu)點(diǎn)。數(shù)字濾波器的設(shè)計(jì)方法有多種,常用的有窗函數(shù)法、頻率抽樣法和最佳一致逼近法,但這些設(shè)計(jì)方法在設(shè)計(jì)濾波器尤其是高階濾波器時(shí)工作量較大。而利用信號處理工具箱進(jìn)行數(shù)字濾波器的設(shè)計(jì),能夠減少工作量,提高設(shè)計(jì)效率。文中首先使用Matlab設(shè)計(jì)濾波器系數(shù),然后利用實(shí)現(xiàn)系統(tǒng)。

  在中,進(jìn)行傳統(tǒng)乘法運(yùn)算占用大量的硬件資源,分布式算法利用ROM查找表將固定系數(shù)的乘累加運(yùn)算轉(zhuǎn)換成查表操作,避免了乘法運(yùn)算,查表后的數(shù)據(jù)執(zhí)行的都是簡單的加法運(yùn)算,可以較大程度地提高運(yùn)算速度。分布式算法分為全串行分布式算法和全并行分布式算法,全串行分布式算法資源消耗少但運(yùn)算速度慢,全并行分布式算法資源消耗少但運(yùn)算速度快。兼顧運(yùn)算速度與資源消耗,本文采用改進(jìn)并行分布式算法進(jìn)行FIR數(shù)字濾波器設(shè)計(jì)。

  1 FIR數(shù)字濾波器基本理論

  對于FIR數(shù)字濾波器系統(tǒng),其沖激響應(yīng)是有限長的,系統(tǒng)函數(shù)可記為

  

 

  式中,x(n)是采樣輸入序列;h(i)是濾波器系數(shù);N是濾波器抽頭數(shù);y(n)是濾波器輸出序列。

  2 分布式算法

  分布式算法(Distributed Arithmetic,DA)是一項(xiàng)重要的FPGA技術(shù),廣泛地應(yīng)用在卷積、相關(guān)、DFF計(jì)算和RNS反演映射等乘積和中。有關(guān)DA算法的討論可以追溯到1973年Croisier發(fā)表的論文,而DA算法的推廣工作則由Peled和Liu完成。雖然DA算法較早被提出,但是一直到可編程門陣列的查找表結(jié)構(gòu)出現(xiàn),這種算法才重新受到重視,成為一種重要的FIR數(shù)字濾波器設(shè)計(jì)方法。

  DA算法是一種以實(shí)現(xiàn)乘加運(yùn)算為目的的運(yùn)算方法,其與傳統(tǒng)實(shí)現(xiàn)乘加運(yùn)算算法的不同之處在于執(zhí)行部分積運(yùn)算的先后順序不同。DA算法在完成乘加功能時(shí)是通過將各輸入數(shù)據(jù)每一位產(chǎn)生的部分積預(yù)先進(jìn)行相加形成相應(yīng)部分積,然后再對相應(yīng)部分積進(jìn)行加權(quán)累加形成最終結(jié)果;而傳統(tǒng)算法是等到所有乘積產(chǎn)生之后再進(jìn)行相加來完成乘加運(yùn)算。與傳統(tǒng)算法相比,DA算法可以大幅減少硬件電路規(guī)模,易實(shí)現(xiàn)流水線處理,提高了電路的執(zhí)行速度。DA算法原理如下。

  對于有符號系統(tǒng),采用補(bǔ)碼實(shí)現(xiàn),輸入序列x(n)表示為

  

 

  式中,y(n)是輸出序列;x(n)是輸入序列;h(i)是濾波器系數(shù);B是x(n)二進(jìn)制補(bǔ)碼的位數(shù);xb(n)是x(n)的第6位,N是濾波器抽頭數(shù)。

  本文采用改進(jìn)并行DA算法進(jìn)行FIR數(shù)字濾波器設(shè)計(jì),通過引入倍頻模塊減少LUT的個(gè)數(shù)來節(jié)省資源消耗,同時(shí)保證運(yùn)算速度。該算法僅使用一個(gè)LUT并結(jié)合流水線寄存器的使用來提高系統(tǒng)運(yùn)算速度。算法原理是讓輸入數(shù)據(jù)每一個(gè)相同位同時(shí)尋址,將尋址內(nèi)容進(jìn)行相應(yīng)的移位累加操作得到最終輸出,算法如圖1所示。

  

 

  3 濾波器系數(shù)設(shè)計(jì)與量化

  文中濾波器系數(shù)通過Matlab工具箱中的FDATool進(jìn)行設(shè)計(jì),濾波器設(shè)計(jì)指標(biāo)如下。濾波器類型:低通;設(shè)計(jì)方法:FIR Kaiser窗,Beta= 0.5;階數(shù):15階;采樣頻率:10 MHz;截止頻率:1.5 MHz;輸入數(shù)據(jù)寬度:12位;濾波器系數(shù)寬度:12位。

  由于FPGA只能進(jìn)行定點(diǎn)數(shù)運(yùn)算,需要將浮點(diǎn)濾波器系數(shù)量化為定點(diǎn)數(shù)。將h(n)擴(kuò)大210倍,然后表示為12位二進(jìn)制補(bǔ)碼。濾波器系數(shù)與量化補(bǔ)碼如表1所示。

  

 

  4 FPGA實(shí)現(xiàn)

  用FPGA設(shè)計(jì)FIR數(shù)字濾波器時(shí),利用濾波器系數(shù)的對稱性,將16抽頭設(shè)計(jì)轉(zhuǎn)化為8抽頭設(shè)計(jì)。首先將輸入數(shù)據(jù)存入移位寄存器中,通過延時(shí)進(jìn)行預(yù)相加,然后以預(yù)相加結(jié)果數(shù)據(jù)的相同位的值為地址進(jìn)行查表操作。根據(jù)分布式算法公式,依次進(jìn)行移位累加操作,但對數(shù)據(jù)最高位進(jìn)行移位相減操作才能得到正確的濾波輸出。整個(gè)系統(tǒng)由時(shí)鐘控制模塊,數(shù)據(jù)輸入模塊,查找表模塊,移位累加模塊以及截位模塊組成。

  4.1 時(shí)鐘控制模塊

  采用的FPGA芯片是Altera公司的CycloneII系列EP2C5T144C6,其時(shí)鐘晶振是50 MHz。為提高系統(tǒng)運(yùn)算速度,由于輸入數(shù)據(jù)是12位,數(shù)據(jù)輸入模塊一次輸出8位地址,因此需要設(shè)計(jì)一個(gè)采樣信號12倍頻模塊,即得到120 MHz信號。時(shí)鐘控制模塊主要包括采樣信號12倍頻模塊和采樣信號模塊。其中,采樣信號倍頻模塊利用QuartusII中PLL實(shí)現(xiàn),采樣信號模塊利用倍頻模塊通過硬件描述語言Verilog HDL編程分頻實(shí)現(xiàn)。

  4.2 數(shù)據(jù)輸入模塊

  該模塊的功能是將輸入數(shù)據(jù)轉(zhuǎn)化為8位查找表的地址,包括移位寄存、預(yù)相加和并串轉(zhuǎn)換。首先將數(shù)據(jù)存入移位寄存器中,通過延時(shí)進(jìn)行預(yù)相加,最后對預(yù)相加結(jié)果進(jìn)行并串轉(zhuǎn)換。

  4.3 查找表模塊

  查找表模塊可以利用QuartusII中的lpm_rom實(shí)現(xiàn),但需要手工計(jì)算每個(gè)地址對應(yīng)的數(shù)據(jù)輸出,由于輸入8位地址數(shù)據(jù),使用lpm_rom實(shí)現(xiàn)查找表的計(jì)算量過大,所以該模塊通過硬件描述語言Verilog HDL編程實(shí)現(xiàn)。模塊還可繼續(xù)拆分為4輸入或2輸入查找表。

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


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


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


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


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


晶振相關(guān)文章:晶振原理
數(shù)字濾波器相關(guān)文章:數(shù)字濾波器原理

上一頁 1 2 下一頁

關(guān)鍵詞: FPGA 低通濾波器 Matlab

評論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉