版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
word文檔目錄摘要 1英文摘要 11引言 21.1國(guó)內(nèi)外研究現(xiàn)狀 21.2本論文的研究?jī)?nèi)容及主要工作 42FIR數(shù)字濾波器設(shè)計(jì) 42.1數(shù)字濾波器基礎(chǔ) 42.1.1數(shù)字濾波器簡(jiǎn)介 42.1.2FIR數(shù)字濾波器的結(jié)構(gòu) 52.2FIR數(shù)字濾波器設(shè)計(jì)方法 62.2.1窗函數(shù)法 72.2.2頻率采樣法 82.2.3等波紋最佳逼近法 92.2.4三種設(shè)計(jì)方法的比較 103FPGA設(shè)計(jì)優(yōu)點(diǎn)以及分布式算法 103.1使用FPGA器件進(jìn)行開(kāi)發(fā)的優(yōu)點(diǎn) 103.2分布式算法 123.2.1分布式算法基礎(chǔ) 123.2.2有符號(hào)的DA系統(tǒng) 134基于FPGA的FIR濾波器設(shè)計(jì) 134.1基于Matlab的FIR數(shù)字低通濾波器抽頭系數(shù)的提取 134.1.1濾波器的設(shè)計(jì)指標(biāo) 134.1.2濾波器的具體設(shè)計(jì)方法 144.1.3參數(shù)提取與量化 154.2FIR濾波器的FPGA實(shí)現(xiàn) 164.2.1模塊劃分 164.2.2FIR濾波器各模塊的實(shí)現(xiàn) 164.2.3FIR濾波器的頂層設(shè)計(jì) 264.3FIR濾波器的系統(tǒng)仿真驗(yàn)證 274.4系統(tǒng)硬件 324.4.1系統(tǒng)框圖 324.4.2部分芯片簡(jiǎn)介 324.4.3AD、DA電路原理圖 354.5測(cè)試波形及現(xiàn)場(chǎng)照片 354.6數(shù)據(jù)誤差分析 36結(jié)論 37參考文獻(xiàn) 37附件 38word文檔基于FPGA的FIR濾波器的設(shè)計(jì)PAGE1基于FPGA的FIR濾波器的設(shè)計(jì) 摘要:本文設(shè)計(jì)了一個(gè)基于FPGA的16階FIR低通濾波器,使用分布式算法作為濾波器的硬件實(shí)現(xiàn)算法,并對(duì)其進(jìn)行了詳細(xì)的討論。針對(duì)分布式算法中LUT規(guī)模過(guò)大的缺點(diǎn),采用多塊查找表的方式減小硬件規(guī)模。在設(shè)計(jì)中采用了自頂向下的層次化、模塊化的設(shè)計(jì)思想,將整個(gè)濾波器劃分為多個(gè)模塊,利用VHDL語(yǔ)言的描述方法進(jìn)行了各個(gè)功能模塊的設(shè)計(jì),最終完成了FIR數(shù)字濾波器的系統(tǒng)設(shè)計(jì)。文章采用CycloneII系列器件實(shí)現(xiàn)一個(gè)16階的FIR低通濾波器的設(shè)計(jì)實(shí)例,用QuartusII軟件進(jìn)行了仿真,并用Matlab對(duì)仿真結(jié)果進(jìn)行了分析,證明所設(shè)計(jì)的FIR濾波器功能正確。仿真結(jié)果表明,本論文所設(shè)計(jì)的FIR濾波器硬件模較小,采樣率達(dá)到了10MHz。同時(shí)只要將查找表進(jìn)行相應(yīng)的改動(dòng),就能分別實(shí)現(xiàn)低通、高通、帶通FIR濾波器,體現(xiàn)了設(shè)計(jì)的靈活性。關(guān)鍵詞:FIR濾波器;FPGA器件;VHDL語(yǔ)言;分布式算法;查找表DesignofFIRFiltersBasedonFPGAAbstract:Inthispaper,asixteentappedlowpassFIRfilterisdesignedbasedonFPGA,aschemeofhardwareimplementationisworkedoutusingdistributedarithmeticalgorithm,andisdiscussedindetail.AsthescaleoftheLUTinthedistributedarithmeticalgorithmissolarge,thethesisreducesitwiththeusingofmultiplecoefficientmemorybanks.Fromtheclewofimplementingatop-downstratifiedmodulardesign,thethesisdescribesthehardwaredesignedofallfunctionalmodulesandtheFIRsystemwiththeVHDLandschematicdiagramdesignedmethods.Inthisthesis,Asixteentappedlow-passFIRfilterimplementedusingCycloneIItakenasanexample,andthesimulationdesignedcarriedoutusingQuartusII.TheresultofthesimulationisanalyzedwiththeuseofMatlab,anditprovedthatthefunctionalofthedesignifcorrect.Theresultofthesimulationindicatesthatthescaleofthedesignissmall,andthesamplerateoftheFIRfiltercansearch10MHz.ModifyingtheLUTcanrealizethelow-pass,high-passandband-passFIRfiltersandrespectivelyandincarnatestheflexibilityofthedesign.KeyWords:FIRFilter;FPGA;VHDL;DistributeDarithmatic;LUT1引言濾波技術(shù)是信號(hào)分析、信號(hào)處理技術(shù)中的重要分支。無(wú)論是信號(hào)的獲取、傳輸,還是信號(hào)的處理、轉(zhuǎn)換都離不開(kāi)濾波技術(shù)。濾波技術(shù)對(duì)信號(hào)安全可靠和有效靈活的傳遞至關(guān)重要[1]。在電子系統(tǒng)中,由于濾波器的好壞直接影響系統(tǒng)的性能,所以濾波技術(shù)己成為備受關(guān)注而熱門(mén)的課題,濾波器的研制己受到各國(guó)研究者越來(lái)越多的重視。我國(guó)在上世紀(jì)50年代后期開(kāi)始廣泛使用濾波器,主要應(yīng)用在報(bào)路和話(huà)路濾波。經(jīng)過(guò)半個(gè)多世紀(jì)的發(fā)展,我國(guó)濾波器在研制、生產(chǎn)、應(yīng)用等方面己進(jìn)入國(guó)際發(fā)展軌道,但由于缺少專(zhuān)門(mén)研制機(jī)構(gòu),加之集成工藝和材料工業(yè)發(fā)展步伐的緩慢,使得我國(guó)在許多新型濾波器的研制和應(yīng)用方面與國(guó)外仍有較大的差距。數(shù)字濾波器是對(duì)離散時(shí)間信號(hào)進(jìn)行濾波處理以得到期望的響應(yīng)特性的離散時(shí)間系統(tǒng)。數(shù)字濾波器一般由寄存器、延時(shí)器、加法器和乘法器等基本數(shù)字電路來(lái)實(shí)現(xiàn)。數(shù)字濾波器能滿(mǎn)足濾波器對(duì)幅度和相位特性的嚴(yán)格要求,避免模擬濾波器所無(wú)法克服的電壓漂移、溫度漂移和噪聲等問(wèn)題。隨著集成電路技術(shù)的發(fā)展,數(shù)字濾波器性能不斷提高而成本卻不斷降低。數(shù)字濾波器在語(yǔ)音信號(hào)處理、圖像信號(hào)處理、醫(yī)學(xué)生物信號(hào)處理以及其他應(yīng)用領(lǐng)域都得到了廣泛應(yīng)用。隨著電子計(jì)算機(jī)和大規(guī)模集成電路技術(shù)的發(fā)展,數(shù)字濾波器可用計(jì)算機(jī)軟件實(shí)現(xiàn),也可用大規(guī)模集成數(shù)字硬件實(shí)時(shí)實(shí)現(xiàn),數(shù)字濾波器已具備了高精度、高可靠性、可程控改變性或復(fù)用、便于集成等眾多優(yōu)點(diǎn)。按照數(shù)字濾波器(DF)的特性,可分為線(xiàn)性與非線(xiàn)性、因果與非因果、無(wú)限長(zhǎng)沖激響應(yīng)(IIR)與有限長(zhǎng)沖激響應(yīng)(FIR)等類(lèi)型。在這些濾波器中,線(xiàn)性時(shí)不變的數(shù)字濾波器是最基本的類(lèi)型。由于數(shù)字系統(tǒng)可以對(duì)延時(shí)器加以利用,因此若在數(shù)字濾波器中引入一定程序的非因果性,就可獲得比傳統(tǒng)的因果濾波器更靈活強(qiáng)大的特性。相對(duì)于IIR濾波器,F(xiàn)IR濾波器具有易于實(shí)現(xiàn)和系統(tǒng)絕對(duì)穩(wěn)定的優(yōu)勢(shì),因此得到廣泛的應(yīng)用[2]。1.1國(guó)內(nèi)外研究現(xiàn)狀在國(guó)內(nèi)外的研究中,設(shè)計(jì)FIR濾波器所涉及的乘法運(yùn)算方式有:并行乘法、位串行乘法和采用分布式算法的乘法。并行乘法雖然速度快,同時(shí)占用的硬件資源極大。如果濾波器的長(zhǎng)度增加,乘法器位數(shù)也將變大,硬件規(guī)模將變得十分龐大。位串行乘法器的實(shí)現(xiàn)方法主要是通過(guò)對(duì)乘法運(yùn)算進(jìn)行分解,用加法器來(lái)完成乘法的功能,也即無(wú)乘法操作的乘法器。但由于一個(gè)8*8位的乘法器輸出為16位,為了得到正確的16位結(jié)果,串行輸入的二進(jìn)制補(bǔ)碼數(shù)要進(jìn)行符號(hào)位擴(kuò)展,即將串行輸入的8位二進(jìn)制補(bǔ)碼前補(bǔ)8個(gè)0(對(duì)正數(shù))或8個(gè)1(對(duì)負(fù)數(shù))后才輸入乘法器。如果每一位的運(yùn)算需要一個(gè)時(shí)鐘周期的話(huà),這個(gè)乘法器需要16個(gè)時(shí)鐘周期才能計(jì)算出正確結(jié)果,這就意味著此類(lèi)乘法器要完全計(jì)算出結(jié)果的延遲必將會(huì)很大。所以位串行乘法器雖然使得乘法器的硬件規(guī)模達(dá)到了最省,但是由于是串行運(yùn)算,使得它的運(yùn)算周期過(guò)長(zhǎng),速度與規(guī)模折衷考慮時(shí)不是最優(yōu)的。分布式算法(distributedarithmetic,AD)的主要特點(diǎn)是巧妙的利用ROM查找表將固定系數(shù)的乘累加(Multiply-accumulator,MAC)運(yùn)算轉(zhuǎn)化為查表操作,它與傳統(tǒng)算法實(shí)現(xiàn)乘累加運(yùn)算的不同在于執(zhí)行部分積運(yùn)算的先后順序不同。分布式算法在完成乘累加功能時(shí)是通過(guò)將各輸入數(shù)據(jù)每一對(duì)應(yīng)位產(chǎn)生的部分積預(yù)先進(jìn)行相加形成相應(yīng)的部分積,然后再對(duì)各個(gè)部分積累加產(chǎn)生最終結(jié)果,而傳統(tǒng)算法是等到所有乘積已經(jīng)產(chǎn)生之后再來(lái)相加來(lái)完成乘累加運(yùn)算的。就小位寬來(lái)說(shuō),AD算法設(shè)計(jì)的FIR濾波器的速度可以顯著的超過(guò)基于MAC的設(shè)計(jì)。相對(duì)于前兩種方法,DA算法既可以全并行實(shí)現(xiàn),又可以全串行實(shí)現(xiàn),還可以串并行結(jié)合實(shí)現(xiàn),可以在硬件規(guī)模和濾波器速度之間作適當(dāng)?shù)恼壑?,是現(xiàn)在被研究的主要方法。FIR數(shù)字濾波器的實(shí)現(xiàn),大體可以分為軟件實(shí)現(xiàn)和硬件實(shí)現(xiàn)方法兩種。軟件實(shí)現(xiàn)方法即是在通用的微型計(jì)算機(jī)上用軟件實(shí)現(xiàn)。利用計(jì)算機(jī)的存儲(chǔ)器、運(yùn)算器和控制器把濾波所要完成的運(yùn)算編成程序通過(guò)計(jì)算機(jī)來(lái)執(zhí)行,軟件可由使用者自己編寫(xiě),也可以使用現(xiàn)成的。國(guó)內(nèi)外的研究機(jī)構(gòu)、公司已經(jīng)推出了不同語(yǔ)一言的信號(hào)濾波處理軟件包。但是這種方法速度慢,難以對(duì)信號(hào)進(jìn)行實(shí)時(shí)處理,雖然可以用快速傅立葉變換算法來(lái)加快計(jì)算速度,但要達(dá)到實(shí)時(shí)處理要付出很高的代價(jià),因而多用于教學(xué)與科研。硬件實(shí)現(xiàn)即是設(shè)計(jì)專(zhuān)門(mén)的數(shù)字濾波硬件,采用硬件實(shí)現(xiàn)的方法一般都比采用軟件實(shí)現(xiàn)方法要困難得多,目前主要采用的方法有以下幾種[3]:(1)采用DSP(DigitalSignalProcessing)處理器實(shí)現(xiàn)DSP處理器是專(zhuān)為數(shù)字信號(hào)處理而設(shè)計(jì)的,如TI公司的TMS32OCX系列,AD公司的ADSPZXI,ADSP210X系列等。它主要數(shù)字運(yùn)算單元是一個(gè)乘累加器(Multiply-accumulatorMAC),能夠在一個(gè)機(jī)器周期內(nèi)完成一次乘累加運(yùn)算,配有適合于信號(hào)處理的指令,具備獨(dú)特的循環(huán)尋址和倒序?qū)ぶ纺芰Α_@些特點(diǎn)都非常適合數(shù)字信號(hào)處理中的濾波器設(shè)計(jì)的有效實(shí)現(xiàn),并且它速度快,成本低,在過(guò)去的20多年的時(shí)間里,軟件可編程的DPS器件幾乎統(tǒng)治了商用數(shù)字信號(hào)處理硬件的市場(chǎng)。(2)采用固定功能的專(zhuān)用信號(hào)處理器來(lái)實(shí)現(xiàn),適用于過(guò)程固定而又追求高速的信號(hào)處理任務(wù),是以指定的算法來(lái)確定它的結(jié)構(gòu),使用各種隨機(jī)邏輯器件組成的信號(hào)處理器。它們體積小、保密性好,具有極高的性能,然而靈活性差。二者相比,固定功能的DSP專(zhuān)用器件可以提供很好的實(shí)時(shí)性能,但其靈活性差,研發(fā)周期長(zhǎng),難度也比較大;DSP處理器的成本低且速度較快,靈活性好,但由于軟件算法在執(zhí)行時(shí)的順序性,限制了它在高速和實(shí)時(shí)系統(tǒng)中的應(yīng)用。在一些高速應(yīng)用中,系統(tǒng)性能的要求不斷增長(zhǎng),而DSP性能的提高卻落后于需求的增長(zhǎng)?,F(xiàn)在,大規(guī)模可編程邏輯器件為數(shù)字信號(hào)處理提供了一種新的實(shí)現(xiàn)方案。分布式算法可以很好地在FPGA(FieldProgrammableGateArray)中實(shí)現(xiàn),然而卻不能有效的在DSP處理器中實(shí)現(xiàn),所以采用FPGA使用分布式算法實(shí)現(xiàn)FIR數(shù)字濾波器有著很好的發(fā)展前景。采用現(xiàn)場(chǎng)可編程門(mén)陣列FPGA來(lái)實(shí)現(xiàn)FIR數(shù)字濾波器,既兼顧ASIC器件(固定功能DSP專(zhuān)用芯片)的實(shí)時(shí)性、又具有DSP處理器的靈活性。FPGA和DSP技術(shù)的結(jié)合能夠更進(jìn)一步提高集成度、加快速度和擴(kuò)展系統(tǒng)功能。用FPGA設(shè)計(jì)的產(chǎn)品還具有體積小、速度快、重量輕、功耗低、可靠性高、仿制困難、上批量成本低等優(yōu)點(diǎn)。但是,DA算法中的查找表的規(guī)模隨著FIR數(shù)字濾波器長(zhǎng)度的增加呈指數(shù)增長(zhǎng),而且隨著濾波器系數(shù)的位數(shù)的增加,查找表的規(guī)模也會(huì)增加,這將極大的增加設(shè)計(jì)的硬件規(guī)模。所以如何減小查找表的規(guī)模成為尚待解決的問(wèn)題。1.2本論文的研究?jī)?nèi)容及主要工作本論文重點(diǎn)研究的是FIR低通數(shù)字濾波器的研究與設(shè)計(jì),具體內(nèi)容分為五節(jié):第一節(jié)引言主要介紹了本課題的來(lái)源及研究意義、國(guó)內(nèi)外現(xiàn)狀。第二節(jié)主要介紹了FIR數(shù)字濾波器的原理以及線(xiàn)性相位FIR濾波器的結(jié)構(gòu)和設(shè)計(jì)方法。第三節(jié)介紹了FPGA設(shè)計(jì)優(yōu)點(diǎn)及DA算法優(yōu)化研究,重點(diǎn)是分布式算法的原理以及DA算法優(yōu)化的研究與設(shè)計(jì),并對(duì)具體的分組優(yōu)化方法做了詳細(xì)的討論。第四節(jié)首先利用Matlab制定設(shè)計(jì)指標(biāo),提取16階FIR低通數(shù)字濾波器的抽頭數(shù)并進(jìn)行量化。然后基于FPGA分模塊對(duì)其進(jìn)行研究設(shè)計(jì),并進(jìn)行綜合系統(tǒng)仿真和驗(yàn)證。最后介紹了A/D、D/A模塊的具體設(shè)計(jì)方法,給出了電路原理圖。文章最后給出了現(xiàn)場(chǎng)測(cè)試的一些照片。2FIR數(shù)字濾波器設(shè)計(jì)2.1數(shù)字濾波器基礎(chǔ)數(shù)字濾波器在數(shù)字信號(hào)處理中屬于預(yù)處理的部分,因而起著基礎(chǔ)性的作用,數(shù)字濾波器包括IIR和FIR數(shù)字濾波器。數(shù)字濾波器具有精度高、穩(wěn)定性好、靈活性強(qiáng)、不要求阻抗匹配,易于修改等特點(diǎn)。下面將首先介紹一下數(shù)字濾波器,然后重點(diǎn)討論FIR數(shù)字濾波器的設(shè)計(jì)原理和結(jié)構(gòu)[4]。2.1.1數(shù)字濾波器簡(jiǎn)介一個(gè)簡(jiǎn)單的數(shù)字濾波系統(tǒng)如圖2-1所示。圖中,x(t)為模擬信號(hào),經(jīng)過(guò)A/D轉(zhuǎn)換器后變?yōu)橐粋€(gè)有著先后順序的數(shù)字序列x(n)。然后x(n)通過(guò)數(shù)字濾波系統(tǒng)H(z),即得到數(shù)字濾波器的輸出y(n)。H(z)為該數(shù)字濾波系統(tǒng)的單位脈沖響應(yīng)h(n)的Z變換,即:(2-1)若h(n)為無(wú)限長(zhǎng)序列,則得到的數(shù)字濾波器為IIR數(shù)字濾波器,又稱(chēng)遞歸濾波器;反之,若h(n)為有限長(zhǎng)序列,則得到的數(shù)字濾波器為FIR濾波器,也稱(chēng)非遞歸濾波器。一個(gè)線(xiàn)形時(shí)不變因果濾波器可表示為:(2-2)其中N為h(n)的長(zhǎng)度,即濾波器的長(zhǎng)度。圖2-1數(shù)字濾波系統(tǒng)IIR濾波器主要是基于對(duì)模擬濾波器如巴特沃斯濾波器、橢圓濾波器等的幅頻響應(yīng)進(jìn)行逼近,而其相頻響應(yīng)是非線(xiàn)性的。與IIR濾波器不同,F(xiàn)IR濾波器可以把相位特性設(shè)計(jì)成線(xiàn)性。這使得FIR數(shù)字濾波器在信號(hào)無(wú)失真?zhèn)鬏?、?shù)據(jù)通信、圖像傳輸與處理、語(yǔ)音信號(hào)處理等有線(xiàn)性相位要求的領(lǐng)域應(yīng)用廣泛。FIR濾波器的優(yōu)點(diǎn)是軟硬件實(shí)現(xiàn)結(jié)構(gòu)簡(jiǎn)單,不用考慮系統(tǒng)的穩(wěn)定性問(wèn)題;缺點(diǎn)是實(shí)現(xiàn)較高性能的頻率響應(yīng)需要較高的濾波器階數(shù)。2.1.2FIR數(shù)字濾波器的結(jié)構(gòu)由于FIR數(shù)字濾波器實(shí)現(xiàn)算法的不同,我們可以把FIR濾波器的結(jié)構(gòu)劃分為直接型、級(jí)聯(lián)型、頻率采樣型和快速卷積型四種基本形式。本文主要討論前兩種結(jié)構(gòu)。(1)直接型結(jié)構(gòu)由式2-2可直接畫(huà)出FIR數(shù)字濾波器的直接型結(jié)構(gòu),如圖2-2所示。對(duì)于直接型結(jié)構(gòu)來(lái)說(shuō),一個(gè)長(zhǎng)度為N的FIR濾波器,每產(chǎn)生一個(gè)輸出數(shù)據(jù),要經(jīng)過(guò)N次乘法,N-1次加法。對(duì)于使用FPGA開(kāi)發(fā)FIR數(shù)字濾波器,這樣的結(jié)果顯然不令人滿(mǎn)意。圖2-2直接型結(jié)構(gòu)于是本文做了一下改進(jìn),這種改進(jìn)是基于線(xiàn)性相位的FIR數(shù)字濾波器的。以嚴(yán)格線(xiàn)性相位,N為偶數(shù)的FIR濾波器為例,如圖2-3所示。圖2-3直接型的改進(jìn)由于關(guān)于對(duì)稱(chēng),我們可以將經(jīng)過(guò)延時(shí)環(huán)節(jié)的位置關(guān)于對(duì)稱(chēng)的數(shù)據(jù)預(yù)先相加,然后可以再乘以相應(yīng)的濾波器系數(shù)進(jìn)行累加得到最終的輸出結(jié)果。這樣,每產(chǎn)生一個(gè)輸出,經(jīng)過(guò)次乘法,次加法,比原來(lái)減少次乘法。(2)級(jí)聯(lián)型結(jié)構(gòu)對(duì)式(2-2)進(jìn)行因式分解,并將零點(diǎn)共軛的因式放在一起,這樣產(chǎn)生了若干個(gè)一階子式和二階子式,將一階子式看作二階子式的一個(gè)特例,則系統(tǒng)函數(shù)可以表示為:(2-3)FIR數(shù)字濾波器的級(jí)聯(lián)型結(jié)構(gòu)如圖2-4所示。圖2-4級(jí)聯(lián)型結(jié)構(gòu)從圖中可以看出,級(jí)聯(lián)型結(jié)構(gòu)每產(chǎn)生一個(gè)輸出,需要次乘法,次加法。級(jí)聯(lián)型的最大特點(diǎn)是可以分別獨(dú)立調(diào)整每個(gè)子系統(tǒng)的零點(diǎn)之值,當(dāng)需要精確控制濾波器的零點(diǎn)位置時(shí),往往采用這種結(jié)構(gòu)[5]。2.2FIR數(shù)字濾波器設(shè)計(jì)方法FIR數(shù)字濾波器的設(shè)計(jì)方法主要有三種:時(shí)窗函數(shù)法、頻率采樣法和等波紋設(shè)計(jì)法[6]。下面將分別討論一下這三種方法的設(shè)計(jì)原理,然后給出設(shè)計(jì)步驟,最后在比較一下這三種方法的優(yōu)缺點(diǎn)。2.2.1窗函數(shù)法一個(gè)理想低通濾波器的幅頻特性如圖2-5所示。的表達(dá)式為(2-4)圖2-5理想低通濾波器頻譜圖對(duì)進(jìn)行離散時(shí)間傅里葉逆變換,得(2-5)是一個(gè)關(guān)于對(duì)稱(chēng)的無(wú)限長(zhǎng)序列,是系統(tǒng)的單位脈沖響應(yīng),這說(shuō)明系統(tǒng)是非因果的,在物理上不可實(shí)現(xiàn)。為了能夠得到一個(gè)可實(shí)現(xiàn)的系統(tǒng),可以將截取一部分,并順序右移,使之成為一個(gè)因果的有限長(zhǎng)序列。這種方法就好比在時(shí)域打開(kāi)一個(gè)窗口一樣,因而稱(chēng)為窗函數(shù)法??梢灶A(yù)見(jiàn),使用這種方法截取的序列越長(zhǎng),對(duì)理想的幅頻特性逼近的越好。常見(jiàn)的時(shí)窗函數(shù)有矩形窗、漢寧窗、漢明窗、布萊克曼窗、凱塞窗等。矩形窗的表達(dá)式為:,為整數(shù)。當(dāng)用矩形窗設(shè)計(jì)FIR濾波器時(shí),所產(chǎn)生的頻率響應(yīng),與理想濾波器的頻率特性相比,在理想特性不連續(xù)點(diǎn)處附近形成了過(guò)渡帶,并在過(guò)渡帶兩側(cè)形成持續(xù)時(shí)間很長(zhǎng),逐漸衰減的波紋,即通帶內(nèi)產(chǎn)生了波動(dòng),而阻帶內(nèi)產(chǎn)生了余振,這種現(xiàn)象稱(chēng)之為吉布斯(Gibbs)效應(yīng)。吉布斯效應(yīng)直接影響到濾波器的性能,因?yàn)橥◣?nèi)的波動(dòng)會(huì)影響到濾波器的平穩(wěn)性,阻帶內(nèi)的波動(dòng)則影響阻帶最小衰減。窗函數(shù)的選擇原則是:(1)具有較低的旁瓣幅度,尤其是第一旁瓣幅度。(2)旁瓣幅度下降速度要快,以利增加阻帶衰減。(3)主瓣的寬度要窄,以獲得較陡的過(guò)渡帶。但是這幾個(gè)標(biāo)準(zhǔn)之間彼此是有矛盾的,即主瓣寬度越大,旁瓣水平才可能越低。因此實(shí)際上。因此,實(shí)際選用的窗函數(shù)往往是它們的折中。在保證主瓣寬度達(dá)到一定要求的條件下,適當(dāng)犧牲主瓣寬度來(lái)?yè)Q取旁瓣波動(dòng)的減少。六種窗函數(shù)的主要參數(shù)如表2-2所示。應(yīng)當(dāng)說(shuō)明的是,用時(shí)窗函數(shù)法設(shè)計(jì)的FIR濾波器通帶波紋幅度近似等于阻帶波紋幅度。一般阻帶最小衰減達(dá)到40dB以上,則通帶最大衰減就小于0.1dB。最后,總結(jié)一下利用窗函數(shù)設(shè)計(jì)FIR數(shù)字濾波器的步驟:給定所要求的頻率響應(yīng)函數(shù);求;有過(guò)濾帶寬及阻帶最小衰減的要求,利用下表選定窗的形狀及N的大小,一般N要通過(guò)幾次試探而最后確定。求的所設(shè)計(jì)的FTR的單位抽樣響應(yīng)(5)求,檢驗(yàn)是否滿(mǎn)足設(shè)計(jì)要求,如不滿(mǎn)足,則需重新設(shè)計(jì)。表2-2六種窗函數(shù)參數(shù)表的比較窗函數(shù)窗譜性能指標(biāo)加窗后濾波器性能指標(biāo)旁瓣峰值/db主瓣寬度/()過(guò)濾寬度/阻帶最小衰減/db矩形窗-1320.9-21巴特列特-2542.1-25漢寧窗-3143.1-44海明窗-4143.3-53布拉克曼窗-5765.5-74凱澤窗-575-802.2.2頻率采樣法頻率采樣法是一種基于頻率域抽樣來(lái)逼近所要設(shè)計(jì)的FIR濾波器的頻率特性的一種方法。頻率設(shè)計(jì)法的基本設(shè)計(jì)流程如圖2-6所示。圖2-6頻率設(shè)計(jì)法流程為了保證具有線(xiàn)性相位條件,其單位采樣響應(yīng)是實(shí)序列,且滿(mǎn)足條件。對(duì)于偶對(duì)稱(chēng)的情況來(lái)說(shuō),線(xiàn)性相位條件如下:(2-6)(2-7)令代入式(2-6)、(2-7),得到(2-8)式中,,N為奇數(shù),N為偶數(shù)。頻率響應(yīng)函數(shù)在各采樣點(diǎn)上等于,而采樣點(diǎn)之間的值是由各采樣值之間的內(nèi)插函數(shù)疊加形成,因而有一定的逼近誤差,誤差的大小取決于理想頻率響應(yīng)的曲線(xiàn)形狀。采樣點(diǎn)之間的理想頻率特性變化越陡,則內(nèi)插值與理想值之間的誤差就越大,因而在理想頻率響應(yīng)特性的不連續(xù)點(diǎn)附近,就會(huì)產(chǎn)生肩峰和波紋;反之,理想頻率響應(yīng)特性變化越平緩,則內(nèi)插值越接近理想值,逼近誤差小。因此,可以在理想頻率下響應(yīng)特性的通帶與阻帶之間設(shè)置過(guò)渡帶,從而減小逼近誤差。過(guò)渡帶的采樣點(diǎn)個(gè)數(shù)m與所設(shè)計(jì)的濾波器的阻帶最小衰減有關(guān),具體如表2-3所示。此外過(guò)渡帶的帶寬與采樣點(diǎn)數(shù)m之間的關(guān)系為:(2-9)表2-3過(guò)渡帶采樣點(diǎn)數(shù)與阻帶最小衰減的關(guān)系12342044-5465-7585-95綜上,頻率采樣法的設(shè)計(jì)步驟為:根據(jù)阻帶最小衰減,確定過(guò)渡帶的樣點(diǎn)數(shù)m。根據(jù)過(guò)渡帶寬度的要求,估算濾波器的長(zhǎng)度。構(gòu)造希望逼近的頻率響應(yīng)函數(shù),一般為具有理想頻率特性,并滿(mǎn)足線(xiàn)性相位的要求。對(duì)進(jìn)行頻域等間隔N點(diǎn)采樣,得到。對(duì)進(jìn)行N點(diǎn)IDFT,得到。2.2.3等波紋最佳逼近法等波紋最佳逼近法是基于最大誤差最小化的設(shè)計(jì)原則。最大誤差最小化能使幅度誤差在整個(gè)逼近頻段上均勻分布,即所設(shè)計(jì)的FIR數(shù)字濾波器的幅度特性在通帶和阻帶范圍內(nèi)是等波紋的,且可以分別獨(dú)立控制通帶和阻帶的波紋幅度,并且在濾波器長(zhǎng)度給定的情況下,加權(quán)的幅度波紋誤差最小。定義加權(quán)幅度誤差函數(shù)為(2-10),式中為幅度誤差加權(quán)函數(shù),用來(lái)控制不同頻帶的幅度逼近誤差。一般地,在要求逼近精度高的頻帶,取值大,而要求逼近誤差精度低的頻帶,取值小。設(shè)計(jì)過(guò)程中是由設(shè)計(jì)者根據(jù)通帶最大衰減和阻帶最小衰減的指標(biāo)要求取定的已知函數(shù)。對(duì)于FIR數(shù)字低通濾波器,常取:(2-11)式中,和分別為濾波器設(shè)計(jì)指標(biāo)中通帶和阻帶的振蕩波紋幅度,k為正的系數(shù)。濾波器的通帶最大衰減和阻帶最小衰減與通帶和阻帶的振蕩波紋幅度和的換算關(guān)系為:(2-12)(2-13)等波紋最佳逼近法的設(shè)計(jì),在于找到濾波器的系數(shù)向量,使得在通帶和阻帶頻帶內(nèi)的最大絕對(duì)值幅度誤差為最小。帕克斯-麥克萊倫采用基于交替定理的雷米茲交替算法,通過(guò)逐次迭代逼近的運(yùn)算求得濾波器的系數(shù)向量,從而實(shí)現(xiàn)等波紋最佳逼近法。一般情況下,估計(jì)濾波器長(zhǎng)度N的凱塞經(jīng)驗(yàn)公式為:(2-14)綜上,用等波紋最佳逼近法設(shè)計(jì)FIR數(shù)字濾波器的步驟為:(1)根據(jù)濾波器的設(shè)計(jì)指標(biāo)要求:邊界頻率、通帶最大衰減、阻帶最小衰減等,估計(jì)濾波器的長(zhǎng)度,并確定幅度誤差加權(quán)函數(shù)。(2)采用雷米茲交替算法,獲得所設(shè)計(jì)的濾波器的單位脈沖響應(yīng)。2.2.4三種設(shè)計(jì)方法的比較
綜述可得,窗函數(shù)法設(shè)計(jì)的基本思想是把給定的頻率響應(yīng)通過(guò)離散時(shí)間傅里葉逆變換IDTFT(Inverse
Discrete
Time
Fourier
Transform),求得脈沖響應(yīng),然后利用加窗函數(shù)對(duì)它進(jìn)行截?cái)嗪推交?,以?shí)現(xiàn)一個(gè)物理可實(shí)現(xiàn)且具有線(xiàn)性相位的
FIR
數(shù)字濾波器的設(shè)計(jì)目的。其核心是從給定的頻率特性,通過(guò)加窗確定有限長(zhǎng)單位取樣響應(yīng)h(n);頻率采樣法設(shè)計(jì)的基本思想是把給出的理想頻率響應(yīng)進(jìn)行取樣,通過(guò)
IDFT
從頻譜樣點(diǎn)直接求得有限脈沖響應(yīng);等波紋切比雪夫逼近法則是利用
MATLAB
提供的
remez
函數(shù)實(shí)現(xiàn)Remez算法,設(shè)計(jì)濾波器逼近理想頻率響應(yīng)。
比較以上三種濾波器的設(shè)計(jì)方法,在同樣的階數(shù)下,等波紋切比雪夫逼近法可以獲得最佳的頻率特性和衰耗特性,具有通帶和阻帶平坦,過(guò)渡帶窄等優(yōu)點(diǎn)。頻率采樣設(shè)計(jì)法可以設(shè)計(jì)某些特殊濾波器,且其設(shè)計(jì)過(guò)程簡(jiǎn)單,但阻帶衰減明顯,若適當(dāng)選取過(guò)渡帶樣點(diǎn)值,會(huì)取得較窗函數(shù)設(shè)計(jì)法略好的衰耗特性。窗函數(shù)設(shè)計(jì)法在階數(shù)較低時(shí),阻帶特性基本滿(mǎn)足設(shè)計(jì)要求,當(dāng)濾波器階數(shù)較高時(shí),使用漢寧窗、海明窗、布萊克曼窗和凱澤窗即可以達(dá)到阻帶衰耗要求3FPGA設(shè)計(jì)優(yōu)點(diǎn)以及分布式算法3.1使用FPGA器件進(jìn)行開(kāi)發(fā)的優(yōu)點(diǎn)使用FPGA器件設(shè)計(jì)數(shù)字電路,不僅可以簡(jiǎn)化設(shè)計(jì)過(guò)程,而且可以降低整個(gè)系統(tǒng)的體積和成本,增加系統(tǒng)的可靠性。它們無(wú)需花費(fèi)傳統(tǒng)意義下制造集成電路所需大量時(shí)間和精力,避免了投資風(fēng)險(xiǎn),成為電子器件行業(yè)中發(fā)展最快的一個(gè)系列。使用FPGA器件設(shè)計(jì)數(shù)字系統(tǒng)電路的主要優(yōu)點(diǎn)如下:(1)設(shè)計(jì)靈活使用FPGA器件,可以不受標(biāo)準(zhǔn)系列器件在邏輯功能上的限制。而且修改邏輯可在系統(tǒng)設(shè)計(jì)和使用過(guò)程的任一階段中進(jìn)行,并且只須通過(guò)對(duì)所用的FPGA器件進(jìn)行重新編程即可完成,給系統(tǒng)設(shè)計(jì)提供了很大的靈活性。(2)增大功能密集度功能密集度是指在給定的空間能集成的邏輯功能數(shù)量??删幊踢壿嬓酒瑑?nèi)的組件門(mén)數(shù)高,一片F(xiàn)PGA可代替幾片、幾十片乃至上百片中小規(guī)模的數(shù)字集成電路芯片。用FPGA器件實(shí)現(xiàn)數(shù)字系統(tǒng)時(shí)用的芯片數(shù)量少,從而減少芯片的使用數(shù)目,減少印刷線(xiàn)路板面積和印刷線(xiàn)路板數(shù)目,最終導(dǎo)致系統(tǒng)規(guī)模的全面縮減。(3)提高可靠性減少芯片和印刷板數(shù)目,不僅能縮小系統(tǒng)規(guī)模,而且它還極大的提高了系統(tǒng)的可靠性。具有較高集成度的系統(tǒng)比用許多低集成度的標(biāo)準(zhǔn)組件設(shè)計(jì)的相同系統(tǒng)具有高得多的可靠性。使用FPGA器件減少了實(shí)現(xiàn)系統(tǒng)所需要的芯片數(shù)目,在印刷線(xiàn)路板上的引線(xiàn)以及焊點(diǎn)數(shù)量也隨之減少,所以系統(tǒng)的可靠性得以提高。(4)縮短設(shè)計(jì)周期出于FPGA器件的可編程性和靈活性,用它來(lái)設(shè)計(jì)一個(gè)系統(tǒng)所需時(shí)間比傳統(tǒng)方法大為縮短。FPGA器件集成度高,使用時(shí)印刷線(xiàn)路板電路布局布線(xiàn)簡(jiǎn)單。同時(shí),在樣機(jī)設(shè)計(jì)成功后,由于開(kāi)發(fā)工具先進(jìn),自動(dòng)化程度高,對(duì)其進(jìn)行邏輯修改也十分簡(jiǎn)便迅速。因此,使用FPGA器件可大大縮短系統(tǒng)的設(shè)計(jì)周期,加快產(chǎn)品投放市場(chǎng)的速度,提高產(chǎn)品的競(jìng)爭(zhēng)能力。(5)工作速度快FPGA/CPLD器件的工作速度快,一般可以達(dá)到幾百兆赫茲,遠(yuǎn)遠(yuǎn)大于DPS器件。同時(shí),使用FPGA器件后實(shí)現(xiàn)系統(tǒng)所需要的電路級(jí)數(shù)又少,因而整個(gè)系統(tǒng)的工作速度會(huì)得到提高。(6)增加系統(tǒng)的保密性能很多FPGA器件都具有加密功能,在系統(tǒng)中廣泛的使用FPGA器件可以有效防止產(chǎn)品被他人非法仿制。(7)降低成本使用FPGA器件實(shí)現(xiàn)數(shù)字系統(tǒng)設(shè)計(jì)時(shí),如果僅從器件本身的價(jià)格考慮,有時(shí)還看不出來(lái)它的優(yōu)勢(shì),但是影響系統(tǒng)成本的因素是多方面的,綜合考慮,使用FPGA的成本優(yōu)越性是很明顯的。首先,使用FPGA器件修改設(shè)計(jì)方便,設(shè)計(jì)周FPGA器件進(jìn)行系統(tǒng)設(shè)計(jì)能節(jié)約成本。期縮短,使系統(tǒng)的研制開(kāi)發(fā)費(fèi)用降低;其次,F(xiàn)PGA器件可使印刷線(xiàn)路板面積和需要的插件減少,從而使系統(tǒng)的制造費(fèi)用降低;再次,使用FPGA器件能使系統(tǒng)的可靠性提高,維修工作量減少,進(jìn)而使系統(tǒng)的維修服務(wù)費(fèi)用降低??傊?,使用FPGA器件進(jìn)行系統(tǒng)設(shè)計(jì)能節(jié)約成本[7]。3.2分布式算法3.2.1分布式算法基礎(chǔ)分布式算法(DistributedArithmetic,DA)是一項(xiàng)重要的FPGA技術(shù),它廣泛地應(yīng)用在計(jì)算積之和之中。=(3-1)進(jìn)一步假設(shè)系數(shù)是已知常數(shù),是變量。無(wú)符號(hào)DA系統(tǒng)假設(shè)變量的表示方式如下: , (3-2)其中表示的第位,而也就是的第次采樣,而內(nèi)積可以表示方式為: (3-3)重新分配求和的順序(也就是“分布式算法名稱(chēng)的由來(lái)”)其結(jié)果如下:(3-4)或者可以寫(xiě)成更為簡(jiǎn)潔的如下形式: (3-5)函數(shù)的實(shí)現(xiàn)需要特別注意。首選方法是利用一個(gè)LUT實(shí)現(xiàn)映射。也就是說(shuō)預(yù)先編程個(gè)字的一個(gè)LUT,以接受一個(gè)N位輸入向量,輸出為。各個(gè)映射都由相應(yīng)的二次冪加權(quán)并累加。利用如圖3-2所示的移位加法器就能夠有效地實(shí)現(xiàn)累加。在N次查詢(xún)循環(huán)后就能完成了對(duì)內(nèi)積y的計(jì)算[8]。圖3-2移位加法器DA體系結(jié)構(gòu)3.2.2有符號(hào)的DA系統(tǒng)下面我們要討論的是如何修復(fù)式(3-1)使之能夠處理有符號(hào)補(bǔ)碼。在補(bǔ)碼中,最高位有效位用來(lái)區(qū)別正數(shù)和負(fù)數(shù)。例如變-3的編碼是。所以我們將采用下面的(B+1)位表示方法: (3-6)與式(3-3)聯(lián)立得到輸出y的定義如下: (3-7)要實(shí)現(xiàn)有符號(hào)DA系統(tǒng),可以通過(guò)兩種選擇來(lái)修改無(wú)符號(hào)DA系統(tǒng)。這就是:(1)帶有加/減控制的累加器(2)采用具有一個(gè)額外輸入的ROM本文使用最常見(jiàn)的可轉(zhuǎn)換累加器,因?yàn)長(zhǎng)UT表中額外的輸入位還需一個(gè)兩倍字長(zhǎng)的LUT表[9]。4基于FPGA的FIR濾波器設(shè)計(jì)本章為全文的核心內(nèi)容,首先確定基于Matlab的FIR數(shù)字低通濾波器的指標(biāo)系數(shù),再利用分布式算法結(jié)構(gòu),VHDL硬件語(yǔ)言完成設(shè)計(jì)與仿真,最后實(shí)現(xiàn)硬件系統(tǒng)以及硬件測(cè)試。4.1基于Matlab的FIR數(shù)字低通濾波器抽頭系數(shù)的提取4.1.1濾波器的設(shè)計(jì)指標(biāo)采樣頻率:10MHz截止頻率:100KHz類(lèi)型:低通階數(shù):Kaiser窗函數(shù)16階系數(shù)Beta=濾波器的具體設(shè)計(jì)方法啟動(dòng)Matlab設(shè)計(jì)軟件后,依次打開(kāi)start→Toolboxes→FilterDesign→FilterDesign&AnalysisTool(FDATOOL)就可以看到如圖4-1的FDATOOL界面。選擇所需要的參數(shù)指標(biāo),就會(huì)生成FIR低通數(shù)字濾波器的特性曲線(xiàn)以及重要的幅度相位波形圖,如圖4-2、圖4-3所示,驗(yàn)證了其技術(shù)指標(biāo)。圖4-1FDATOOL界面圖4-2幅度特性曲線(xiàn)圖4-3相位特性曲線(xiàn)沖激響應(yīng)曲線(xiàn)4.1.3參數(shù)提取與量化利用Matlab軟件的FDATOOL圖形用戶(hù)界面工具,輸入設(shè)計(jì)指標(biāo)后便會(huì)自動(dòng)生成所設(shè)計(jì)的FIR低通數(shù)字濾波器的系數(shù)即抽頭數(shù),一般線(xiàn)性相位的FIR低通數(shù)字濾波器的單位沖激響應(yīng)都為實(shí)數(shù),滿(mǎn)足奇或偶對(duì)稱(chēng)的條件。所得單位沖激響應(yīng)系數(shù)如表4-1所示:表4-1FIR低通數(shù)字濾波器系數(shù)序數(shù)序列FIR濾波器的參數(shù)序數(shù)序列h(0)-0.039907834316445h(15)h(1)-0.037834962847191h(14)h(2)-0.017305968856170h(13)h(3)0.021384069718987h(12)h(4)0.072608454823592h(11)h(5)0.126467760141519h(10)h(6)0.171262675451901h(9)h(7)0.196673325528212h(8)計(jì)算的結(jié)果可通過(guò)File下的菜單中的Export命令取出,點(diǎn)擊Export打開(kāi)對(duì)話(huà)框,如圖所示,點(diǎn)擊OK可將濾波器系數(shù)數(shù)據(jù)存放到當(dāng)前工作空間,并且以Num命名。沖激系數(shù)輸出對(duì)話(huà)框保存并關(guān)閉當(dāng)前窗口回到工作空間,在命令區(qū)輸入Num回車(chē),出現(xiàn)以下圖如上圖所示,根據(jù)設(shè)計(jì)所求出的16階FIR低通數(shù)字濾波器的系數(shù)是實(shí)數(shù),而在FPGA硬件仿真中要求輸入的數(shù)據(jù)為整數(shù),因此在這里,要對(duì)系數(shù)做歸一化處理,即將h(n)擴(kuò)大=2048倍,再分別進(jìn)行四舍五入處理,最后轉(zhuǎn)化為12位二進(jìn)制補(bǔ)碼(有效位為11位,最高位為符號(hào)位)結(jié)果如下所示:h(0)=h(15)=-82h(1)=h(14)=-77h(2)=h(13)=-35h(3)=h(12)=44h(4)=h(11)=149h(5)=h(10)=259h(6)=h(9)=351h(7)=h(8)=4034.2FIR濾波器的FPGA實(shí)現(xiàn)4.2.1模塊劃分自頂向下的實(shí)現(xiàn)方法,F(xiàn)IR濾波器的模塊劃分:輸入模塊(包括移位寄存器模塊,加法與地址碼形成模塊)、查找表模塊樹(shù)狀移位加法器模塊、控制模塊和包含參數(shù)的程序包。整個(gè)設(shè)計(jì)的層次結(jié)構(gòu)如圖4-4所示:圖4-4FIR濾波器的結(jié)構(gòu)框圖各模塊實(shí)現(xiàn)的功能:各模塊實(shí)現(xiàn)的功能:(1)輸入模塊,輸入模塊是完成對(duì)輸入信號(hào)的處理,為后續(xù)電路做準(zhǔn)備。它主要由移位寄存器和加法器與地址碼形成模塊組成。(2)查找表模塊,查找表模塊的功能是對(duì)輸入模塊產(chǎn)生的地址碼對(duì)應(yīng)成輸出值。查找表模塊由4個(gè)LUT和加法模塊組成。(3)樹(shù)樁移位加法器模塊,將LUT的輸出值做樹(shù)狀移位加法運(yùn)算。(4)控制模塊,控制模塊產(chǎn)生其他模塊的控制信號(hào),實(shí)現(xiàn)對(duì)輸入模塊、移位寄存器模塊、查找表模塊,鎖存模塊的控制,使各模塊按照一定的時(shí)序依次執(zhí)行各自的功能,從而完成濾波。它主要由控制器單元和計(jì)數(shù)器單元組成。4.2.2FIR濾波器各模塊的實(shí)現(xiàn)(1)板載頻率分頻本設(shè)計(jì)所用到的系統(tǒng)板上的晶振頻率是50MHz,而設(shè)計(jì)用到的是10MHz,這樣就要進(jìn)行分頻。CycloneII系列FPGA提供兩個(gè)嵌入式鎖相環(huán)。在圖形編輯模式下輸入ALTPLL就可以看到如圖4-5(a)所示的界面,設(shè)置設(shè)計(jì)所需的參數(shù)就可以實(shí)現(xiàn)分頻。本設(shè)計(jì)產(chǎn)生的分頻模塊圖標(biāo)如圖4-5(b)所示。圖4-5(a)ALTPLL界面圖4-5(b)分頻模塊(2)數(shù)據(jù)預(yù)處理--輸入信號(hào)轉(zhuǎn)換進(jìn)程,對(duì)輸入的二進(jìn)制原碼轉(zhuǎn)換為二進(jìn)制補(bǔ)碼輸出--加此進(jìn)程的目的是方便仿真,硬件實(shí)現(xiàn)時(shí)不用libraryieee;useieee.std_logic_1164.all;useieee.std_logic_unsigned.all;entitysigned_bumaisport(X_in : in std_logic_vector(7downto0);輸入clk : in std_logic;--輸入信號(hào)50MHzbuma : outstd_logic_vector(7downto0)--補(bǔ)碼輸出);endsigned_buma;architecturearcofsigned_bumaissignaltemp:std_logic_vector(7downto0);--中間信號(hào)signalb:std_logic;--中間信號(hào)beginb<=X_in(7);a:process(clk)beginifclk'eventandclk='1'then ifb='1'then temp<=(X_in(7)&(notX_in(6))&(notX_in(5))&(notX_in(4))& (notX_in(3))&(notX_in(2))&(notX_in(1))&(notX_in(0)))+'1'; else temp<=X_in; endif;endif;endprocess;buma<=temp;endarc;(3)輸入模塊輸入模塊由移位寄存器和加法器與地址碼形成模塊組成。移位寄存器模塊實(shí)現(xiàn)對(duì)并行輸入信號(hào)的延遲輸出,其寄存器的個(gè)數(shù)由FIR濾波器的階數(shù)決定。加法與地址碼形成模塊首先實(shí)現(xiàn)B(i)=X(i)+X(N-i)的運(yùn)算,即考慮了濾波器系數(shù)的對(duì)稱(chēng)性,把與相同兩個(gè)濾波系數(shù)相乘的兩個(gè)采樣值預(yù)先相加,以減少硬件規(guī)模[10]。移位寄存器模塊的VHDL代碼如下所示:libraryieee;useieee.std_logic_1164.all;延時(shí)entitydelayisport( X_in :in std_logic_vector(7downto0);--濾波器輸入 clk :in std_logic;--輸入時(shí)鐘 a0,a1,a2,a3,a4,a5,a6,a7:bufferstd_logic_vector(7downto0);--寄存器 a8,a9,a10,a11,a12,a13,a14,a15:bufferstd_logic_vector(7downto0)--寄存器);enddelay;architectureoneofdelayisbeginprocess(clk)beginifclk'eventandclk='1'thena15<=a14; a14<=a13; a13<=a12; a12<=a11; a11<=a10; a10<=a9; a9<=a8; a8<=a7; a7<=a6; a6<=a5; a5<=a4; a4<=a3; a3<=a2; a2<=a1; a1<=a0; a0<=X_in;endif;endprocess;endone;圖4-6移位寄存器仿真圖圖4-6是延時(shí)進(jìn)程的仿真圖,由圖可以看出每來(lái)一個(gè)脈沖,輸入信號(hào)就會(huì)向后移位一次。加法與地址碼形成模塊具體程序如下:libraryieee;useieee.std_logic_1164.all;useieee.std_logic_signed.all;useieee.std_logic_arith.all;--輸入預(yù)加和地址碼產(chǎn)生entityAddressisport(a0,a1,a2,a3,a4,a5,a6,a7: instd_logic_vector(7downto0);--輸入寄存器a8,a9,a10,a11,a12,a13,a14,a15: instd_logic_vector(7downto0);--輸入寄存器clk :instd_logic;--輸入時(shí)鐘y0,y1,y2,y3,y4,y5,y6,y7,y8:outstd_logic_vector(7downto0));--地址輸出endAddress;architecturearcofAddressissignalb0,b1,b2,b3,b4,b5,b6,b7:std_logic_vector(8downto0);beginb0<=(a0(0)&a0)+(a8(0)&a8);b1<=(a1(0)'&a1)+(a9(0)&a9);b2<=(a2(0)&a2)+(a10(0)&a10);b3<=(a3(0)&a3)+(a11(0)&a11);b4<=(a4(0)&a4)+(a12(0)&a12);b5<=(a5(0)&a5)+(a13(0)&a13);b6<=(a6(0)&a6)+(a14(0)&a14);b7<=(a7(0)&a7)+(a15(0)&a15);process(clk)beginifclk'eventandclk='1'then--下面產(chǎn)生的8位位矢量將作為L(zhǎng)UT的地址 y0<=b7(0)&b6(0)&b5(0)&b4(0)&b3(0)&b2(0)&b1(0)&b0(0); y1<=b7(1)&b6(1)&b5(1)&b4(1)&b3(1)&b2(1)&b1(1)&b0(1); y2<=b7(2)&b6(2)&b5(2)&b4(2)&b3(2)&b2(2)&b1(2)&b0(2); y3<=b7(3)&b6(3)&b5(3)&b4(3)&b3(3)&b2(3)&b1(3)&b0(3); y4<=b7(4)&b6(4)&b5(4)&b4(4)&b3(4)&b2(4)&b1(4)&b0(4); y5<=b7(5)&b6(5)&b5(5)&b4(5)&b3(5)&b2(5)&b1(5)&b0(5); y6<=b7(6)&b6(6)&b5(6)&b4(6)&b3(6)&b2(6)&b1(6)&b0(6); y7<=b7(7)&b6(7)&b5(7)&b4(7)&b3(7)&b2(7)&b1(7)&b0(7); y8<=b7(8)&b6(8)&b5(8)&b4(8)&b3(8)&b2(8)&b1(8)&b0(8);endif;endprocess;endarc;加法與地址碼形成單元仿真圖(4)查找表模塊輸入模塊形成9組8位地址碼,如果直接建立LUT,則LUT的規(guī)模較大,為個(gè)字,為了節(jié)約FPGA資源并且簡(jiǎn)化表格深度,本文使用了8位地址線(xiàn)LUT分割技術(shù),分成2個(gè)4位地址線(xiàn)的LUT[11]。加法模塊實(shí)現(xiàn)高4位LUT與低4位LUT輸出值相加后得出8位地址碼的輸出值。低四位和高四位LUT如表4-2所示:表4-2(a)地址低4位LUTD3D2D1D0函數(shù)值000000001h(0)0010h(1)0011h(0)+h(1)0100h(2)0101h(2)+h(0)…………1111h(0)+h(1)+h(2)+h(3)表4-2(b)地址高4位LUTD7D6D5D4函數(shù)值000000001h(4)0010h(5)0011h(4)+h(5)0100h(6)0101h(6)+h(4)…………1111h(4)+h(5)+h(6)+h(7)低4位LTU程序如下,其余LUT(包括補(bǔ)碼輸出LUT)見(jiàn)附件。libraryieee;useieee.std_logic_1164.all;packageFIR_ROM1isfunctionLUT1(y: instd_logic_vector(3downto0)) returnstd_logic_vector;endFIR_ROM1;packagebodyFIR_ROM1isfunctionLUT1(y: instd_logic_vector(3downto0)) returnstd_logic_vectorisvariablem:std_logic_vector(11downto0);begincaseyiswhen"0000"=>m:=x"000";when"0001"=>m:=x"009";when"0010"=>m:=x"ff9";when"0011"=>m:=x"002";when"0100"=>m:=x"fe0";when"0101"=>m:=x"fe9";when"0110"=>m:=x"fd9";when"0111"=>m:=x"fe2";when"1000"=>m:=x"03c";when"1001"=>m:=x"045";when"1010"=>m:=x"035";when"1011"=>m:=x"03e";when"1100"=>m:=x"01c";when"1101"=>m:=x"025";when"1110"=>m:=x"015";when"1111"=>m:=x"01e";whenothers=>m:=x"000";endcase;returnm;endLUT1;endFIR_ROM1;高四位和低四位LUT輸出數(shù)據(jù)要拼在一起,具體程序如下:libraryieee;useieee.std_logic_1164.all;useieee.std_logic_signed.all;useieee.std_logic_arith.all;usework.FIR_ROM1.all;usework.FIR_ROM2.all;usework.FIR_ROM3.all;usework.FIR_ROM4.all;entityfirromisport( ADD0,ADD1,ADD2,ADD3,ADD4:instd_logic_vector(7downto0);-- ADD5,ADD6,ADD7,ADD8: instd_logic_vector(7downto0); clk: instd_logic;--輸入時(shí)鐘50MHz f0,f1,f2,f3,f4,f5,f6,f7,f8: outstd_logic_vector(12downto0) );endfirrom;architecturearcoffirromissignalm0,m1,m2,m3,m4,m5,m6,m7,m8:std_logic_vector(11downto0);signalm00,m11,m22,m33,m44,m55,m66,m77,m88:std_logic_vector(11downto0);begin--下面的語(yǔ)句是把高四位輸出和低四位輸出拼起來(lái)m0<=LUT2(ADD0(7downto4));m00<=LUT1(ADD0(3downto0));m1<=LUT2(ADD1(7downto4));m11<=LUT1(ADD1(3downto0));m2<=LUT2(ADD2(7downto4));m22<=LUT1(ADD2(3downto0));m3<=LUT2(ADD3(7downto4));m33<=LUT1(ADD3(3downto0));m4<=LUT2(ADD4(7downto4));m44<=LUT1(ADD4(3downto0));m5<=LUT2(ADD5(7downto4));m55<=LUT1(ADD5(3downto0));m6<=LUT2(ADD6(7downto4));m66<=LUT1(ADD6(3downto0));m7<=LUT2(ADD7(7downto4));m77<=LUT1(ADD7(3downto0));m8<=LUT2BU(ADD8(7downto4));m88<=LUT1BU(ADD8(3downto0));process(clk)beginifclk'eventandclk='1'then f0<=(m0(11)&m0)+(m00(11)&m00);f1<=(m1(11)&m1)+(m11(11)&m11); f2<=(m2(11)&m2)+(m22(11)&m22);f3<=(m3(11)&m3)+(m33(11)&m33); f4<=(m4(11)&m4)+(m44(11)&m44);f5<=(m5(11)&m5)+(m55(11)&m55); f6<=(m6(11)&m6)+(m66(11)&m66);f7<=(m7(11)&m7)+(m77(11)&m77); f8<=(m8(11)&m8)+(m88(11)&m88);endif;endprocess;endarc;(5)樹(shù)狀移位加法器模塊樹(shù)狀移位加法模塊,通過(guò)一個(gè)樹(shù)狀的移位加法,最后實(shí)現(xiàn)卷積運(yùn)算。本文設(shè)計(jì)采用并行移位加法,提高了執(zhí)行速度,但付出了硬件資源的大量消耗代價(jià)。具體如下:libraryieee;useieee.std_logic_1164.all;useieee.std_logic_signed.all;useieee.std_logic_arith.all;entityADDisport(m0,m1,m2,m3,m4,m5,m6,m7,m8:instd_logic_vector(12downto0);--數(shù)據(jù)輸入(由查找表輸出) clk:instd_logic;--輸入時(shí)鐘10MHz y:outstd_logic_vector(23downto0)--數(shù)據(jù)輸出);endADD;architecturearcofADDissignaln0,n1,n2,n3:std_logic_vector(14downto0);--中間結(jié)果寄存器signalp0,p1:std_logic_vector(17downto0);--中間結(jié)果寄存器signalq:std_logic_vector(22downto0);--中間結(jié)果寄存器signalq1:std_logic_vector(23downto0);--中間結(jié)果寄存器beginprocess(clk)--累加進(jìn)程beginifclk'eventandclk='1'then n0<=(m2(12)&m2&'0')+(m1(12)&m1(12)&m1); n1<=(m4(12)&m4&'0')+(m3(12)&m3(12)&m3); n2<=(m6(12)&m6&'0')+(m5(12)&m5(12)&m5); n3<=(m8(12)&m8&'0')+(m7(12)&m7(12)&m7); p0<=(n1(14)&n1&"00")+(n0(14)&n0(14)&n0(14)&n0); p1<=(n3(14)&n3&"00")+(n2(14)&n2(14)&n2(14)&n2); q<=(p1(17)&p1&"0000")+(p0(17)&p0(17)&p0(17)&p0(17)&p0(17)&p0); q1<=q&'0'+(m0(12)&m0(12)&m0(12)&m0(12)&m0(12)&m0(12)&m0(12)&m0(12)&m0(12)&m0(12)&m0(12)&m0);endif;endprocess;y<=q1(20downto13);--此處輸出就是濾波器的最終計(jì)算結(jié)果。endarc;樹(shù)狀移位加法器模塊的VHDL設(shè)計(jì)中,雖然“+”的運(yùn)算是在signed庫(kù)中完成的,但仍要關(guān)注每個(gè)加數(shù)的符號(hào)位的擴(kuò)展問(wèn)題,否則會(huì)出錯(cuò)。(6)鎖存輸出模塊DA算法的輸出值是多位二進(jìn)制的結(jié)果,本文設(shè)計(jì)運(yùn)算結(jié)果是24位,根據(jù)要求輸出是8位,鎖存模塊將輸出結(jié)果進(jìn)行去舍,以滿(mǎn)足設(shè)計(jì)要求。具體做法是根據(jù)邏輯仿真的邏輯圖截取最高的8位有效位即可。如果一種仿真時(shí)輸出如圖4-6所示的波形,可知y2[23downto16]的位置上都不存在數(shù)據(jù)。那么所存輸出應(yīng)該是y2[15downto8]。圖4-6一種仿真結(jié)果4.2.3FIR濾波器的頂層設(shè)計(jì)圖4-7為FIR濾波器的頂層設(shè)計(jì)圖。圖4-7FIR濾波器的頂層設(shè)計(jì)文件FIR濾波器的工作過(guò)程說(shuō)明如下:完成一次卷積運(yùn)算需要7個(gè)工作狀態(tài),系統(tǒng)狀態(tài)圖如下:S0:輸入信號(hào)并行進(jìn)入移位寄存器,實(shí)現(xiàn)信號(hào)的延遲;S1:根據(jù)系數(shù)的對(duì)稱(chēng)性,實(shí)現(xiàn)B(i)=X(i)+X(N-i),并形成8位地址碼;其中S0、S1狀態(tài)是在輸入模塊完成的。S2:根據(jù)地址碼對(duì)應(yīng)LUT函數(shù)值;S2狀態(tài)在查找表模塊完成的。S3-S6:LUT的輸出數(shù)值樹(shù)狀移位相加,得出卷積結(jié)果;這是個(gè)4層次的樹(shù)狀的移位加過(guò)程,是在樹(shù)狀移位加法模塊中完成??紤]到硬件條件的限制,我們的D/A轉(zhuǎn)換器只有8位,所以還要添加鎖存模塊,取舍卷積結(jié)果,達(dá)到設(shè)計(jì)要求的精度位數(shù)輸出。完成一次卷積需7個(gè)脈沖周期,即從數(shù)據(jù)輸入到數(shù)據(jù)輸出需7個(gè)脈沖周期,但采用流水線(xiàn)工作方式,可以認(rèn)為,每個(gè)脈沖上升沿并行8位數(shù)據(jù)輸入,同時(shí)并行8位數(shù)據(jù)輸出。所謂流水線(xiàn)技術(shù)是針對(duì)連續(xù)輸入數(shù)據(jù)流的系統(tǒng)而言的。它的主要含義是把整個(gè)運(yùn)算過(guò)程分解成若干段,系統(tǒng)在同一個(gè)時(shí)間可對(duì)先后輸入的數(shù)據(jù)流元素進(jìn)行不同階段的運(yùn)算。如本文設(shè)計(jì)的FIR濾波器的卷積運(yùn)算是分成7個(gè)時(shí)鐘脈沖的,系統(tǒng)在進(jìn)行本次卷積運(yùn)算的第3個(gè)時(shí)鐘脈沖的運(yùn)算同時(shí),也在進(jìn)行下一個(gè)卷積運(yùn)算的第2個(gè)時(shí)鐘脈沖的運(yùn)算。這樣雖然完成一次卷積是7個(gè)時(shí)鐘脈沖,但2個(gè)相臨的卷積運(yùn)算的完成僅相隔1個(gè)時(shí)鐘脈沖,從而大大地提高運(yùn)算速率,電路的規(guī)模也會(huì)迅速增大,這是流水線(xiàn)技術(shù)為了得到較高地運(yùn)算速率而付出的代價(jià)[12]。4.3FIR濾波器的系統(tǒng)仿真驗(yàn)證程序編譯通過(guò)之后的時(shí)序仿真對(duì)FPGA設(shè)計(jì)是十分重要的,仿真可以通過(guò)QuartusII軟件集成的SimulatorTool完成。系統(tǒng)仿真的主要目的是檢驗(yàn)設(shè)計(jì)是否被真正實(shí)現(xiàn),如果仿真存在問(wèn)題,就需要返回下層修改設(shè)計(jì)或修改參數(shù),重新進(jìn)行編譯并再次進(jìn)行系統(tǒng)仿真,直到得到正確結(jié)果。仿真及結(jié)果分析:仿真1:設(shè)計(jì)一個(gè)輸入信號(hào),其幅值為5的50kHz正弦波,以1MHz的采樣頻率對(duì)其采樣,每個(gè)周期得到20個(gè)以上的采樣點(diǎn),經(jīng)過(guò)A/D采樣量化之后的序列為:1281662002282472552512372131811441067039163212326196。QuartusII仿真波形如圖4-8所示,可以看出,在7個(gè)clkin脈沖后,得到濾波結(jié)果,且是流水線(xiàn)的輸出方式。用Matlab卷積計(jì)算并和QuartusII的仿真結(jié)果比較,如表4-3所示。表4-3結(jié)果的比較,有一定的誤差,但不是很大。誤差主要來(lái)源是:系數(shù)量化的量化誤差;計(jì)算結(jié)果的取舍誤差等。將QuartusII仿真結(jié)果經(jīng)Matlab中還原成波形,如圖4-9;QuartusII輸入50kHz正弦波X_in和通過(guò)FIR濾波器后的輸出波形y比較如圖4-10所示。此圖表明,仿真結(jié)果正確,50kHz正弦波通過(guò)了FIR濾波器。圖4-8輸入50kHz正弦序列X_in通過(guò)FIR濾波器的QuartusII仿真輸出y序列圖4-9Matlab輸入50kHz正弦序列X_in和通過(guò)FIR濾波器后的輸出序列y比較圖圖4-10QuartusII輸入50kHz正弦波X_in和通過(guò)FIR濾波器后的輸出波形y比較圖表4-3輸入50kHz正弦序列x(n)的Matlab卷積計(jì)算結(jié)果與QuartusII的仿真結(jié)果比較序號(hào)輸入x(n)Matlab計(jì)算結(jié)果QuartusII計(jì)算結(jié)果01281321321166187186220022022032282392394247251251525525425462512452457237226226821319719791811631621014412512511106878712705353133926261416881531116255171221201832464519617877仿真2:再設(shè)計(jì)一個(gè)輸入信號(hào),其幅值為3.55的50kHz方波,以1MHz的采樣頻率對(duì)其采樣,每個(gè)周期得到20個(gè)采樣點(diǎn),經(jīng)過(guò)A/D采樣量化之后的序列為:22222222222222222222204204204204204204204204204204。QuartusII仿真波形如圖5-11所示,可以看出,在7個(gè)clkin脈沖后,得到濾波結(jié)果,且是流水線(xiàn)的輸出方式。用Matlab卷積計(jì)算并和QuartusII的仿真結(jié)果比較,如表4-4所示。表4-4結(jié)果的比較,有一定的誤差,但不是很大。誤差主要來(lái)源是:系數(shù)量化的量化誤差;計(jì)算結(jié)果的取舍誤差等。將QuartusII仿真結(jié)果經(jīng)Matlab中還原成波形,如圖4-12;QuartusII輸入50kHz方波X_in和通過(guò)FIR濾波器后的輸出波形y比較如圖4-13所示。此圖表明,仿真結(jié)果正確,50kHz方波被濾波器改變了頻率成分。圖4-11輸入50kHz方波序列X_in通過(guò)FIR濾波器的QuartusII仿真輸出y序列圖4-12Matlab輸入50kHz方波序列X_in和通過(guò)FIR濾波器后的輸出序列y比較圖圖4-13QuartusII輸入50kHz方波序列X_in和通過(guò)FIR濾波器后的輸出序列y比較圖表4-4輸入50kHz方波序列x(n)的Matlab卷積計(jì)算結(jié)果與QuartusII的仿真結(jié)果比較序號(hào)輸入x(n)Matlab計(jì)算結(jié)果QuartusII計(jì)算結(jié)果02232122111122219193222323422232352224226222121722121282212129224645102041131131120418018012204214213132042142131420420420415204199201162042042031720421421318204214213192041801804.4系統(tǒng)硬件4.4.1系統(tǒng)框圖圖4-14系統(tǒng)框圖系統(tǒng)硬件框圖如圖4-14所示。主要由A/D轉(zhuǎn)換、FPGA、JTAG和D/A轉(zhuǎn)換四部分組成。4.4.2部分芯片簡(jiǎn)介(1)FPGA芯片本設(shè)計(jì)采用的FPGA芯片是ALTERA公司出品的EP2C5T144C8。ALTERA公司2004年推出了新款CycloneII系列FPGA器件。CycloneIIFPGA的成本比第一代Cyclone器件低30%,邏輯容量大了三倍多,可滿(mǎn)足低成本大批量應(yīng)用需求[13]。JTAG下載器采用ALTERA公司出品的USBBLASTER。具有在線(xiàn)編程調(diào)試功能。(2)A/D轉(zhuǎn)換芯片本設(shè)計(jì)使用的高速AD芯片是由AD公司推出的8位,最大采用率為32MSPS的AD9280芯片。時(shí)序如圖4-15所示圖4-15AD9280時(shí)序圖根據(jù)圖4-16的配置,我們將AD電壓輸入范圍設(shè)置為:0V~2V圖4-16內(nèi)部參考,2Vp~p在信號(hào)進(jìn)入AD芯片之前,我們用一片AD8056芯片構(gòu)建了衰減電路,接口的輸入范圍是-5V~+5V(10Vpp)。衰減以后,輸入范圍滿(mǎn)足AD芯片的輸入范圍(0~2V)。轉(zhuǎn)換公式如下:當(dāng)輸入信號(hào)=5(V)的時(shí)候,輸入到AD的信號(hào)=2(V);當(dāng)輸入信號(hào)=-5(V)的時(shí)候,輸入到AD的信號(hào)=0(V);(3)D/A轉(zhuǎn)換芯片我們使用的高速DA芯片是AD公司推出的AD9708。AD9708是8位,125MSPS的DA轉(zhuǎn)換芯片,內(nèi)置1.2V參考電壓,差分電流輸出。芯片時(shí)序圖如圖4-17所示圖4-17AD9708時(shí)序圖AD9708芯片差分輸出以后,為了防止噪聲干擾,電路中接入了7階巴特沃斯低通濾波器,帶寬為40MHz。濾波參數(shù)如圖4-18所示 圖4-18濾波參數(shù)原理 濾波器之后,我們使用了2片高性能145MHz帶寬的運(yùn)放AD8056,實(shí)現(xiàn)差分變單端,以及幅度調(diào)節(jié)等功能,使整個(gè)電路性能得到了最大限度的提升。幅度調(diào)節(jié),使用的是5K的電位器,最終的輸出范圍是-5V~5V(10Vpp)。4.4.3A/D、D/A電路原理圖圖4-19AD、DA電路原理圖A/D、D/A電路原理圖如圖4-19所示。值得注意的是,電路中D/A輸出端接了一個(gè)5K電位器做調(diào)幅,由于電位器的精度不是很高,可能會(huì)導(dǎo)致最終的輸出信號(hào)的峰峰值達(dá)不到10Vpp,出現(xiàn)波形削頂。這種情況并不是濾波器輸出的信號(hào)問(wèn)題。4.5測(cè)試波形及現(xiàn)場(chǎng)照片測(cè)試波形如圖4-20到4-21所示,圖4-22為現(xiàn)場(chǎng)測(cè)試照片圖4-1950Hz+500KHz濾波效果 縮小示波器時(shí)間分度觀(guān)察圖4-20100Hz+500KHz濾波效果 縮小示波器時(shí)間分度觀(guān)察圖4-22現(xiàn)場(chǎng)測(cè)試照片4.6數(shù)據(jù)誤差分析FIR數(shù)字濾波器的濾波系數(shù),輸入輸出序列值和運(yùn)算過(guò)程中的中間結(jié)果,都是用有限字長(zhǎng)的二進(jìn)制表示。往往位數(shù)越長(zhǎng),數(shù)據(jù)的精度越高。這樣,不論是選用串行DA算法還是并行DA算法,都要求更大的硬件資源,如果對(duì)運(yùn)算速度還有限制的話(huà),則串行DA算法不能滿(mǎn)足要求。因此,在數(shù)據(jù)位數(shù)有限的情況下,便會(huì)產(chǎn)生誤差,使輸出結(jié)果偏離預(yù)期值,并使系統(tǒng)不能滿(mǎn)足預(yù)期的設(shè)計(jì)要求。這種誤差主要包括三個(gè)方面:(1)A/D轉(zhuǎn)換器的量化誤差A(yù)/D轉(zhuǎn)換器用于將模擬信號(hào)轉(zhuǎn)換為一定位寬的數(shù)字信號(hào)。數(shù)字信號(hào)可看作模擬信號(hào)的一種逼近,因而會(huì)產(chǎn)生偏差,我們把這種偏差稱(chēng)為量化偏差,用符號(hào)表示。的存在降低了輸出端的信噪比。適當(dāng)?shù)卦黾覣/D轉(zhuǎn)換器的轉(zhuǎn)換位數(shù),會(huì)增加輸出端的信噪比,以滿(mǎn)足實(shí)際的需求。(2)系數(shù)量化偏差FIR濾波器在實(shí)際實(shí)現(xiàn)時(shí),要對(duì)所有的濾波器系數(shù)進(jìn)行量化以有限長(zhǎng)的二進(jìn)制碼表示。這樣,便會(huì)產(chǎn)生由系數(shù)量化而引起的誤差,這種誤差會(huì)引起頻率響應(yīng)的變動(dòng),進(jìn)而不能滿(mǎn)足實(shí)際需要。系數(shù)量化誤差和FIR濾波器的結(jié)構(gòu)及儲(chǔ)存系數(shù)的寄存器的長(zhǎng)度有關(guān)。(3)中間結(jié)果的舍入誤差由于本設(shè)計(jì)中采用的是定點(diǎn)制運(yùn)算,在預(yù)相加和移位累加的過(guò)程中,會(huì)使得到結(jié)果的尾數(shù)增長(zhǎng),這時(shí)需要進(jìn)行尾數(shù)處理,在這個(gè)過(guò)程中便引入了誤差。例如,在本次設(shè)計(jì)中,預(yù)相加模塊的輸入數(shù)據(jù)為8位,為保證結(jié)果正確性,需要先擴(kuò)展一位符號(hào)位,然后再相加,得到9位的結(jié)果,而我們需要的是8位字長(zhǎng)的結(jié)果,所以需要截取高8位,也就是將預(yù)相加模塊的輸出結(jié)果縮小2倍,使得數(shù)據(jù)精度隨之減小。而后在移位相加過(guò)程中,將輸出結(jié)果擴(kuò)大2倍,由于數(shù)據(jù)精度發(fā)生變化,而產(chǎn)生了誤差[14]。結(jié)論在介紹FIR濾波
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 球磨機(jī)課程設(shè)計(jì)感想
- 物業(yè)服務(wù)方案課程設(shè)計(jì)
- 施工微課程設(shè)計(jì)
- 濾波器課程設(shè)計(jì)
- 海運(yùn)操作流程課程設(shè)計(jì)
- 有關(guān)蔬菜的烹飪課程設(shè)計(jì)
- 工程制圖cad課程設(shè)計(jì)
- 答司馬諫議書(shū)課程設(shè)計(jì)
- 煙草制品零售業(yè)務(wù)知識(shí)競(jìng)賽考核試卷
- 手勢(shì)視頻制作課程設(shè)計(jì)
- 2023年副主任醫(yī)師(副高)-神經(jīng)內(nèi)科學(xué)(副高)考試歷年真題薈萃帶答案
- 建筑施工安全檢查標(biāo)準(zhǔn)jgj592011圖解
- 鍋爐過(guò)熱蒸汽溫度控制系統(tǒng)課程設(shè)計(jì)
- 四川省成都市2021-2022學(xué)年高一(上)期末調(diào)研考試物理試題 Word版
- OFM軟件的一些使用技巧
- 國(guó)開(kāi)電大《工程數(shù)學(xué)(本)》形成性考核作業(yè)5答案
- 《公司金融》模擬試題答案 東北財(cái)經(jīng)大學(xué)2023年春
- 2023-2024學(xué)年四川省樂(lè)山市小學(xué)數(shù)學(xué)四年級(jí)上冊(cè)期末??伎荚囶}
- 嚴(yán)蔚敏版數(shù)據(jù)結(jié)構(gòu)課后習(xí)題答案-完整版
- 工程進(jìn)度管理制度
- DL-T 870-2021 火力發(fā)電企業(yè)設(shè)備點(diǎn)檢定修管理導(dǎo)則
評(píng)論
0/150
提交評(píng)論