FIR數(shù)字濾波器的設(shè)計(jì)與實(shí)現(xiàn)_第1頁
FIR數(shù)字濾波器的設(shè)計(jì)與實(shí)現(xiàn)_第2頁
FIR數(shù)字濾波器的設(shè)計(jì)與實(shí)現(xiàn)_第3頁
FIR數(shù)字濾波器的設(shè)計(jì)與實(shí)現(xiàn)_第4頁
FIR數(shù)字濾波器的設(shè)計(jì)與實(shí)現(xiàn)_第5頁
已閱讀5頁,還剩18頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

基于DSPBuilder的FIR數(shù)字濾波器的設(shè)計(jì)與實(shí)現(xiàn)一、緒論(一)數(shù)字濾波器的研究背景作為嵌入式系統(tǒng)的基礎(chǔ)元件之一,F(xiàn)PGA的面貌正日新月異:邏輯單元不斷增加、單位成本和功耗不斷降低,而根本的設(shè)計(jì)靈活性和快速轉(zhuǎn)換能力卻始終未變。在變與不變的共同推動下,FPGA的價值發(fā)生了變化,它已從純粹的建模工具發(fā)展成為適合中小批量生產(chǎn)的應(yīng)用器件,而其應(yīng)用也從早期的嵌入式通信系統(tǒng)擴(kuò)展到了低成本的消費(fèi)電子。FPGA之所以越來越多地在嵌入式系統(tǒng)中得到應(yīng)用,主要得益于它在低成本和低功耗兩方面均取得了很好的進(jìn)步,從而能夠滿足OEM日益緊迫的上市周期、不斷縮減的成本結(jié)構(gòu)和低功耗要求?!皟?nèi)外兩個因素正驅(qū)動著這種以價值為基礎(chǔ)的FPGA市場的高速發(fā)展。”Act公司中國區(qū)經(jīng)理夏明威如是說,“內(nèi)因是FPGA單位成本的急速下降。憑借半導(dǎo)體工藝技術(shù)的不斷進(jìn)步和制造效率的提高,FPGA已在很多對成本高度敏感的市場上與ASIC平分秋色?!笔袌龇治鰩煂删幊踢壿嬈骷袌龅念A(yù)測也驗(yàn)證了這一趨勢。首先據(jù)市場調(diào)研公司GartnerDataquest預(yù)測,2003到2008年,整體可編程邏輯市場的復(fù)合年均增長率達(dá)38%;其次,他們預(yù)測這一增長是由汽車和消費(fèi)電子應(yīng)用驅(qū)動的。他們還認(rèn)為,FPGA在消費(fèi)電子中的應(yīng)用將于2008年超過10億美元,即接近其2002年?duì)I收水平的10倍。增長的推動力主要來自全球數(shù)字和高解晰度廣播電視傳輸標(biāo)準(zhǔn)、游戲和多媒體娛樂系統(tǒng)、LCD和等離子顯示技術(shù)、以及家用DVR和DVD-W技術(shù)應(yīng)用的不斷上升;在汽車領(lǐng)域,F(xiàn)PGA將越來越多用于駕駛室內(nèi)娛樂系統(tǒng)和GPS導(dǎo)航系統(tǒng)、信息、通信和安全系統(tǒng)。以FPGA為核心的PLD產(chǎn)品是近幾年集成電路中發(fā)展得最快的產(chǎn)品。隨著FPGA性能的高速發(fā)展和設(shè)計(jì)人員自身能力的提高,FPGA將進(jìn)一步擴(kuò)大可編程芯片的領(lǐng)地,將復(fù)雜專用芯片擠向高端和超復(fù)雜應(yīng)用。目前FPGA的發(fā)展趨勢主要體現(xiàn)在以下幾個方面:1、向更高密度、更大容量的千萬門系統(tǒng)級方向邁進(jìn);2、向低成本、低電壓、微功耗、微封裝和綠色化發(fā)展;3、IP資源復(fù)用理念將得到普遍認(rèn)同并成為主要設(shè)計(jì)方式;4、MCU、DSP、MPU等嵌入式處理器IP將成為FPGA應(yīng)用的核心;5、隨著處理器以IP的形式嵌入到FPGA中,ASIC和FPGA之間的界限將越來越模糊,未來的某些電路版上可能只有這兩部分電路:6、模擬部分(包括電源和一塊FPGA芯片,最多還有一些大容量的存儲器)。分布式算法(distributedarithmetic,DA)最初是在1973年由Croisier提出的,由Peled和Liu進(jìn)行了推廣工作。但直到Xilinx發(fā)明FPGA的查找表以后,DA算法才在上世紀(jì)90年代初重新受到重視,并有效地應(yīng)用在FIR濾波器的設(shè)計(jì)中。長期以來,F(xiàn)PGA一直被用于邏輯或時序控制上,很少用于信號處理方面,主要原因是FPGA中沒有直接的硬件乘法器。通過分布式算法,對于固定系數(shù)的乘法這個問題得到了很好的解決。而且由FPGA代替ASIC和DSP作為前端數(shù)字信號處理的運(yùn)算,在規(guī)模、重量和功耗方面都有所降低,而且吞吐量更高,開發(fā)成本進(jìn)一步縮短??梢灶A(yù)見,在未來,大量的FPGA將會統(tǒng)治更多的如FIR濾波、CORDIC算法或FFT等的前端應(yīng)用。(二)數(shù)字濾波器的概念以及分類所謂數(shù)字濾波器是指輸入輸出均為數(shù)字信號,通過一定的運(yùn)算關(guān)系改變輸入信號中所含頻率成分的相對比例或者濾除某些頻率成分的器件。常用的濾波器有無限長單位脈沖響應(yīng)(IIR)濾波器和有限長單位脈沖響應(yīng)(FIR)濾波器兩種。其中,F(xiàn)IR濾波器能提供理想的線性相位響應(yīng),在整個頻帶上獲得常數(shù)群延時從而得到零失真輸出信號,同時它可以采用十分簡單的算法實(shí)現(xiàn),這兩個優(yōu)點(diǎn)使FIR濾波器成為設(shè)計(jì)的首選。采用一種基于DSPBuilder的FPGA設(shè)計(jì)方法,使FIR濾波器設(shè)計(jì)較為簡單易行,并能滿足設(shè)計(jì)要求。設(shè)FIR濾波器單位脈沖響應(yīng)長度為N,其系統(tǒng)函數(shù)為:是的(N-1)次多項(xiàng)式,它在z平面上有(N-1)個零點(diǎn),原點(diǎn)z=0是(N-1)階重極點(diǎn)。因此,永遠(yuǎn)穩(wěn)定。穩(wěn)定和線性相位特性是FIR濾波器突出的優(yōu)點(diǎn)。(三)FIR和IIR濾波器的比較在很多實(shí)際應(yīng)用中如語音和音頻信號處理中,數(shù)字濾波器來實(shí)現(xiàn)選頻功能。因此,指標(biāo)的形式應(yīng)為頻域中的幅度和相位響應(yīng)。在通帶中,通常希望具有線性相位響應(yīng)。在FIR濾波器中可以得到精確的線性相位。在IIR濾波器中通常的相位是不可能得到的,因此主要考慮幅度指標(biāo)。IIR數(shù)字濾波器的設(shè)計(jì)和模擬濾波器的設(shè)計(jì)有著密切的聯(lián)系。通常要設(shè)計(jì)出適當(dāng)?shù)哪M濾波器,再通過一定的頻帶變換把它轉(zhuǎn)換成所需要的數(shù)字IIR濾波器。此外,任何數(shù)字信號處理系統(tǒng)中也還不可避免地用到模擬濾波器,因此模擬濾波器設(shè)計(jì)也是數(shù)字信號應(yīng)該掌握的技術(shù)。FIR濾波器的設(shè)計(jì)方法和IIR濾波器的設(shè)計(jì)方法有很大的不同。FIR濾波器設(shè)計(jì)任務(wù)是選擇有限長度的,使傳輸函數(shù)滿足技術(shù)要求。在設(shè)計(jì)和實(shí)現(xiàn)上FIR濾波器具有如下優(yōu)越性:(1)相應(yīng)相位可為嚴(yán)格線性,因此它不存在延遲失真,只有固定的時間延遲;(2)由于不存在穩(wěn)定性問題,所以設(shè)計(jì)相對簡單;(3)只包含實(shí)數(shù)算法,不涉及復(fù)數(shù)算法,不需要遞推運(yùn)算,長度為M的濾波器(階數(shù)為M-1)它的計(jì)算值約為M/2。二、FIR數(shù)字濾波器的原理對于一個FIR濾波器系統(tǒng)而言,它的沖激響應(yīng)總是有限長的,其系統(tǒng)函數(shù)可以記為:其中M是FIR濾波器的零點(diǎn)數(shù),即延時節(jié)數(shù),在這里被稱為FIR濾波器的節(jié)數(shù)。最基本的FIR濾波器可用下式表示:其中是輸入采樣序列,是濾波器系數(shù),L是濾波器的系數(shù)長度,表示濾波器的輸出序列。也可以用卷積來表示輸出序列與、的關(guān)系。圖2-1中顯示了一個典型的直接I型4階FIR濾波器,其輸出序列滿足下列等式:(圖2-14階FIR濾波器結(jié)構(gòu)在這個FIR濾波器中,總共存在3個延時節(jié),4個乘法單元,一個4輸入的加法器。如果采用普通的數(shù)字信號處理器(DSPProcessor)來實(shí)現(xiàn),只能用串行的方式順序的執(zhí)行延時,乘加操作,這不可能在一個DSP(指數(shù)字信號處理器)指令周期內(nèi)完成,必須用多個指令周期來完成。但是,如果采用FPGA來實(shí)現(xiàn),就可以采用并行結(jié)構(gòu),在一個時鐘周期內(nèi)得到一個FIR濾波器的輸出。三、DSPBuilder設(shè)計(jì)流程DSPBuilder是一個系統(tǒng)級(或算法級)設(shè)計(jì)工具,它架構(gòu)在多個軟件工具之上,并把系統(tǒng)級和RTL級兩個設(shè)計(jì)領(lǐng)域的設(shè)計(jì)工具連接起來,最大程度發(fā)揮了兩種工具的優(yōu)勢。DSPBuilder依賴于MathWorks公司數(shù)學(xué)分析工具M(jìn)atlab/Simulink,以Simulink的Blockset出現(xiàn),可以在Simulink中進(jìn)行圖形化設(shè)計(jì)和仿真,同時又通過SignalCompiler可以把Matlab/Simulink的設(shè)計(jì)文件(.mdl)轉(zhuǎn)成相應(yīng)的硬件描述語言VHDL設(shè)計(jì)文件(.vhd),以及用于控制綜合與編譯的TCL腳本。而對后者的處理可以由FPGA/CPLD開發(fā)工具Quartus,DSPBuilder針對不同情況提供了兩套設(shè)計(jì)流程,即自動流程和手動流程。圖2-1是利用DSPBuilder進(jìn)行DSP設(shè)計(jì)的流程框圖。如圖2-1所示,DSPBuilder設(shè)計(jì)流程第一步是在Matlab/Simulink中進(jìn)行設(shè)計(jì)輸入,即在Matlab的Simulink環(huán)境中建立一個mdl模型文件,用圖形方式調(diào)用AlteraDSPBuilder和其它Simulink庫中的圖形模塊(Block),構(gòu)成系統(tǒng)級或算法級設(shè)計(jì)框圖(或稱Simulink設(shè)計(jì)模型)。第二步是利用Simulink強(qiáng)大的圖形化仿真、分析功能,分析此設(shè)計(jì)模型的正確性,完成模型仿真。在這兩步中,與一般的MatlabSimulink建模過程幾乎沒有什么區(qū)別,所不同的是設(shè)計(jì)模型庫采用AlteraDSPBuilder的Simulink庫,也不涉及到其它EDA軟件,沒有自動流程和手動流程的區(qū)別。圖2-1DSPBuilder設(shè)計(jì)流程為了針對不同用戶的設(shè)計(jì)目的和設(shè)計(jì)要求,DSPBuilder提供了兩種不同的設(shè)計(jì)流程,主要可以分為自動流程和手動流程。在手動流程中,設(shè)計(jì)者可以靈活地指定綜合、適配條件。不過,需要手動的調(diào)用VHDL綜合器進(jìn)行綜合,調(diào)用Quartus進(jìn)行適配,調(diào)用ModelSim或者Quartus進(jìn)行仿真,最后用Quartus產(chǎn)生相應(yīng)的編程文件用于FPGA的配置。采用手動流程時,除了行為級仿真驗(yàn)證和設(shè)計(jì)輸入外,其它過程與標(biāo)準(zhǔn)的基于VHDL的EDA設(shè)計(jì)流程完全是一致的。由上一步的DSPBuilder設(shè)計(jì)流程得到VHDL文件(由Simulink模型文件.mdl通過SignalCompiler轉(zhuǎn)換而成),送入綜合器進(jìn)行綜合。綜合器可以是SynplifyPro,也可以是LelnardoSpectrum,或者采用Altera自己的Quartus。在綜合時,可能需要對綜合器進(jìn)行配置或者提供綜合的約束條件。由于這個過程操作可能比較繁瑣,所以DSPBuilder的SignalCompiler相應(yīng)提供了一個接口,針對設(shè)計(jì),自動產(chǎn)生一個TCL腳本與綜合器Synplify或者LelnardoSpectrum相接。綜合器在綜合操作后會產(chǎn)生一個網(wǎng)表文件,以供下一個流程使用。這里產(chǎn)生的網(wǎng)表文件稱為ATOM網(wǎng)表文件(如圖2-1所示),主要是EDIF一種參數(shù)可設(shè)置的,并含有具體器件系列硬件特征(如邏輯宏LCs、I/O單元、乘積項(xiàng)、嵌入式系統(tǒng)塊ESB等)的網(wǎng)表文件。如果用DSPBuilder產(chǎn)生的DSP模型只是龐大設(shè)計(jì)中的一個子模塊,則可以在設(shè)計(jì)中調(diào)用DSPBuilder產(chǎn)生的VHDL文件,以構(gòu)成完整的設(shè)計(jì)。同時,一樣可以使用Quartus強(qiáng)大的LogicLock功能和SignalTap測試技術(shù)。在圖2-1的流程中,其中有個流程在DSP設(shè)計(jì)中是不可或缺的,那就是HDL仿真。與DSPBuilder可以配合使用的HDL仿真器是ModelSim。DSPBuilder在生成VHDL代碼時,可以同時生成用于測試DSP模塊的TestBench(測試平臺)文件,DSPBuilder生成的TestBench文件采用VHDL語言,測試向量與該DSP模塊在Simulink中的仿真激勵相一致。通過ModelSim仿真生成的TestBench可以驗(yàn)證生成的VHDL代碼與Simulink中DSP模型的一致性。另外,DSPBuilder在產(chǎn)生TestBench的同時,還產(chǎn)生了針對ModelSim仿真的Rcl腳本來簡化用戶的操作,掩蓋ModelSim仿真時的復(fù)雜性。四、基于DSPBuilder的FIR數(shù)字濾波器的設(shè)計(jì)與實(shí)現(xiàn)(一)利用DSPBuilder庫建立DDS模型(二)加入激勵,完成系統(tǒng)仿真(三)由Simulink模型轉(zhuǎn)成VHDL(四)綜合(五)利用Modelsim完成功能仿真(六)編譯適配五、基于MATLAB的濾波器設(shè)計(jì)工具(一)濾波器指標(biāo)若需要設(shè)計(jì)一個20階的FIR濾波器(h(0)=0),給定的參數(shù)如下:低通濾波器;采樣頻率Fs為48kHz,濾波器Fc為10.8kHz;輸入序列位寬為9位(最高位為符號位)。在此利用MATLAB來完成FIR濾波器系數(shù)確定。(二)打開MATLAB的FDATOOLMATLAB集成了一套功能強(qiáng)大的濾波器設(shè)計(jì)工具FDATool(FilterDesign&AnalysisTool),可以完成多種濾波器的設(shè)計(jì)、分析和性能評估。點(diǎn)擊MATLAB主窗口下方的“Start”(開始)按鈕,按圖5-1選擇“ToolBox”→“FilterDesign”→“FilterDesign&AnalysisTool(FDATool)”,打開FDATool,如圖5-2所示。圖5-1打開的FDATool圖5-2FDATool界面(三)濾波器分析計(jì)算完FIR濾波器系統(tǒng)分析后,往往需要對設(shè)計(jì)好的FIR濾波器進(jìn)行相關(guān)的性能分析,以便了解該濾波器是否滿足設(shè)計(jì)要求。分析操作步驟如下:1.選擇FDATool的菜單“Analysis”→“MagnitudeResponse”,啟動幅頻響應(yīng)分析。圖5-3顯示了濾波器的幅頻響應(yīng)圖,x軸為頻率,y軸為幅度值(單位為dB)。在圖的左側(cè)列出了當(dāng)前濾波器的相關(guān)信息:(1)濾波器類型為DirectformFIR(直接I型FIR濾波器)(2)濾波器階數(shù)為4圖5-3FIR濾波器的幅頻響應(yīng)圖5-4FIR濾波器的相頻響應(yīng)圖5-5幅頻響應(yīng)與相頻響應(yīng)的比較圖5-6FIR濾波器的沖激響應(yīng)圖5-7FIR濾波器的階躍響應(yīng)圖5-8FIR濾波器的零極點(diǎn)求出的FIR濾波器的系數(shù)可以通過選擇菜單“Analysis”→“FilterCoefficients”來觀察,見圖5-9。圖中列出了FDATool計(jì)算的19階直接I型FIR濾波器的部分系數(shù)。圖5-9FIR濾波器系數(shù)(四)導(dǎo)出濾波器系數(shù)為導(dǎo)出設(shè)計(jì)好的濾波器系數(shù),選擇FDATool菜單的“File”→“Export….”,打開導(dǎo)出(Export)對話框,如圖5-10所示。圖5-10導(dǎo)出系數(shù)對話框現(xiàn)在若要在FIR濾波器模型中使用這些數(shù)據(jù),還需要將他們轉(zhuǎn)化為整數(shù),在MATLAB主窗口的命令中鍵入:Num*(2^15)得到:

六、課程設(shè)計(jì)心得通過這次結(jié)課報(bào)告,我不僅鞏固以前所學(xué)的知識,并且又新學(xué)到了不少的有用的知識,不但使我提高了自己的能力也知道了自己的不足。我深刻地認(rèn)識到,只有單純的理論知識是不行的,必須多實(shí)踐,多操作才可以使自己的知識得到鞏固,從而提高自身素質(zhì)。在系統(tǒng)的設(shè)計(jì)過程中,雖然遇到了很多不同程度的問題和困難,但最后基本上均以解決,系統(tǒng)能夠順利運(yùn)行并完成各項(xiàng)功能。由于時間上和個人學(xué)識上有限,系統(tǒng)還存在一些不足之處,還有一些功能更高更完善的功能沒有能實(shí)現(xiàn),有待于以后進(jìn)一步的改進(jìn)和完善。七、參考文獻(xiàn)《現(xiàn)代DSP技術(shù)》潘松黃繼業(yè)王國棟著《數(shù)字信號處理》高西全丁玉沒著《DSP基礎(chǔ)與實(shí)用系統(tǒng)設(shè)計(jì)(PDF版)》王念旭編著《IntroductiontoMatlab7》

(美)DoloresEtter,DavidKuncicky,HollyMoore著譯者:

邱李華《MATLAB7.0從入門到精通(修訂版)》劉保柱,蘇彥華,張宏林編著《精通Matlab7》(美)亨塞爾曼,(美)利特菲爾德著,朱仁峰譯出版社《精通MATLAB6.5版教程(含CD-ROM光盤一張)》張志涌編著八、附錄libraryieee;useieee.std_logic_1164.all;useieee.std_logic_signed.all;librarydspbuilder;usedspbuilder.dspbuilderblock.all;librarylpm;uselpm.lpm_components.all;usestd.textio.all;Entitytb_dadadadais generic(ClockPeriod:time:=20.00000ns);endtb_dadadada;architecturetbDspBuilderoftb_dadadadais signalclock : std_logic :='0'; signalSystemReset : std_logic :='1'; signalsReadSimulinkStimuli : std_logic :='0'; signalWriteStimuli : std_logic:='0'; signalCountClock : integer :=0; signalAltBus : std_logic_vector(7downto0):=(others=>'0'); signalAltBus1 : std_logic_vector(17downto0); componentdadadada port( clock : instd_logic; sclrp : instd_logic; AltBus : instd_logic_vector(7downto0); AltBus1 : outstd_logic_vector(17downto0)); endcomponent;Begin assert(1<0)reportaltversionseverityNote;--Samplingclockprocessgeneration ClkPr:process begin waitforClockPeriod/2; clock<=notclock; endprocessClkPr;--SystemReset:InitializationofAlteraRegisters sReadSimulinkStimuli<='0'when(CountClock<4)else'1'; WriteStimuli<=notSystemReset; ctime:process(clock) begin ifclock'eventandclock='0'then CountClock<=CountClock+1; SystemReset<=notsReadSimulinkStimuli; endif; endprocessctime;--InstantiationoftheSimulinkmodeldadadadainstancename'dut'(Deviceundertest) dut:dadadada portmap( clock => clock, sclrp => SystemReset, AltBus => AltBus, AltBus1 => AltBus1);--ReadingSimul

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論