《電子技術應用》
您所在的位置:首頁 > 可編程邏輯 > 設計應用 > FIR數字濾波器設計及其FPGA實現
FIR數字濾波器設計及其FPGA實現
來源:微型機與應用2013年第19期
郝小江,黃 昆
(攀枝花學院 電氣信息工程學院,四川 攀枝花 617000)
摘要: 以FPGA為硬件平臺,利用FPGA的DSP開發工具DSP Builder對數字濾波器進行建模設計及系統模型仿真,生成VHDL工程文件,編制相應頂層文件,使其符合濾波器硬件系統。利用QuartusⅡ對項目進行綜合、編譯和調試,生成原理圖模塊和RTL電路圖。通過對5 kHz方波信號進行仿真濾波,并將VHDL下載到硬件系統中進行硬件實現,有效地提取到5 kHz的正弦信號。實驗結果表明,該設計很好地達到了FIR濾波器的性能,為數字濾波器的設計與實現提供了新的途徑和方法。
Abstract:
Key words :

摘  要:FPGA為硬件平臺,利用FPGA的DSP開發工具DSP Builder對數字濾波器進行建模設計及系統模型仿真,生成VHDL工程文件,編制相應頂層文件,使其符合濾波器硬件系統。利用QuartusⅡ對項目進行綜合、編譯和調試,生成原理圖模塊和RTL電路圖。通過對5 kHz方波信號進行仿真濾波,并將VHDL下載到硬件系統中進行硬件實現,有效地提取到5 kHz的正弦信號。實驗結果表明,該設計很好地達到了FIR濾波器的性能,為數字濾波器的設計與實現提供了新的途徑和方法。
關鍵詞: FIR數字濾波器;FPGA;DSP Builder;VHDL代碼

 數字濾波技術是數字信號處理技術的重要分支。無論是信號的處理交換,還是信號的獲取、傳輸,都離不開濾波技術。數字濾波的實驗實現方法有在通用計算機上用軟件實現、采用DSP實現、采用FPGA實現。快速發展的EDA技術和大規模可編程器件,使得采用FPGA實現數字濾波器可以克服傳統DSP技術中的技術瓶頸,在高可靠性、高速與實時性、系統的重配置與硬件可重構性、單片系統的可實現性及自主知識產權化等許多方面具有突出的優勢。
 本設計采用FPGA設計工具DSP Builder實現FIR數字濾波器的設計方案,按照MATLAB/Simulink/DSP Builder/Quartus II的設計流程,設計一個32階的抽樣頻率為400 kHz,截止頻率為10 kHz的FIR低通濾波器。在硬件實現上應用A/D轉換芯片AD9224采樣輸入信號后送給FPGA芯片EP1C6Q240C8處理,處理后的信號經D/A轉換芯片AD9764轉換為模擬信號輸出。軟件仿真與硬件實驗結果表明,該設計基于FPGA的FIR數字濾波器濾波效果良好,可有效提取需要的信號。
1 FIR濾波器建模設計分析
 FPGA器件由大量邏輯宏單元構成,通過配置,使這些邏輯單元形成不同的硬件結構,從而構成不同的電子系統,完成不同的功能。正是FPGA的這種硬件重構的靈活性,使得用硬件描述語言(VHDL或Verilog HDL)描述的電路在FPGA中實現。而DSP Builder可以完成基于FPGA的DSP系統設計的整個過程,它是連接MATLAB/Simulink和QuartusII開發軟件的DSP技術,在Simulink中進行圖形設計和仿真,同時又通過Signal Compiler把MATLAB/Simulink的設計文件(.mdl)轉換成相應的硬件描述語言VHDL設計文件(.vhd),以及用于控制綜合與編譯的TCL腳本,然后可以用FPGA開發工具Quartus II實現綜合、布線、RTL級仿真以及生成目標板下載文件,在靈活的硬件實驗平臺上實現。
