基于XC2V1000型FPGA的FIR抽取濾波器的設計
1 引言
本文引用地址:http://www.czjhyjcfj.com/article/267749.htm抽取濾波器廣泛應用在數字接收領域,是數字下變頻器的核心部分。目前,抽取濾波器的實現方法有3種:單片通用數字濾波器集成電路、DSP和可編程邏輯器件。使用單片通用數字濾波器很方便,但字長和階數的規格較少,不能完全滿足實際需要。使用DSP雖然簡單,但程序要順序執行,執行速度必然慢?,F場可編程門陣列(FPGA)有著規整的內部邏輯陣列和豐富的連線資源,特別適用于數字信號處理,但長期以來,用FPGA實現抽取濾波器比較復雜,其原因主要是FPGA中缺乏實現乘法運算的有效結構。現在,FPGA集成了乘法器,使FPGA在數字信號處理方面有了長足的進步。本文介紹用Xilinx公司的XC2V1000型FPGA實現FIR抽取濾波器的設計方法。
2 XC2V1000簡介
Virtex-Ⅱ系列是Xilinx公司近幾年研發的具有高性能、高速度和低功耗特點的新一代FPGA,一經問世就備受界內人士的青睞。該系列FPGA基于IP核和專用模塊設計,能夠為電信、無線電、網絡、視頻和數字信號處理領域的應用提供完整的解決方案。XC2V1000是Virtex-Ⅱ家族的一員,具有如下主要特點:
●100萬個系統門;
●40×32個可配置邏輯單元(5120個slice);
●40個18×18 bits乘法器,1個工作時鐘內即可完成乘法運算;
●720Kbits RAM,可靈活配置(單口、雙口、有使能或無使能等);
●8個DCM(Digital Clock Manager)模塊;
●328個用戶I/O。
此外,Xilinx公司還提供了功能強大的開發平臺(ISE),開發者可通過該平臺完成全部設計。
3 抽取濾波器的工作原理
抽取濾波器的工作原理是在濾波過程中實現抽取。對于抽取率為N的抽取濾波器而言,不是每進入1個新數據就完成1次濾波運算,然后再抽取,而是當進來N個數據時濾波器才完成1次濾波運算,輸出1次濾波結果。抽取濾波器的結果和先濾波后抽取的結果是一致的,只是對于同樣的數據,進行濾波運算的次數大大減少。在數字系統中采用抽取濾波器的最大優點是增加了每次濾波的可處理時間,從而達到實現高速輸入數據的目的。下面以抽取率為2的具有線性相位的3階FIR抽取濾波器為例介紹抽取濾波器的實現過程。

線性相位的FIR濾波器的系數具有某種對稱的性質[1],3階Ⅱ類FIR線性相位濾波器在數學上可以表示為

其中,h(0)=h(3),h(1)=h(2)。其結構如圖1所示。由圖1可見,具有4個系數的3階Ⅱ類FIR線性相位濾波器只需2次加法、2次乘法和2次累加就可以完成1次濾波運算。如果IPGA工作時鐘為80MHz,輸入x(n)的數據率也為80MHz,那么經2倍抽取后輸出y(n)為40MHz。也就是說,抽取濾波器每完成1次濾波運算,需要2個工作時鐘。如果加法器、乘法器和累加器在單個時鐘內就能完成1次功能運算,那么只需1個加法器、1個乘法器和1個累加器采用流水線操作在2個工作時鐘內就可以完成2次加法、2次乘法和2次累加運算,就可以完成一次抽取濾波。
4 具體實現
4.1 結構設計
基于上述抽取濾波器的工作原理,筆者用XC2V1000實現了這個抽取率為2、具有線性相位的3階FIR抽取濾波器,利用原理圖和VHDL硬件描述語言共同完成源文件設計。圖2是抽取濾波器的頂層原理圖。其中,clock是工作時鐘,reset是復位信號,enable是輸入數據有效信號,data_in(17:0)是輸入數據,data_out(17:0)是輸出數據,valid是輸出數據有效信號。addei18是加法器模塊,mult18是乘法器模塊,acc36是累加器模塊,signal_36-18是數據截位器模塊,fir_controller是控制器模塊。控制器定時向加法器、乘法器和累加器發送數據或控制信號,實現流水線操作。

濾波器相關文章:濾波器原理
fpga相關文章:fpga是什么
濾波器相關文章:濾波器原理
電源濾波器相關文章:電源濾波器原理
數字濾波器相關文章:數字濾波器原理
評論