FPGA實現32階FIR數字濾波器的硬體電路方案

2021-01-10 電子產品世界

 隨著軟體無線電的發展,對於濾波器的處理速度要求越來越高。傳統的FIR濾波器一般採用通用DSP處理器,但是DSP處理器採用的是串行運算,而FPGA是現場可編程陣列,可以實現專用集成電路,另外還可以採用純並行結構及考慮流水線結構,因此在處理速度上可以明顯高於DSP處理器。本文採用並行分布式算法在FPGA上設計並實現了高速處理的32階FIR低通濾波器,在此過程中利用Matlab的數值計算與分析功能來提高設計效率。

  在數位訊號處理中,數字濾波器的應用是極其廣泛和重要的單元。與模擬濾波器相比,數字濾波器可以克服模擬濾波器所無法克服的電壓漂移,溫度漂移以及噪聲等問題。數字濾波器根據衝擊響應函數的特性,可以分為IIR濾波器和FIR濾波器兩種。由於FIR濾波器只有零點、系統穩定等諸多優點。

  1 FlR低通濾波器的窗函數實現

  理想的濾波器頻率響應中傅立葉反變換ha(n)一定是無限長的序列,而且是非因果的,而實際要設計的濾波器h(n)是有限長的,因此要用有限長來逼近無限長的,其方法就是用一個有限長度的窗口函數序列ω(n)來截取,即:

  

  常見的窗函數有矩形窗、巴特利特窗、漢寧窗、哈明窗、布萊克曼窗、凱澤窗。其中,凱澤窗提供了可變的過渡帶寬。本文採用凱澤窗對FIR濾波器進行設計,其窗函數表達式為:

  

  I0[·]為第一類變形零階貝賽爾函數,形狀參數β為依賴於濾波器階數M的參數,用來調整主瓣寬度與旁瓣衰減,選擇M可產生各種過渡帶寬和接近最優的阻帶衰減。給定通帶截止頻率ωp,阻帶起始頻率ωs,阻帶衰減As,凱澤窗設計中有經典公式可供使用,如下:

  

  過渡帶寬:

  濾波器階數:

  形狀參數:

  

  假設低通數字濾波器設計指標如下:

  

  採用上面介紹的凱澤窗,利用Matlab編程計算得到32階FIR低通濾波器參數如下:

  

  32階FIR低通濾波器幅頻特性圖如圖1所示。

  

  上述求得的係數是浮點型的,而在FPGA設計中使用的數據是定點型的,所以在設計濾波器之前要將係數轉化為定點型,即係數的量化。為了兼顧精度和所佔用的資源,本文的係數用12位二進位來量化,得到的整數係數結果如下:

  

  2 並行分布式算法原理及FPGA設計

  32階FIR濾波器的差分方程表達式為:

  

  式中:x(n)為輸入;y(n)為輸出;h(n)為濾波器係數。

  設x(n)用二進位可表示為:

  

  其中,最高位為符號位。則式(7)可寫為:

  

  式(10)為並行分布式算法,由上可以看出並行分布式算法是將濾波器表達式重新排列,分別加權求和。與傳統算法最大的不同之處是在FPGA設計過程中以查找表代替乘法器,即根據輸入數據的不同,將對應的濾波器係數預先求和保存在ROM中,也就是將每一項的乘法求和通過並行結構查表尋值完成,提高運行速度。

  具體FPGA實現時,首先將12位的輸人數據並行輸入到12列32位移位寄存器分別寄存,然後以寄存器中的值為地址,對應於查找表的結果,按照式(10),每列進行相應二次冪加權,最後各列累加,在第32個數據完全輸入之後得到正確的濾波器輸出。可以將32位的查找表劃分為四個8位的查找表,從而降低對ROM的需求。

  在本設計中可採用多級流水線技術,也就是將在明顯制約系統速度的長路徑上插入幾級寄存器,雖然流水線會影響器件資源的使用量,但它降低了寄存器間的傳播時延,允許維持高的系統時鐘速率。

  3 FPGA仿真與驗證

  FPGA(Field-Programmable Gate Array),即現場可編程門陣列,它是在PAL、GAL、CPLD等可編程器件的基礎上進一步發展的產物。它是作為專用集成電路(ASIC)領域中的一種半定製電路而出現的,既解決了定製電路的不足,又克服了原有可編程器件門電路數有限的缺點。

  FPGA採用了邏輯單元陣列LCA(Logic Cell Array)這樣一個概念,內部包括可配置邏輯模塊CLB(Configurable Logic Block)、輸出輸入模塊IOB(Input Output Block)和內部連線(Interconnect)三個部分。 現場可編程門陣列(FPGA)是可編程器件。與傳統邏輯電路和門陣列(如PAL,GAL及CPLD器件)相比,FPGA具有不同的結構,FPGA利用小型查找表(16×1RAM)來實現組合邏輯,每個查找表連接到一個D觸發器的輸入端,觸發器再來驅動其他邏輯電路或驅動I/O,由此構成了即可實現組合邏輯功能又可實現時序邏輯功能的基本邏輯單元模塊,這些模塊間利用金屬連線互相連接或連接到I/O模塊。

  由於直接將大量數據進行硬體仿真驗證很不方便,因此利用Matlab產生一個採樣頻率為100 MHz,頻率分別為1 MHz與30 MHz的兩個正弦信號相加後,作為輸入信號。vec文件,導入到QuartusⅡ中進行仿真,時序功能仿真結果如圖2所示。

  其中,clk為時鐘信號,x_in為濾波器輸入信號,y為濾波器輸出信號。圖2並不能很直觀地看出並行分布式算法產生的濾波效果,可以將QuartusⅡ中。vwf文件轉化為。tbl文件,在Matlab中按照一定形式編程可以得到時域及頻域波形圖,如圖3,圖4所示。

  

  圖3,圖4中,軟體仿真是直接在Matlab中用輸入信號與濾波係數卷積得到的,在時域波形中軟體仿真輸出信號與理想信號相比有一定時間延遲,而QuartusⅡ仿真與軟體仿真結果中幅度的差別是由於硬體輸入量化產生的。

  從時域或者頻域波形圖可以看出,頻率為30 MHz的信號被濾除掉,只有頻率為1 MHz的信號通過濾波器,達到了濾波的目的。

  

  

  4 結 語

  本設計選用Stratix系列晶片,最大處理速度可以達到200 MHz以上。本文沒有考慮線性相位的濾波器對稱性,在考慮線性相位的基礎之上結合一些其他算法可以降低器件數量和進一步提高處理速度。由於FPGA器件的可編程特性,在本設計中可以修改濾波器參數,得到高速處理的高通或者帶通數字濾波器,具有一定實用價值。另外,本文利用QuartusⅡ與Matlab聯合仿真,極大地提高了FPGA的設計效率。