FIR濾波器的數學表達式為:
 
 FIR的濾波過程就是一個信號逐級延遲移位的過程,將各級的延遲輸出加權累加,即得到FIR濾波器的輸出,其中最主要的算法是乘累加運算。根據FIR濾波器的數學表達式,用Altera DSP Builder建立圖1所示的FIR濾波器圖形仿真模型,主要由總線模塊、采樣率降低模塊(Down Sampling)、移位寄存器模塊(Shift Taps)、乘累加模塊(MultAdd32)、總線類型轉換模塊(Bus Conversion)以及方波信號產生模塊(Pulse Generator)和觀測仿真結果的示波器組成。其中乘累加模塊采用層次化設計,由前一級的移位寄存器提供數據輸入,經過多級累加求和得到FIR濾波器的輸出結果,其內部子模塊采用8個Multiply Add構成,每個Multiply Add模塊具體設置為:Number of Multipilers:4、Bus Type:Signed Integer、Inputs[number of bits].[]:12、No Register、Constant Values為濾波器設計系數,并將輸出用Paraller Adder相加在一起。由于在后續硬件實現上A/D采用12 bit、D/A采用14 bit,因此輸入信號FIRIN為12 bit整型、輸出信號FIROUT為14 bit整型。

 濾波器的設計指標為:32階低通濾波器,采樣率為400 kHz,截止頻率為10 kHz。采用MATLAB中FDATool工具,使用Hamming窗,計算出濾波器系數。在MATLAB命令行中輸入:round(Num1×212),得到FIR濾波器的整形系數h[32]={4 6 10 16 25 37 52 70 90 112 134 155 173 188 199 204 204 199 188 173 155 134 112 90 70 52 37 25 16 10 6 4}。
 濾波器建模設計完成后,輸入5 kHz的方波信號,從中提取5 kHz的正弦波信號,其仿真波形如圖2所示。從仿真波形可以看出,經過FIR濾波后,很好地達到濾波效果。

 在FIR模型中用Signal Compiler模塊Analyze模型,然后選定Cyclone系列FPGA,使用QuartusII綜合工具,優化規則,并產生VHDL程序。
2 FIR濾波器硬件實現系統
 FIR數字濾波器FPGA實現的硬件系統如圖3所示,該系統由A/D轉換模塊、FPGA模塊、D/A轉換模塊和電源模塊4部分組成。

 FPGA模塊采用Altera公司Cyclone系列FPGA芯片EP1C6Q240C8。
 A/D轉換模塊的主要功能是對模擬信號進行數字化,然后送入FPGA中進行數字信號處理。A/D轉換芯片使用ADI公司單芯片、12 bit、40 MS/s模數轉換器AD9224。AD9224采用單電源供電,內置一個片內高性能采樣保持放大器和基準電壓源。它采用多級差分流水線架構,內置輸出糾錯邏輯,在40 MS/s數據速率時可提供12 bit精度,并保證在整個工作溫度范圍內無失碼。
D/A轉換模塊的主要功能是將FPGA處理后輸出的數字信號轉換為模擬量,然后經信號調理輸出。A/D轉換芯片選用ADI公司的AD9764。AD9764屬于TxDAC系列高性能、低功耗CMOS數模轉換器(DAC)的14 bit分辨率。
 在硬件實現過程中,由于要使用A/D轉換時鐘信號AD_CLK和D/A轉換時鐘信號DA_CLK,需要設計頂層文件,以便調用前述所設計的FIR濾波器。
 頂層主要源程序如下:
entity FIR is
    port(
        AD_IN:in STD_LOGIC_VECTOR(11 downto 0);
        DA_OUT:out STD_LOGIC_VECTOR(13 downto 0);
        CLK_IN:in STD_LOGIC;
        AD_CLK:out STD_LOGIC;
        DA_CLK:out STD_LOGIC);
end entity;
architecture rtl of FIR is
component FIRSimulink    
    port(
        FIRIN:in STD_LOGIC_VECTOR(11 downto 0);
        Input:in STD_LOGIC;
        FIROUT:out STD_LOGIC_VECTOR(13 downto 0);
        FIRaclr:in STD_LOGIC;
        FIRClock:in STD_LOGIC);
end component;
……
FIRSimulink_instance:
        component FIRSimulink
            port map(
                FIRIN=>ad_d2,
                input=>clk_div,
                FIROUT=>da_d2,
                FIRaclr=>FIR_aclr,
                FIRClock=>CLK_IN);
……
    頂層實體原理圖如圖4所示,輸入時鐘CLK_IN由外部40 MHz晶振提供。A/D轉換后的數字量由AD_IN[11..0]輸入,輸出數字量由DA_OUT[13..0]輸出給D/A轉換器。CLK_IN 100分頻后由AD_CLK、DA_CLK送給A/D、D/A芯片。

    對整個項目進行綜合、編譯和調試后,生成的RTL級電路圖如圖5所示。

3 硬件測試實現
    濾波器硬件測試系統中,函數信號發生器產生的5 kHz方波信號一路直接輸入數字示波器CH2通道,另一路輸入給A/D轉換模塊,經FPGA濾波后送給D/A轉換模塊輸出給示波器的CH1通道。通過JTAG接口配置FPGA,測試結果如圖6所示。由圖6可以看出,輸入5 kHz方波信號,經過濾波后得到輸出為5 kHz的正弦波信號。測試結果與MATLAB/Simulink/DSP Builder模型仿真結果相同,證明該濾波器設計正確,濾波效果很好。
 本文主要研究了FIR數字濾波器的設計,包括建模算法仿真以及最后的硬件實現。
 設計結果表明,在利用FPGA進行數字濾波器設計時,利用DSP Builder可以簡化計算與設計難度,加快設計速度,靈活選擇精度,實現優化設計。將DSP Builder與Quartus II軟件有機融合,整個開發流程一氣呵成,真正實現了自頂向下的設計流程,充分顯示了現代EDA(電子設計自動化)開發的特點與優勢。設計不同性能的濾波器電路,只需修改濾波器模型文件即可實現,不僅避免了繁瑣的VHDL語言編程,而且易于修改、測試及硬件升級,成本相對較低,具有一定的工程設計參考價值。
參考文獻
[1] 程佩青.數字信號處理教程(第3版)[M].北京:清華大學出版社,2007.
[2] 席在芳,周少武,歐青立,等.基于Simulink的FIR數字濾波器設計實驗教學探索與實踐[J].實驗技術與管理,2010(5):80-82.
[3] 潘松,黃繼業.SOPC技術實用教程[M].北京:清華大學出版社,2005.
[4] 潘松,黃繼業,王國棟.現代技術DSP技術[M].西安:西安電子科技大學出版社,2003.
[5] 郭海麗,王紫婷.基于Matlab/Simulink的FIR數字濾波器的設計與實現[J].電氣應用,2008(1):73-75.
[6] 徐年,張劍英.基于FPGA的FIR數字濾波器的實現[J].煤炭工程,2007(4):118-120.
[7] 張海軍.基于FPGA的16階FIR濾波器的設計與實現[J].安徽大學學報(自然科學版),2009(1):62-65.
[8] 趙文兵,楊建寧.FIR濾波器的FPGA實現及其仿真研究[J].微計算機信息,2005(6Z):108-109.
[9] 雷能芳.基于分布式算法有限脈沖響應(FIR)濾波器的FPGA設計[J].科學技術與工程,2010(11):2743-2746.
[10] 郝小江,繆志農,張小平.基于FPGA的FIR濾波器設計與實現[J].儀表技術,2010(1):44-46.
[11] 蔣立平,譚雪琴.一種基于FPGA的高效FIR濾波器的設計與實現[J].南京理工大學學報,2007,31(1):125-128.

此內容為AET網站原創,未經授權禁止轉載。
主站蜘蛛池模板: 99视频在线免费观看 | 男人综合网 | 四虎影院2019 | 97中文字幕在线 | 激情五色月 | 欧美老女人逼 | 国产羞羞 | 色综合久久精品中文字幕首页 | 国内视频在线观看 | 国产精品视频视频久久 | 日韩写真集福利视频 | 色奇吧亚洲国产成人精品 | 九九久久亚洲综合久久久 | 久久国产区 | 福利小视频在线播放 | 国产免费高清在线精品一区 | 精品福利在线视频 | 日本不卡一区二区三区 最新 | 成人综合婷婷国产精品久久免费 | 国产一级影院 | 欧美欧洲性色老头老妇 | 欧美性视频网 | 色视频在线观看网站 | 欧美天天在线 | 久久精品天天爽夜夜爽 | 国产毛片网站 | 99久久国产综合精品网成人影院 | 99久久99久久久99精品齐 | 春色视频www免费视频观看 | 四虎国产精品免费五月天 | 色爱区综合激月婷婷激情五月 | 欧美com| 97av在线| 久久精品二区 | 欧美性活生活视频 | 激情六月网 | 欧美老女人视频 | 免费一级毛片在线播放 | 久久久久久久久久免免费精品 | 中国大陆一级毛片 免费 | 久久久全国免费视频 |