低通濾波器相關文章:低通濾波器原理

電源濾波器相關文章:電源濾波器原理

高通濾波器相關文章:高通濾波器原理 數字濾波器相關文章:數字濾波器原理

相關焦點

  • 基於FPGA+MATLAB的串行多階FIR濾波器設計
    為說明使用FPGA實現FIR的靈活性,文中列舉了一個多階串行FIR濾波器實例,並給出主要的原始碼和相關模塊的時序和功能說明,最後使用Matlab和Quartusii聯合仿真驗證了FPGA硬濾波器工程的正確性。
  • 一種改進型的FIR數字濾波器設計
    1 fir數字濾波器設計的基本步驟 數字濾波器根據其衝激響應函數的時域特性,可分為2種,即無限長衝激響應(iir)濾波器和有限長衝激響應(fir)濾波器。fir系統不像iir系統那樣易取得較好的通帶和阻帶衰減特性,要取得較好的衰減特性,一般要求h(z)階次要高,也即m要大。
  • 什麼是fir數字濾波器 什麼叫FIR濾波器
    在實際中,所有的DSP濾波器必須用有限精度(有限bit數目)實現,而在IIR濾波器中使用有限精度會產生很大的問題,由於採用的是反饋電路,因此IIR通常用非常少的bit實現,設計者就能解決更少的與非理想算術有關的問題。* 可以用小數實現. 不像IIR濾波器,FIR濾波器通常可能用小於1的係數來實現。(如果需要,FIR濾波器的總的增益可以在輸出調整)。
  • 基於FPGA高階FIR濾波器的實現
    摘要:從FIR數字濾波器的基本結構模型出發,分析了FIR濾波器的設計思路及具體實現方法,詳細介紹了FIR濾波器的分布式算法(DA)結構。通過分析計算,得到普通DA結構實現高階濾波器會消耗大量的查找表資源,這樣的資源消耗甚至令硬體資源不可接受。
  • 基於FPGA的實時中值濾波器硬體實現
    在許多實際應用場合,如高清視頻監控、X光圖像的降噪等,需要快速且實時地進行中值濾波,軟體實現達不到實時處理的要求,因此選用硬體實現。 在硬體實現上,文獻[1]、[2]等採用行延遲的方法形成鄰域數據,以實現3×3的中值濾波。文獻[7]為了提高紅外成像跟蹤器設計了大窗口的中值濾波器。
  • FIR濾波器設計方案
    FIR濾波器設計方案 電子設計 發表於 2018-10-02 14:09:07 1.引言 在信息信號處理過程中,如對信號的過濾、檢測、預測等,都要使用濾波器,數字濾波器是數位訊號處理(DSP,DigitalSignalProcessing
  • 基於FPGA的巴特沃茲IIR數字帶通濾波器設計
    其中IIR數字濾波器和FIR數字濾波器是目前人們使用較多的兩種。數字濾波器通常採用計算機軟體、專用數字濾波器、DSP器件或可編程邏輯器件(如FPGA) 實現。因為,用FPGA實現數字濾波器具有實時性強、靈活性高、處理速度快以及小批量生產成本低等優點,所以得到了較為廣泛的應用。本文以巴特沃思數字帶通濾波器為例,較為詳細地介紹了其設計和實現方法。
  • 基於FPGA的高效FIR濾波器設計與實現
    該方法先通過MATLAB設計出一個具有具體指標的FIR濾波器, 再對濾波器係數進行處理, 使之便於在FPGA中實現, 然後採用基於分布式算法和CSD編碼的濾波器結構進行設計, 從而避免了乘法運算, 節約了硬體資源,其流水線的設計方式也提高了運行速度。Matlab和Modelsim仿真表明, 該設計功能正確, 能實現快速濾波。
  • 基於FPGA和IP核的FIR低通濾波器的設計與實現
    (Finite Impulse Response,有限衝擊響應)數字濾波器具有穩定性高、可以實現線性相位等優點,廣泛被應用於信號檢測與處理等領域。由於FPGA(Field Programmable Gate Array,現場可編程門陣列)基於查找表的結構和全硬體並行執行的特性,如何用FPGA 來實現高速FIR 數字濾波器成了近年來數位訊號處理領域研究的熱點。目前,全球兩大PLD 器件供應商都提供了加速FPGA 開發的IP(IntelligentProperty,智慧財產權)核。
  • Matlab輔助DSP設計FIR數字濾波器
    數字濾波器由於其精度高、穩定性好、使用靈活等優點,廣泛應用在各種數位訊號處理領域。數字濾波器根據衝擊響應函數的時域特性,可以分為FIR(有限長衝擊響應濾波器)和IIR(無限長衝擊響應濾波器)。FIR濾波器與IIR濾波器相比,具有嚴格的線性相位,幅度特性可任意等優點。而且,FIR濾波器的單位抽樣響應是有限長的,故一定是穩定的,他又可以用快速傅立葉變換(FFT)算法來實現過濾信號,可大大提高運算效率。
  • 基於Matlab的FIR數字濾波器設計方案
    本文先介紹FIR數字濾波器的相關概念,並利用MATLAB中的FDA TOOL工具箱和Simulink工具進行FIR帶通數字濾波器的設計,給出了基於Matlab的FIR數字濾波器設計方案。
  • IIR數字濾波器的Matlab和FPGA實現
    摘要:提出一種通過兩個二階節級聯構成四階IIR數字橢圓濾波器的設計方法,並利用Matlab仿真軟體設計了通帶內波紋不大於0.1 dB,阻帶衰減不小於42 dB的IIR數字濾波器。論述了一種採用可編程邏輯器件,通過VHDL硬體描述語言實現該濾波器的方法。
  • 使用FPGA實現可編程數字濾波器系統的論文說明
    本系統基於開關電容濾波器原理,以單片機和FPGA為控制核心製作程控濾波器。系統前級放大器由固定增益放大電路和程控D/A衰減器組成,採用集成開關電容可編程濾波器晶片max262作為主體濾波器,利用歸一化思想設計四階無源橢圓型低通濾波器,以DDS技術產生掃頻信號製作幅頻特性測試儀。
  • 採用FPGA實現多種類型的數位訊號處理濾波器
    另外,採用FPGA 設計的數字濾波器可以避免模擬設計中存在的某些問題,特別是組件漂移和容差(在高可靠應用中,由溫度過高、老化和輻射問題造成)。這些模擬問題會顯著降低濾波器的性能,特別是在通帶紋波等方面。本文引用地址:http://www.eepw.com.cn/article/189564.htm當然, 數字模型也有自身的缺陷。
  • 一階低通濾波器_一階低通濾波器公式_一階低通濾波器原理
    打開APP 一階低通濾波器_一階低通濾波器公式_一階低通濾波器原理 發表於 2017-08-16 17:28:42   濾波電路又稱為濾波器
  • 基於DSP和FPGA的機器人聲控系統設計與實現
    本文引用地址:http://www.eepw.com.cn/article/21345.htm 本次設計採用了性價比較高的數位訊號處理晶片tms320vc5509作為語音識別處理器,具有較快的處理速度,使機器人在脫機狀態下,獨立完成複雜的語音信號處理和動作指令控制,fpga系統的開發降低了時序控制電路和邏輯電路在pcb板所佔的面積[1],使機器人的"大腦"的語音處理部分微型化、低功耗。
  • FIR濾波器原理
    Ⅰ、數字濾波器還具有模擬濾波器不能比擬的可靠性。組成模擬濾波器的電子元件的電路特性會隨著時間、溫度、電壓的變化而漂移,而數字電路就沒有這種問題。只要在數字電路的工作環境下,數字濾波器就能夠穩定可靠的工作。
  • 不同階數的FIR數字濾波器的DSP設計實現
    但實踐證明,應用最大誤差最小化準則 的等波紋迫近法是更為實用的方法,應用他設計時,階數、通帶和阻帶的邊緣以及誤差的加 權函數都可以自由選擇,十分靈活,設計得到的濾波器,其誤差在整個頻率範圍內均勻分布 ,因而可以以最低的階數迫近提出的指標要求。  設待設計濾波器的幅頻特性為HdA(ω),實際得到的濾波器的幅頻特性為HA(ω),目的是使HA(ω)最好地迫近HdA(ω)。
  • 關於基於FPGA平臺的手持式頻譜分析儀的實現原理
    為了提高頻譜解析度,需要通頻帶很窄的濾波器,並且由於模擬濾波器中心頻率會隨時間、環境溫度「漂移」,因此製造高穩定度、高精度的的這種頻譜分析儀比較困難。隨著FFT的提出,利用數字方法進行頻譜分析成為可能,這解決了很多傳統頻譜分析儀存在的問題,如「溫漂」等。實現FFT算法有利用軟體或利用純硬體等不同方法,利用軟體的方法可以在PC機或在DSP晶片上實現,其頻譜分析主要是依靠軟體計算來實現。
  • 數字低通濾波器的設計
    本文要設計一個諧波檢測電路中的低通濾波器,對於三相電路而言,其交流側主要是5次和7次諧波,因此本文設計的低通濾波器的指標為:模擬信號採樣頻率Fs=2000Hz,通帶截止頻率Fpass=100Hz,阻帶截止頻率Fstop=200Hz,通帶波動不大於0.1dB,阻帶衰減不小於32dB。