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

下載本文檔

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

文檔簡(jiǎn)介

基于DSP的FIR濾波器的設(shè)計(jì)與實(shí)現(xiàn)PAGEPAGE17/view/e6e44f4c2e3f/view/157f7f35eefdc8d376ee325f基于DSP的FIR濾波器的設(shè)計(jì)和實(shí)現(xiàn)摘要:DSP技術(shù)一般指將DSP處理器用于完成數(shù)字信號(hào)處理的方法與技術(shù)。目前的DSP芯片以其強(qiáng)大的數(shù)據(jù)處理功能在通信和其他信號(hào)處理領(lǐng)域得到廣泛注意并已成為開發(fā)應(yīng)用的熱點(diǎn)技術(shù)。許多領(lǐng)域?qū)τ跀?shù)字信號(hào)處理器的應(yīng)用都是圍繞美國(guó)德州儀器所開發(fā)的DSP處理器來(lái)進(jìn)行的。DSP芯片是一種特別適合于進(jìn)行數(shù)字信號(hào)處理運(yùn)算的微處理器。主要應(yīng)用是實(shí)時(shí)快速的實(shí)現(xiàn)各種數(shù)字信號(hào)處理算法,如卷積及各種變換等。其中利用DSP來(lái)實(shí)現(xiàn)數(shù)字濾波器就是很重要的一種應(yīng)用,本文深入研究基于美國(guó)德州儀器公司(TI)TMS320C5410DSP芯片的濾波器系統(tǒng)軟件實(shí)現(xiàn)方法,用窗口設(shè)計(jì)法實(shí)現(xiàn)FIR濾波器,給出了MATLAB仿真結(jié)果,并在以TITMS320C5410為微處理器的DSK上實(shí)現(xiàn),實(shí)驗(yàn)結(jié)果表明濾波結(jié)果效果良好,達(dá)到了預(yù)期的性能指標(biāo),用時(shí)間抽取法實(shí)現(xiàn)的FFT/IFFT算法,介紹了自適應(yīng)濾波器的基本原理及應(yīng)用,并對(duì)LMS算法進(jìn)行了深入的研究。關(guān)鍵詞:DSP;TMS320C5410;FIR濾波器;FFT/IFFT;自適應(yīng)濾波器TheDesignandImplementionofFIRFilterBasedonDSP’sAbstract:DSPtechnologymeansthetechnologytoaccomplishdigitalsignalprocessing.NowadaysDSP’aregettingmoreandmoreattentionsintheinformationfield,duetoitspowerfulsignalprocessingability,becomingahot-pointtechniqueincommunicationandotherrelatingsignalprocessingareas.DSPchipisespeciallyfitfordigitalsignalprocessing,itsmainapplicationisrealizingallkindsofdigitalsignalprocessingarithmeticsuchasclovehitchcorrelation、allkindsoftransformsetc.RealizingdigitalfilterswithDSPisanimportantapplication.Thepaperdiscussesthefilter’ssoftwarerealizationbasedonTMS320C5410andfinishedthehardwaresystemofnoise-restraining.ThearithmeticsystemwascompiledwithCandassemblelanguage,Themainworksaccomplishedareasfollowing:realizationofFIRfilterwithwindowfunction,andtoreachthesimulationresultthroughMATLAB,alsorealizationonTMS320C5410chip,theresultofexperimenttomakeclearthattheeffectisfine.realizationofFFT/IFFTarithmeticwithtime-drawing.Thepaperbeginswiththeprincipleofadptivefilter.Basedontheprinciple,LeastMeanSquareisresearcheddeeply.Keywords:DSP;TMS320C5410;FIRFilter;FFT/IFFT;AdaptiveFiltering第1章緒論1.1引言隨著信息時(shí)代和數(shù)字世界的到來(lái),數(shù)字信號(hào)處理已成為如今一門極其重要的學(xué)科和技術(shù)領(lǐng)域。數(shù)字信號(hào)處理在通信、語(yǔ)音、圖像、自動(dòng)控制、雷達(dá)、軍事、航空航天、醫(yī)療和家用電器等眾多領(lǐng)域得到了廣泛的應(yīng)用。數(shù)字信號(hào)處理(DSP)包括兩重含義:數(shù)字信號(hào)處理技術(shù)(DigitalSignalProcessing)和數(shù)字信號(hào)處理器(DigitalSignalProcessor)。數(shù)字信號(hào)處理(DSP)是利用計(jì)算機(jī)或?qū)S锰幚碓O(shè)備,以數(shù)值計(jì)算的方法、對(duì)信號(hào)進(jìn)行采集、濾波、增強(qiáng)、壓縮、估值和識(shí)別等加工處理,借以達(dá)到提取信息和便于應(yīng)用的目的,其應(yīng)用范圍涉及幾乎所有的工程技術(shù)領(lǐng)域。在數(shù)字信號(hào)處理的應(yīng)用中,數(shù)字濾波器很重要而且得到了廣泛的應(yīng)用。按照數(shù)字濾波器的特性,它可以被分為線性與非線性、因果與非因果、無(wú)限長(zhǎng)沖擊響應(yīng)(IIR)與有限長(zhǎng)沖擊響應(yīng)(FIR)等等。其中,線性時(shí)不變的數(shù)字濾波器是最基本的類型;而由于數(shù)字系統(tǒng)可以對(duì)延時(shí)器加以利用,因此可以引入一定程度的非因果性,獲得比傳統(tǒng)的因果濾波器更靈活強(qiáng)大的特性;IIR濾波器的特征是具有無(wú)限持續(xù)時(shí)間沖激響應(yīng),這種濾波器一般需要用遞歸模型來(lái)實(shí)現(xiàn),因而有時(shí)也稱之為遞歸濾波器,而FIR濾波器的沖激響應(yīng)只能延續(xù)一定時(shí)間,在工程實(shí)際中可以采用遞歸的方式實(shí)現(xiàn),也可以采用非遞歸的方式實(shí)現(xiàn),但其結(jié)構(gòu)主要還是是非遞歸結(jié)構(gòu),沒有輸出到輸入的反饋,并且FIR濾波器很容易獲得嚴(yán)格的線性相位特性,避免被處理信號(hào)產(chǎn)生相位失真,而線性相位體現(xiàn)在時(shí)域中僅僅是h(n)在時(shí)間上的延遲,這個(gè)特點(diǎn)在圖像信號(hào)處理、數(shù)據(jù)傳輸?shù)炔ㄐ蝹鬟f系統(tǒng)中是非常重要的,且不會(huì)發(fā)生阻塞現(xiàn)象,能避免強(qiáng)信號(hào)淹沒弱信號(hào),因此特別適合信號(hào)強(qiáng)弱相差懸殊的情況。相對(duì)于IIR濾波器,F(xiàn)IR濾波器有著易于實(shí)現(xiàn)和系統(tǒng)絕對(duì)穩(wěn)定的優(yōu)勢(shì),因此得到廣泛的應(yīng)用;對(duì)于時(shí)變系統(tǒng)濾波器的研究則導(dǎo)致了以卡爾曼濾波為代表的自適應(yīng)濾波理論的產(chǎn)生。自適應(yīng)濾波即利用前一時(shí)刻已獲得的濾波器參數(shù)等結(jié)果,自動(dòng)地調(diào)節(jié)(更新)現(xiàn)時(shí)刻的濾波器參數(shù),以適應(yīng)信號(hào)和噪聲未知的統(tǒng)計(jì)特性,或者隨時(shí)間變化的統(tǒng)計(jì)特性,從而實(shí)現(xiàn)最優(yōu)濾波。幾種主要的自適應(yīng)濾波器為:最小均方(LMS)自適應(yīng)濾波器、遞推最小二乘(RLS)自適應(yīng)濾波器、格型自適應(yīng)濾波器、無(wú)限沖擊響應(yīng)(IIR)自適應(yīng)濾波器。而自適應(yīng)去噪電路是信號(hào)處理領(lǐng)域一個(gè)簡(jiǎn)單應(yīng)用,一個(gè)被噪聲污染的信號(hào)借助于相關(guān)噪聲可以把信號(hào)提取出來(lái),而噪聲不斷變化,為了得到較清晰的語(yǔ)音信號(hào)必須采用自適應(yīng)去噪技術(shù),隨噪聲變化進(jìn)行自適應(yīng)濾波.濾波器自動(dòng)調(diào)整它們的系數(shù)。近些年,線性濾波方法,如Wiener濾波、Kalman濾波和自適應(yīng)濾波得到了廣泛的研究和應(yīng)用,同時(shí)一些非線性濾波方法,如小波濾波、同態(tài)濾波、中值濾波、形態(tài)濾波等都是現(xiàn)代信號(hào)處理的前沿課題,不但有重要的理論意義,而且有廣闊的應(yīng)用前景。Wiener濾波是最早提出的一種濾波方法,當(dāng)信號(hào)混有白噪聲時(shí),可以在最小均方誤差條件下得到信號(hào)的最佳估計(jì)。但是,由于求解Wiener-Hof方程的復(fù)雜性,使得Wiener濾波實(shí)際應(yīng)用起來(lái)很困難,不過(guò)Wiener濾波在理論上的意義是非常重要的,利用Wiener濾波的純一步預(yù)測(cè),可以求解信號(hào)的模型參數(shù),進(jìn)而獲得著名的Levinson算法。Kalman濾波是20世紀(jì)60年代初提出的一種濾波方法。與Wiener濾波相似,它同樣可以在最小均方誤差條件下給出信號(hào)的最佳估計(jì)。所不同的是,這種濾波技術(shù)在時(shí)域中采用遞推方式進(jìn)行,因此速度快,便于實(shí)時(shí)處理,從而得到了廣泛的應(yīng)用。Kalman濾波推廣到二維,可以用于圖像的去噪。當(dāng)假設(shè)Wiener濾波器的單位脈沖響應(yīng)為有限長(zhǎng)時(shí),可以采用自適應(yīng)濾波的方法得到濾波器的最佳響應(yīng)。由于它避開了求解Wiener-Hof方程,為某些問(wèn)題的解決帶來(lái)了極大的方便。小波濾波就是利用信號(hào)和噪聲在各自尺度下的小波變換系數(shù)有所不同的特點(diǎn),來(lái)對(duì)它們進(jìn)行分離,從而達(dá)到去除噪聲的目的。同態(tài)濾波主要用于解決信號(hào)和噪聲之間不是相加而是相乘關(guān)系時(shí)的濾波問(wèn)題。另外當(dāng)信號(hào)和噪聲之間為卷積關(guān)系的時(shí)候在一定條件下可以利用同態(tài)濾波把信號(hào)有效地分離出來(lái),由同態(tài)濾波理論引伸出的復(fù)時(shí)譜也成為現(xiàn)代信號(hào)處理中極為重要的概念。Wiener濾波、Kalman濾波和自適應(yīng)濾波都是線性濾波,線性濾波的最大缺點(diǎn)就是在消除噪聲的同時(shí),會(huì)造成信號(hào)邊緣的模糊。中值濾波是20世紀(jì)70年代提出的一種非線性濾波方法,它可以在最小絕對(duì)誤差條件下,給出信號(hào)的最佳估計(jì)。這種濾波方法的優(yōu)點(diǎn),就是能夠保持信號(hào)的邊緣不模糊。另外它對(duì)脈沖噪聲也有良好的清除作用。形態(tài)濾波是建立在集合運(yùn)算上的一種非線性濾波方法,它除了用于濾除信號(hào)中的噪聲以外,還在圖像分析中發(fā)揮了重要的作用。目前FIR濾波器的實(shí)現(xiàn)方法大致可分為三種:利用單片通用數(shù)字濾波器集成電路、DSP器件和可編程邏輯器件實(shí)現(xiàn)。單片通用數(shù)字濾波器使用方便,但由于字長(zhǎng)和階數(shù)的規(guī)格較少,不能完全滿足實(shí)際需要,使用以串行運(yùn)算為主導(dǎo)的通用DSP芯片實(shí)現(xiàn)要簡(jiǎn)單,是一種實(shí)時(shí)、快速、特別適合于實(shí)現(xiàn)各種數(shù)字信號(hào)處理運(yùn)算的微處理器,借助于通用數(shù)字計(jì)算機(jī)按濾波器的設(shè)計(jì)算法編出程序進(jìn)行數(shù)字濾波計(jì)算。由于它具有豐富的硬件資源、改進(jìn)的哈佛結(jié)構(gòu)、高速數(shù)據(jù)處理能力和強(qiáng)大的指令系統(tǒng)而在通信、航空、航天、雷達(dá)、工業(yè)控制、網(wǎng)絡(luò)及家用電器等各個(gè)領(lǐng)域得到廣泛應(yīng)用。1.2課題背景及研究意義1.2.1數(shù)字信號(hào)處理就是用數(shù)字信號(hào)處理器(DSP)來(lái)實(shí)現(xiàn)各種算法,由于具有精度高、靈活性強(qiáng)等優(yōu)點(diǎn),已廣泛應(yīng)用在數(shù)字圖像處理、數(shù)字通信、數(shù)字音響、聲納、雷達(dá)等領(lǐng)域。數(shù)字濾波技術(shù)又是進(jìn)行數(shù)字信號(hào)處理的最基本手段之一,它是對(duì)數(shù)字輸人信號(hào)進(jìn)行運(yùn)算,產(chǎn)數(shù)字輸出信號(hào),以改善信號(hào)品質(zhì),提取有用信息,或者把組合在一起的多個(gè)信號(hào)分量分離開來(lái)為目的。在信號(hào)處理領(lǐng)域中,對(duì)于信號(hào)處理的實(shí)時(shí)性、快速性的要求越來(lái)越高,因此在許多信息處理過(guò)程中,如對(duì)信號(hào)的過(guò)濾、檢測(cè)、預(yù)測(cè)等,都要廣泛地用到濾波器。其中數(shù)字濾波器具有穩(wěn)定性高、精度高、設(shè)計(jì)靈活、實(shí)現(xiàn)方便等許多突出的優(yōu)點(diǎn),避免了模擬濾波器所無(wú)法克服的電壓漂移、溫度漂移和噪聲等問(wèn)題,因而隨著數(shù)字技術(shù)的發(fā)展,用數(shù)字技術(shù)實(shí)現(xiàn)濾波器的功能越來(lái)越受到人們的注意和廣泛的應(yīng)用。而有限沖激響應(yīng)(FIR)濾波器能在設(shè)計(jì)任意幅頻特性的同時(shí)保證嚴(yán)格的線性相位特性,在示否音、數(shù)據(jù)傳輸中應(yīng)用非常廣泛。1.2.2用可編程DSP芯片實(shí)現(xiàn)數(shù)字濾波可通過(guò)修改濾波器的參數(shù)十分方便地改變?yōu)V波器的特性。因此,我們有必要對(duì)濾波器的設(shè)計(jì)方法進(jìn)行研究,理解其工作原理,優(yōu)化設(shè)計(jì)方法,設(shè)計(jì)開發(fā)穩(wěn)定性好的濾波器系統(tǒng)。我們將通過(guò)DSP設(shè)計(jì)平臺(tái),實(shí)現(xiàn)較為重要的FIR和自適應(yīng)濾波器系統(tǒng)。從而通過(guò)本課題的研究,掌握濾波器的設(shè)計(jì)技術(shù),為通信、信號(hào)處理等領(lǐng)域?qū)嵱没瘮?shù)字濾波器設(shè)計(jì)提供技術(shù)準(zhǔn)備。本科題的研究,將為今后設(shè)計(jì)以DSP為核心部件的嵌入式系統(tǒng)集成提供技術(shù)準(zhǔn)備,這不僅具有重要的理論意義,同時(shí)還具有重要的實(shí)際意義。1.3國(guó)內(nèi)外相關(guān)領(lǐng)域的研究20世紀(jì)60年代以來(lái),隨著計(jì)算機(jī)和信息技術(shù)的飛速發(fā)展,數(shù)字信號(hào)處理技術(shù)應(yīng)運(yùn)而生,并得到了迅猛的發(fā)展。當(dāng)時(shí)還沒有DSP,數(shù)字信號(hào)處理只能依靠MPU來(lái)完成。但MPU(微處理器)的速度無(wú)法滿足高速實(shí)時(shí)的要求。因此數(shù)字信號(hào)處理技術(shù)多是停留在理論上,得不到廣泛的應(yīng)用,但這為DSP的誕生打下了基礎(chǔ)。70年代至80年代初是DSP發(fā)展的第二階段。70年代初,有人提出了DSP的理論和算法基礎(chǔ)。但是直到1978,世界上第一個(gè)世界上第一枚DSP才誕生,它是由1978AMI公司發(fā)布的S2811。1979年美國(guó)Intel公司發(fā)布的商用可編程器件2920是DSP芯片的一個(gè)主要里程碑;1980年NEC公司推出的PD7720是第一個(gè)具有乘法器的商用DSP芯片。美國(guó)德州儀器公司TexasInstruments也于1982年推出了其第一代DSP芯片TMS32010及其系列產(chǎn)品,它們都是基于NMOS工藝。此時(shí)的DSP運(yùn)行速度較以前的MPU有了較大的提高,但由于制造工藝所限,體積和功耗都比較大,內(nèi)部資源較少,且價(jià)格昂貴。80年代中期直到現(xiàn)在是DSP得到了蓬勃發(fā)展并廣泛應(yīng)用的時(shí)期。80年代中期,隨著大規(guī)模集成電路技術(shù)尤其是CMOS技術(shù)的發(fā)展,基于CMOS工藝的DSP應(yīng)運(yùn)而生,體積功耗都大大減少,而存儲(chǔ)容量和運(yùn)算速度都得到成倍提高,成為語(yǔ)音處理、圖像硬件處理技術(shù)的基礎(chǔ);80年代后期,DSP運(yùn)算速度進(jìn)一步提高,應(yīng)用范圍逐步擴(kuò)大到通信、計(jì)算機(jī)領(lǐng)域。90年代直到現(xiàn)在,DSP發(fā)展最快,此時(shí)的DSP集成度極高,體積、功耗進(jìn)一步減少,內(nèi)部資源更是成倍增加,而價(jià)格卻進(jìn)一步下降。此時(shí),DSP芯片不僅在通信、計(jì)算機(jī)領(lǐng)域大顯身手,而且已擴(kuò)大到人們的學(xué)習(xí)、工作和生活的各個(gè)方面。生產(chǎn)DSP器件的公司也不斷壯大,目前,市場(chǎng)占有率前四名依次為:TexasInstruments、Lucent、AnalogDevice、Motorola。在所有生產(chǎn)DSP的公司中,TI可謂一枝獨(dú)秀,它是世界上最大的DSP供應(yīng)商,TI系列的DSP也是公認(rèn)的最成功的DSP。其DSP市場(chǎng)份額占全世界份額近50%。其產(chǎn)品覆蓋了高、中、低端幾乎所以市場(chǎng),廣泛應(yīng)用于各種領(lǐng)域。自從在1982年成功推出了其第一代DSPTMS32010及其系列產(chǎn)品TMS32011、TMS320C10/C14/C15等,TI相繼推出了第二代DSPTMS32020、TMS320C25/C26/C28,第三代DSPTMS320C30/C31/C32,第四代DSPTMS320C40/C44,第五代DSPTMS3205X/C54X/C55X及目前速度最快的第六代DSPTMS320C62X/C67X等等。DSP器件應(yīng)用面從起初的局限于軍工,航空航天等軍事領(lǐng)域,擴(kuò)展到今天的諸多電子行業(yè)及消費(fèi)類電子產(chǎn)品中。在TI公司的DSP產(chǎn)品中C1X、C2X、C2XX、C5XX、C54X、C62X等系列是定點(diǎn)運(yùn)算指令系統(tǒng)的DSP;C3X、C4X、C67X等系列是浮點(diǎn)運(yùn)算指令系統(tǒng)的DSP;AV7100、AV7110等系列是用于視頻、音頻領(lǐng)域的專用數(shù)字壓縮產(chǎn)品。1.3主要研究?jī)?nèi)容本課題是基于TI公司近年推出的高性能定點(diǎn)DSPTMS320C5410設(shè)計(jì)濾波器系統(tǒng),如:有限沖擊響應(yīng)濾波器(FIR)。本次課題的主要任務(wù),就是掌握DSP芯片開發(fā)技術(shù),完成如下工作:1、用窗函數(shù)法實(shí)現(xiàn)FIR濾波器,通過(guò)調(diào)用四種窗口函數(shù),截取不同的帶通與低通濾波原型,滿足以下性能要求:帶通濾波器:下阻帶邊緣:,;下通帶邊緣:,上通帶邊緣:,;上阻帶邊緣:,低通濾波器:,;,2、用時(shí)間抽取法實(shí)現(xiàn)FFT/IFFT算法,通過(guò)此算法,對(duì)信號(hào)進(jìn)行頻域分析、頻域處理;3、自適應(yīng)濾波器是目前數(shù)字濾波器領(lǐng)域中最為活躍的分支,討論采用經(jīng)過(guò)改進(jìn)的LMS(最小圴方誤差)算法實(shí)現(xiàn)自適應(yīng)濾波器。4、研究DSP的結(jié)構(gòu)特點(diǎn),了解TI公司的TMS3205410DSP器件,掌握DSP系統(tǒng)的構(gòu)成及軟硬件設(shè)計(jì)方法和CCS軟件的調(diào)試方法;并以TI公司的TMS3205410DSP為核心處理器,在DSK上實(shí)現(xiàn)FIR濾波器系統(tǒng)。本論文共分為五個(gè)部分,第一章為緒論部分,介紹DSP及其濾波器的發(fā)展現(xiàn)狀;第二章詳細(xì)介紹DSP的特點(diǎn)、性能指標(biāo)、軟件開發(fā)工具、指令系統(tǒng)及硬件結(jié)構(gòu);第三章介紹了FIR濾波器的設(shè)計(jì)方法,并詳細(xì)闡述了用窗口設(shè)計(jì)方法設(shè)計(jì)FIR濾波器及MATLAB實(shí)現(xiàn);第四章介紹FIR濾波器的應(yīng)用及其實(shí)現(xiàn);第五章介紹自適應(yīng)濾波器基本理論、算法及其應(yīng)用。其中,三、四章是本論文的核心部分。第2章DSP及其開發(fā)環(huán)境2.1DSP系統(tǒng)2.1.1DSP系統(tǒng)的構(gòu)成一個(gè)典型的DSP系統(tǒng)如圖2.1示。圖2.1典型的DSP系統(tǒng)圖2.1是一個(gè)用DSP做信號(hào)處理的典型框圖。由于DSP是用來(lái)對(duì)數(shù)字信號(hào)進(jìn)行處理的,所以首先必須將輸入的模擬信號(hào)變換為數(shù)字信號(hào)。于是先對(duì)輸入模擬信號(hào)進(jìn)行調(diào)整,輸出的模擬信號(hào)經(jīng)過(guò)A/D變換后變成DSP可以處理的數(shù)字信號(hào),DSP根據(jù)實(shí)際需要對(duì)其進(jìn)行相應(yīng)的處理,如FFT、卷積等;處理得到的結(jié)果仍然是數(shù)字信號(hào),可以直接通過(guò)相應(yīng)通信接口將它傳輸出去,或者對(duì)它進(jìn)行D/A變換將其轉(zhuǎn)換為模擬采樣值,最后再經(jīng)過(guò)內(nèi)插和平滑濾波就得到了連續(xù)的模擬波形模擬信號(hào)。當(dāng)然,圖中的有些環(huán)節(jié)并不是必需的。如A/D轉(zhuǎn)換,如果輸入的是數(shù)字信號(hào),就可以直接交給DSP進(jìn)行運(yùn)算。2.1.2DSP系統(tǒng)的特點(diǎn)及設(shè)計(jì)過(guò)程由于數(shù)字信號(hào)處理系統(tǒng)是以數(shù)字信號(hào)處理理論為基礎(chǔ),所以具有數(shù)字信號(hào)處理的全部?jī)?yōu)點(diǎn):(1)接口方便DSP系統(tǒng)與其它以數(shù)字技術(shù)為基礎(chǔ)的系統(tǒng)或設(shè)備都是相互兼容的,比模擬系統(tǒng)與這些系統(tǒng)接口要容易的多。(2)編程方便DSP系統(tǒng)中的可編程DSP芯片可以使設(shè)計(jì)人員在開發(fā)過(guò)程中靈活方便的進(jìn)行修改和升級(jí),可以將C語(yǔ)言與匯編語(yǔ)言結(jié)合使用。(3)具有高速性DSP系統(tǒng)的運(yùn)行較高,最新的DSP芯片運(yùn)行速度高達(dá)10GMIPS以上。(4)穩(wěn)定性好DSP系統(tǒng)以數(shù)字處理為基礎(chǔ),受周圍環(huán)境,如噪聲、溫度等的影響小、可靠性高;(5)精度高例如16位數(shù)字系統(tǒng)可以達(dá)到10-5的精度;(6)可重復(fù)性好模擬系統(tǒng)的性能受元件參數(shù)性能變化影響大,而數(shù)字系統(tǒng)基本不受影響,更便于測(cè)試、調(diào)試和大規(guī)模生產(chǎn)。(7)集成方便DSP系統(tǒng)中的數(shù)字部件有高度的規(guī)范性,便于大規(guī)模生產(chǎn)。當(dāng)然DSP也存在一定的缺點(diǎn)。例如,對(duì)于一些簡(jiǎn)單的信號(hào)處理任務(wù),如與模擬交換線的電話接口,若采用DSP則使成本增加。另外,DSP系統(tǒng)中的高速時(shí)鐘通常在幾十兆赫,可能帶來(lái)高頻干擾和電磁泄漏等問(wèn)題,而且DSP的功率消耗在系統(tǒng)中也是較大的。此外,DSP技術(shù)發(fā)展得很快,數(shù)學(xué)知識(shí)要求多,開發(fā)和調(diào)試工具還很不完善。雖然DSP系統(tǒng)還存在一些缺點(diǎn),但是隨著近兩年來(lái)DSP技術(shù)突飛猛進(jìn)的發(fā)展,成本的下降,很多問(wèn)題都得到了緩解。其突出的優(yōu)點(diǎn)已經(jīng)使其在通信、語(yǔ)音、圖像、雷達(dá)、生物醫(yī)學(xué)、工業(yè)控制、儀器儀表等許多領(lǐng)域得到越來(lái)越廣泛的應(yīng)用。一般來(lái)說(shuō)DSP的設(shè)計(jì)過(guò)程應(yīng)遵循一定的設(shè)計(jì)流程,如圖2.2示。DSP應(yīng)用DSP應(yīng)用定義系統(tǒng)性能指標(biāo)硬件調(diào)試選擇DSP芯片軟件編程硬件設(shè)計(jì)系統(tǒng)集成軟件調(diào)試系統(tǒng)測(cè)試和調(diào)試圖2.2DSP基本設(shè)計(jì)流程2.2TIDSP介紹TI公司DSP種類多,品種齊全,適合各種需要。目前,使用較為廣泛的主要有三個(gè)系列:C2000,C5000和C6000。其他系列產(chǎn)品應(yīng)用較少或已經(jīng)淘汰。每個(gè)系列又有多種DSP可供選擇。同一系列的DSP具有相同的內(nèi)核、相同或兼容的匯編指令集;它們之間的差別是具有不同大小的片內(nèi)存儲(chǔ)器、不同的片內(nèi)外設(shè)和外部接口等,工作電壓和速度也有所區(qū)別。以上3大系列DSP實(shí)現(xiàn)功能的側(cè)重點(diǎn)不同,也就是說(shuō)應(yīng)用領(lǐng)域有所不同:(1)C2000系列是16位定點(diǎn)DSP。它是一個(gè)控制器系列,主要應(yīng)用于工業(yè)控制領(lǐng)域,它除了具有一個(gè)DSP內(nèi)核外,還有大量的片內(nèi)外設(shè)資源,如A/D、定時(shí)器、各種同步和異步串口、看門狗、CAN總線接口等;加上其價(jià)格低廉,速度更高,可靠性更強(qiáng),可以取代傳統(tǒng)單片機(jī)。內(nèi)部具有Flash,方便固化程序,而其他系列DSP都沒有內(nèi)部Flash。(2)C5000系列DSP是16位定點(diǎn)低功耗DSP,性價(jià)比極高,主要應(yīng)用于無(wú)線通信系統(tǒng)及手持式通訊產(chǎn)品,如手機(jī),PDA和GPS等。C5000又分為C54X和C55X兩個(gè)系列。相對(duì)C2000系列來(lái)說(shuō),其內(nèi)部存儲(chǔ)更大,運(yùn)行速度更快,更適合執(zhí)行較為復(fù)雜的數(shù)字信號(hào)處理任務(wù),但控制功能相對(duì)較弱。一般由核心電壓和I/O電壓兩種電壓供電。核心電壓較低,所以功耗很低,且體積很小,方便集成。(3)C6000系列是32位的DSP系列。在TI的所有系列DSP中運(yùn)行速度最快。其中C62XX是定點(diǎn)DSP,而C64XX和C67XX是浮點(diǎn)DSP,它主要應(yīng)用于需要大量快速運(yùn)算的場(chǎng)合,如數(shù)字視頻處理、無(wú)線基站等。由于速度很高,所以功耗也很大。2.2.1在本設(shè)計(jì)中使用的DSP是TMS320VC5410。它屬于TIC5000系列中的C54X系列,正如前面所說(shuō),同一系列的DSP具有相同的內(nèi)核、相同或兼容的匯編指令集,差別僅在于內(nèi)存儲(chǔ)器的大小,片內(nèi)外設(shè)等等,所以就首先介紹一下C54系列DSP普遍具有的特點(diǎn)和性能。54X具有改進(jìn)的哈佛結(jié)構(gòu),使其處理能力達(dá)到最大。分開的程序空間和地址空間提供了高度的并行性,可以同時(shí)訪問(wèn)程序指令和數(shù)據(jù),例如三次讀操作和一次寫操作可以在一個(gè)周期內(nèi)完成。帶并行存儲(chǔ)的指令和具有特殊應(yīng)用的指令充分利用了這種結(jié)構(gòu)。這種并行性支持一套強(qiáng)大的算術(shù)運(yùn)算、邏輯運(yùn)算和位操作運(yùn)算,所以使得這些運(yùn)算可以在單個(gè)機(jī)器周期內(nèi)完成。而且54X的運(yùn)行機(jī)制還支持中斷處理、重復(fù)操作和函數(shù)調(diào)用等等。對(duì)于任意通用可編程芯片來(lái)說(shuō),一般都具備以下幾個(gè)部分:(1)內(nèi)部存儲(chǔ)器:主要用來(lái)存儲(chǔ)程序、執(zhí)行程序、存儲(chǔ)數(shù)據(jù)等;(2)中央處理單元(CPU):用來(lái)實(shí)現(xiàn)各種運(yùn)算功能;(3)片內(nèi)外設(shè):用來(lái)實(shí)現(xiàn)一些特定功能,如時(shí)鐘發(fā)生器、硬件定時(shí)器等等;(4)外部總線接口:用來(lái)和其他芯片接口,協(xié)同工作;(5)通信接口:用來(lái)從外圍芯片獲得數(shù)據(jù)或者將處理完的數(shù)據(jù)傳輸出去;(6)內(nèi)部總線:用來(lái)連接芯片中不同的單元。也就是說(shuō),以上各個(gè)部分的通信是通過(guò)內(nèi)部總縣來(lái)完成的。2.2.2C5410體系結(jié)構(gòu)總線結(jié)構(gòu)5410體系結(jié)構(gòu)由8條主要的16位總線、4條程序/數(shù)據(jù)總線和4條地址總線構(gòu)成。其中程序總線PB從程序存儲(chǔ)器裝載指令碼和立即操作數(shù)3條數(shù)據(jù)總線CB、DB、EB負(fù)責(zé)將片上的各個(gè)不同的部分相互連接。例如,CPU數(shù)據(jù)地址產(chǎn)生邏輯、程序地址產(chǎn)生邏輯、片上外設(shè)和數(shù)據(jù)存儲(chǔ)器,其中CB和DB從數(shù)據(jù)存儲(chǔ)器讀取操作數(shù),EB把操作數(shù)寫到數(shù)據(jù)存儲(chǔ)器4條地址總線PAB、CAB、DAB、EAB負(fù)責(zé)裝載指令執(zhí)行所需要的地址。PB能加載保存于程序存儲(chǔ)空間的操作數(shù)(如系數(shù)表)到乘法器和加法器進(jìn)行乘-加操作或利用數(shù)據(jù)移動(dòng)指令(MVPD和READA)把操作數(shù)移動(dòng)到數(shù)據(jù)存儲(chǔ)空間的目的地址中。這種性能與雙操作數(shù)讀取的特性一起使54x支持單周期三操作數(shù)指令。54x還有一條雙向的片上總線用于訪問(wèn)片上外設(shè),這條總線輪流使用DB和EB與CPU連接。內(nèi)部存儲(chǔ)器5410存儲(chǔ)器被組織成三個(gè)獨(dú)立的可選擇的空間:程序存儲(chǔ)空間、數(shù)據(jù)存儲(chǔ)空間和I/O空間,大小都是64K,總共是192K。大小包括隨機(jī)存儲(chǔ)器RAM和只讀存儲(chǔ)器ROM。其中5410采用的RAM雙存取訪問(wèn)RAM(DARAM)。片上雙存取訪問(wèn)RAM(DARAM)被組織在一些塊上,因?yàn)槊總€(gè)DARAM塊能夠在每個(gè)機(jī)器周期中被訪問(wèn)兩次,結(jié)合并行的體系結(jié)構(gòu),使得5410得以在指定的周期內(nèi)完成四個(gè)并發(fā)的存儲(chǔ)器操作。一個(gè)取指操作、兩個(gè)數(shù)據(jù)讀操作和一個(gè)數(shù)據(jù)寫操作,DARAM總是被映射到數(shù)據(jù)存儲(chǔ)空間上,也可被映射進(jìn)程序存儲(chǔ)空間用于保存程序代碼5410的26個(gè)CPU寄存器和片上外設(shè)寄存器被映射在數(shù)據(jù)存儲(chǔ)空間。C5410提供了三個(gè)控制位用于在存儲(chǔ)空間中配置片上存儲(chǔ)器,利用這三個(gè)控制位可以設(shè)置片上存儲(chǔ)器怎樣配置到不同存儲(chǔ)空間,指定是配置到程序存儲(chǔ)空間還是數(shù)據(jù)存儲(chǔ)空間。以上通過(guò)設(shè)置處理器模式狀態(tài)寄存器PMST中的狀態(tài)位可以進(jìn)行調(diào)整。(1)P/MC:當(dāng)此位是1時(shí),禁止片上ROM配置到5410存儲(chǔ)空間中,即微處理器模式。當(dāng)此位是0時(shí),允許片上ROM配置到5410的程序存儲(chǔ)空間中,即微計(jì)算機(jī)模式;(2)OVLY:當(dāng)OVLY=1時(shí)片上RAM配置到程序和數(shù)據(jù)存儲(chǔ)空間中,當(dāng)OVLY=0時(shí),片上RAM僅配置到數(shù)據(jù)存儲(chǔ)空間;(3)DROM:當(dāng)DROM=1時(shí),片上ROM配置到程序和數(shù)據(jù)存儲(chǔ)空間;當(dāng)DROM=0時(shí),片上ROM不配置到數(shù)據(jù)存儲(chǔ)空間,DROM與MP/MC狀態(tài)無(wú)關(guān)。1、程序存儲(chǔ)空間當(dāng)芯片復(fù)位時(shí),復(fù)位、中斷和陷阱矢量分配在FF80h開始的程序存儲(chǔ)空間5410允許中斷向量表重定位到任意一個(gè)128字的邊界上,這讓使用者可以把中斷向量表放到程序存儲(chǔ)器的其他位置,并從程序存儲(chǔ)空間中刪除片上ROM片上ROM中有128個(gè)字用于保存檢測(cè)設(shè)備,應(yīng)用代碼要避開這段存儲(chǔ)器FF00h-FF7Fh在5410片上的ROM中固化有以下內(nèi)容。其中片上ROM中固化的Sine表在程序中有著更廣泛的應(yīng)用價(jià)值,C5410利用頁(yè)擴(kuò)展的方式可以擴(kuò)展程序存儲(chǔ)器最多達(dá)1MB,為了實(shí)現(xiàn)頁(yè)擴(kuò)展,C5410提供了一些增強(qiáng)的特性:(1)20條地址線;(2)額外的存儲(chǔ)器映射寄存器,擴(kuò)展程序計(jì)數(shù)器XPC;(3)六條額外的指令用于尋址擴(kuò)展的程序存儲(chǔ)空間,C5410有16頁(yè)存儲(chǔ)空間,每頁(yè)64K當(dāng)片上RAM配置到程序存儲(chǔ)空間后擴(kuò)展程序存儲(chǔ)器的所有被分為兩個(gè)部分:共享部分和獨(dú)立部分。共享部分在任何一頁(yè)都可以訪問(wèn),獨(dú)立部分則僅在特定頁(yè)中訪問(wèn)。當(dāng)片上ROM可以訪問(wèn)時(shí)ROM配置到程序空間的第0頁(yè),在其他頁(yè)中不能訪問(wèn)片上,ROM芯片通過(guò)XPC的值來(lái)訪問(wèn)程序存儲(chǔ)器的各個(gè)頁(yè)。XPC作為存儲(chǔ)器映射寄存器被放到數(shù)據(jù)存儲(chǔ)器的001Eh處。2、數(shù)據(jù)存儲(chǔ)空間C5410可以尋址64K的數(shù)據(jù)存儲(chǔ)空間片上的ROM,雙存取RAM(DARAM)可以通過(guò)軟件配置到數(shù)據(jù)存儲(chǔ)空間中,芯片在訪問(wèn)存儲(chǔ)器時(shí)會(huì)自動(dòng)訪問(wèn)這些單元。當(dāng)DAGEN數(shù)據(jù)地址產(chǎn)生器產(chǎn)生了不在片上存儲(chǔ)器的地址時(shí)會(huì)自動(dòng)產(chǎn)生一個(gè)外部總線操作。一般將片上ROM配置到數(shù)據(jù)存儲(chǔ)空間,需要修改PMST寄存器的DROM位,來(lái)允許將片上ROM當(dāng)作數(shù)據(jù)存儲(chǔ)器來(lái)訪問(wèn)。C5410的數(shù)據(jù)存儲(chǔ)器第0頁(yè)的0000h-007Fh存放著寄存器映射寄存器內(nèi)容包括:(1)無(wú)等待狀態(tài)訪問(wèn)的CPU寄存器共26個(gè)(2)片上外設(shè)的控制和數(shù)據(jù)寄存器存放在0020h-005Fh的地址中(3)用于補(bǔ)充的32個(gè)字的DARAM,這就不必將較大的RAM塊分成小碎片下面重點(diǎn)介紹幾個(gè)重要的寄存器:(1)中斷寄存器IMRIFR地址0h和1h其中中斷屏蔽寄存器IMR可以個(gè)別的禁止或允許指定的可屏蔽中斷,中斷標(biāo)志寄存器IFR可以指定當(dāng)前的中斷狀態(tài);(2)狀態(tài)寄存器ST0ST1地址6h和7h狀態(tài)寄存器包含C5410的不同的狀態(tài)和模式,其中ST0包括了算術(shù)運(yùn)算和位操作使用的狀態(tài)位OVA、OVBC和TC及DP字段ARP字段,ST1反映了處理器和指令執(zhí)行所依賴的模式和狀態(tài);(3)輔助寄存器AR0~AR7地址10h到17h共有8個(gè)16位的輔助寄存器可被CPU和輔助寄存器算術(shù)單元ARAus修改。主要作用是產(chǎn)生16位的數(shù)據(jù)存儲(chǔ)空間地址或作通用目的寄存器或保存變量;(4)處理器模式狀態(tài)寄存器PMST地址1Dh用于控制存儲(chǔ)器的配置;(5)擴(kuò)展程序計(jì)數(shù)器XPC地址1Eh高7位指定當(dāng)前程序存儲(chǔ)器的頁(yè),低位指定當(dāng)前程序存儲(chǔ)器的地址。3、I/O空間C5410提供了64K的I/O空間,尋址范圍是0000H-0FFFFH,作用是與片外設(shè)備連結(jié)PORTR和PORTW兩條指令可以訪問(wèn)這段存儲(chǔ)空間。它適用于訪問(wèn)映射到I/O空間的設(shè)備而不是存儲(chǔ)器。中央處理器CPUC5410與其它的54x芯片使用相同的CPU它包括:(1)40位算術(shù)邏輯單元(ALU)(2)兩個(gè)40位的累加器(3)桶形移位器(4)17*17位的乘法器(5)40位加法器(6)比較、選擇和存儲(chǔ)單元(CSSU)(7)數(shù)據(jù)地址產(chǎn)生器DAGEN和程序地址產(chǎn)生器(PAGEN)另外,還包括了指數(shù)譯碼器等特殊應(yīng)用硬件元件,通過(guò)這些硬件極大的提高了C5410在作算術(shù)運(yùn)算時(shí)的能力。數(shù)據(jù)存儲(chǔ)器尋址C5410提供了七種基本的尋址方式,如表2.1示。表2.1TMS320C54X的尋址方式程序存儲(chǔ)器尋址PC寄存器一般用于程序存儲(chǔ)器尋址。由程序存儲(chǔ)器地址產(chǎn)生邏輯PAGEN加載,一般PAGEN在取指之后連續(xù)增加PC值。但當(dāng)遇到非順序的操作,如跳轉(zhuǎn),調(diào)用返回條件操作指令重復(fù)復(fù)位和中斷時(shí)PC值產(chǎn)生非連續(xù)的變化。流水線操作C5410的流水線一共有6級(jí),流水線的每一級(jí)都是獨(dú)立運(yùn)行的,一個(gè)周期可以由六條指令處于流水線上的不同階段。當(dāng)PC值出現(xiàn)非連續(xù)的變化時(shí),如跳轉(zhuǎn)調(diào)用和返回一條或多條流水線上的指令會(huì)被放棄。片上外設(shè)C54x包含有相同的CPU,但是CPU連結(jié)不同的片上外設(shè)C5410包括的外設(shè)有:(1)通用目的輸出引腳BIO和XF(2)軟件等待狀態(tài)發(fā)生器(2)可編程存儲(chǔ)器切換邏輯(2)并行口(2)硬件定時(shí)器(2)串行口,主要是多通道緩沖串行口外部總線接口C5410能尋址64K的數(shù)據(jù)存儲(chǔ)器,64K的程序存儲(chǔ)可外部擴(kuò)展和64K的I/O空間,任何對(duì)外部存儲(chǔ)器或I/O設(shè)備的訪問(wèn)都要使用外部總線接口,外部總線接口的READY引腳和片上的軟件等待狀態(tài)發(fā)生器保證處理器能夠與各種速度不同的外部設(shè)備連接。外部總線接口的HOLD方式允許其他設(shè)備占用54x的外部總線。這樣,外部設(shè)備就可以訪問(wèn)54x的程序存儲(chǔ)器、數(shù)據(jù)存儲(chǔ)器和I/O空間上的資源。IEEE1149.1標(biāo)準(zhǔn)的邏輯掃描電路片上的JTAG接口符合IEEE1149.1標(biāo)準(zhǔn),這個(gè)接口用于硬件仿真和測(cè)試,所應(yīng)用的TI公司提供的開發(fā)套件中就包含了一個(gè)硬件仿真器,使用硬件仿真器可以縮短工程開發(fā)周期,提高工作效率。2.3DSP的開發(fā)環(huán)境DSP的開發(fā)系統(tǒng)包括硬件和軟件兩個(gè)方面。其中硬件包括一套DSK開發(fā)板和仿真器;軟件包括CCS開發(fā)環(huán)境。DSP的開發(fā)主要是圍繞著這兩方面進(jìn)行的。2.3.1DSK的全稱是DSPStarterKit,即DSP初學(xué)者套件。DSK為用戶提供了一個(gè)開發(fā)DSP的方便的平臺(tái)。由于DSK板上提供了基本的硬件支持,結(jié)合適當(dāng)?shù)能浖_發(fā)工具,簡(jiǎn)化了開發(fā)工作,縮短了開發(fā)周期,在DSK板上主要包括如下資源:100MHzVC5402DSP芯片64K字外部擴(kuò)展的SRAM64K*16256K字的FLASH存儲(chǔ)器256K*16仿真器JTAG測(cè)試總線控制器SN74ACT8990JTAGTBC及與主機(jī)相連接的并行接口模/數(shù)轉(zhuǎn)換器TITLC320AD50A/Dconverter兩個(gè)電話接口(DAA)麥克風(fēng)/揚(yáng)聲器接口并行口RS-232串行口擴(kuò)展子板接口LED*4其中三個(gè)可供程序運(yùn)行時(shí)點(diǎn)亮提示DSK板上提供的豐富的硬件資源,使得開發(fā)過(guò)程中硬件方面可以節(jié)省大量的工作。DSK板上提供了一個(gè)八位跳線開關(guān),可以通過(guò)它申請(qǐng)外部中斷,實(shí)現(xiàn)不同的功能。另外,板上還提供了諸如14針的外部JTAG接頭,10針的CPLD的JTAG接頭,25針的符合IEEE-1284的為JTAG/HPI接入提供的并口等外部接口,通過(guò)JTAG接頭可以與計(jì)算機(jī)內(nèi)運(yùn)行的CCSCodeComposerStudio進(jìn)行實(shí)時(shí)數(shù)據(jù)交換RTDX提高編程調(diào)試的效率通過(guò)JTAG接頭與主機(jī)進(jìn)行實(shí)時(shí)數(shù)據(jù)交換的過(guò)程可見圖2.3示。圖2.3實(shí)時(shí)數(shù)據(jù)交換的過(guò)程JTAG接口符合IEEE1149.1標(biāo)準(zhǔn)邊界掃描邏輯測(cè)試技術(shù)規(guī)范,這一技術(shù)規(guī)范是80年代由聯(lián)合測(cè)試行動(dòng)組JTAGJointTestActionGroup開發(fā)的,這個(gè)邊界掃描測(cè)試BST結(jié)構(gòu)提供了有效的測(cè)試,引線間隔致密的電路板上零部件的能力,通過(guò)BST結(jié)構(gòu)測(cè)試引腳連結(jié)而不必使用物理測(cè)試探針,可以在器件正常工作時(shí),獲功能數(shù)據(jù)。器件的邊界掃描單元能夠迫使邏輯追蹤引腳信號(hào)或是從引腳或器件核心邏輯信號(hào)中捕獲數(shù)據(jù),強(qiáng)行加入的測(cè)試數(shù)據(jù)串行移入邊界掃描單元捕獲的數(shù)據(jù)串行移出并在器件外部同預(yù)期的結(jié)果進(jìn)行比較。通過(guò)擴(kuò)展可以將多個(gè)器件連成菊花鏈,一次進(jìn)行統(tǒng)一的輸入與讀出操作。TI提供的增強(qiáng)型JTAG連接,是一種可與任意DSP系統(tǒng)相連的低侵?jǐn)_式的連接,使得CCS能夠控制程序的執(zhí)行,實(shí)時(shí)監(jiān)視程序運(yùn)行。通過(guò)主機(jī)和DSPAPIs提供主機(jī)和DSP之間的雙向?qū)崟r(shí)數(shù)據(jù)交換,能夠使開發(fā)者實(shí)時(shí)連續(xù)的觀察到DSP應(yīng)用的實(shí)際工作方式,仿真接口提供主機(jī)一側(cè)的JTAG連接,如TIXSD510。2.3.2本節(jié)將介紹CCSCodeComposerStudio的基本開發(fā)環(huán)境、軟件開發(fā)過(guò)程、CCS組件。CCS提供了配置、建立、調(diào)試、跟蹤和分析程序的工具,它便于實(shí)時(shí)、嵌入式信號(hào)處理程序的編制和測(cè)試,能夠加速開發(fā)進(jìn)程,提高工作效率。CCS概述CCS全稱是CodeComposerStudio它提供了基本的代碼生成工具,具有一定的調(diào)試、分析能力,在CCS下的程序開發(fā)過(guò)程如圖2.4示。圖2.4程序開發(fā)過(guò)程CCS包括:1、CCS代碼生成工具2、CCS集成開發(fā)環(huán)境IDE3、DSP/BIOS插件程序和APIRTDX插件,主機(jī)接口和API等。下面將著重介紹前兩項(xiàng)。代碼生成工具代碼生成工具奠定CCS所提供的開發(fā)環(huán)境的基礎(chǔ),典型的軟件開發(fā)流程如圖2.5示。編輯源文件和命令文件編輯源文件和命令文件匯編使用編輯器生成目標(biāo)文件鏈接使用鏈接器生成可執(zhí)行代碼Flash或EPROM編程軟件調(diào)試器硬件調(diào)試器目標(biāo)格式轉(zhuǎn)換C5XX目標(biāo)系統(tǒng)圖2.5典型的軟件開發(fā)流程主要應(yīng)用到的工具包括:1、C編譯器(Ccompiler)產(chǎn)生匯編源代碼;2、匯編器(assembler)把匯編語(yǔ)言源文件翻譯成機(jī)器語(yǔ)言目標(biāo)文件;3、連接器(linker),把多個(gè)目標(biāo)文件組合成單個(gè)可執(zhí)行目標(biāo)模塊;4、歸檔器(Archiver)可以把一組文件收集到一個(gè)歸檔文件中,這在長(zhǎng)時(shí)間的調(diào)試時(shí)是十分有用的,運(yùn)行支持庫(kù)run_time_supportlibraries,包括C編譯器所支持的ANSI標(biāo)準(zhǔn)運(yùn)行函數(shù)、編譯器公用程序函數(shù)、浮點(diǎn)運(yùn)算函數(shù)和C編譯器支持的I/O函數(shù);5、十六進(jìn)制轉(zhuǎn)換公用程序(haxconversionutility)可以把COFF目標(biāo),文件轉(zhuǎn)換成TI-Tagged、ASCII-hexIntel、Motorola-S、Tektronix等目標(biāo)格式之后把轉(zhuǎn)換好的文件下載到EPROM編程器中。CCS集成開發(fā)環(huán)境調(diào)試DSP目標(biāo)程序,它主要由幾個(gè)主要的窗口組成:工程組顯示窗口、程序內(nèi)容顯示窗口、編輯信息提示窗口和主要工具欄。另外,在編輯過(guò)程中還可以顯示諸如存儲(chǔ)器觀察窗口、變量監(jiān)視框、圖形顯示框等調(diào)試界面,他們?yōu)槌绦蚓帉懻{(diào)試提供多種手段為軟件開發(fā)提供了極大的方便。圖2.5就是基本編輯界面。圖2.5CCS基本編輯界面在利用CCS編程的過(guò)程中,不可避免的要遇到如何將程序變量分配到內(nèi)存中去的問(wèn)題。因?yàn)椋词笵SP的存儲(chǔ)空間比較大,速度也十分快,但是如果內(nèi)存空間分配不當(dāng)?shù)脑?,還是會(huì)出現(xiàn)空間不夠行速度下降,甚至程序跑飛的情況,這樣會(huì)時(shí)程序調(diào)試起來(lái)十分麻煩。所以,一定要分配好內(nèi)存空間CCS提供了兩種分配空間的方法:利用cmd文件或rcp文件分配空間,其中cmd文件是純文本格式的描述性的空間分配方式,它的優(yōu)點(diǎn)是程序員對(duì)空間的可控制性較高,可以將不同的塊分配到指定的地址,并規(guī)定長(zhǎng)度。但它對(duì)于初學(xué)者來(lái)說(shuō),要求對(duì)C5410的內(nèi)存空間的分配有較清楚的認(rèn)識(shí),否則容易將數(shù)據(jù)分配到不該分配的地方,引起程序運(yùn)行的沖突,甚至程序跑飛。所以,一般在編程過(guò)程中,使用rcp文件對(duì)程序進(jìn)行內(nèi)存分rcp文件全稱是recipe文件,這是一種圖形化界面的內(nèi)存分配文件。對(duì)于一個(gè)新生成的工程組rcp文件的生成方法是:選擇CCS菜單上的Tools項(xiàng),選擇linkerconfiguration項(xiàng),將分配方式改為usethevisuallinker之后直接編譯,編譯信息提示窗口中會(huì)顯示出錯(cuò)信息,提示找不到rcp文件,雙擊提示CCS會(huì)自動(dòng)彈出rcp生成向?qū)?,按照要求選擇rcp模板,就會(huì)生成這個(gè)工程對(duì)應(yīng)的rcp文件,雙擊生成的rcp文件,通過(guò)visuallinker連接器可以打開這個(gè)文件。當(dāng)程序中新增加了變量后,在rcp文件中會(huì)出現(xiàn)Notyetplaced項(xiàng),只要將其下的文件夾,根據(jù)類型拖動(dòng)到run_view下的相應(yīng)的數(shù)據(jù)存儲(chǔ)器或程序存儲(chǔ)器即可。還可以選擇用何種類型的存儲(chǔ)器空間裝載,通過(guò)觀察存儲(chǔ)空間以使用的狀況自行分配空間,所以十分靈活,并且不會(huì)出現(xiàn)空間重疊的現(xiàn)象,避免了程序跑飛。第3章FIR濾波器的設(shè)計(jì)3.1FIR濾波器的基本理論:3.1.1FIR濾波器的特點(diǎn)數(shù)字濾波器的功能,就是把輸入序列通過(guò)一定的運(yùn)算變換成輸出序列??梢杂脙煞N方法來(lái)實(shí)現(xiàn)數(shù)字濾波器:—種方法是采用通用計(jì)算機(jī),利用計(jì)算機(jī)的存儲(chǔ)器、運(yùn)算器和控制器把濾波器所要完成的運(yùn)算編成程序通過(guò)計(jì)算機(jī)來(lái)執(zhí)行,也就是采用計(jì)算機(jī)軟件來(lái)實(shí)現(xiàn);另一種方法是設(shè)計(jì)專用的數(shù)字硬件(通常稱之為數(shù)字信號(hào)處理器)。數(shù)字濾波器的實(shí)現(xiàn)方法是多種多樣的,其中比較常用到的是無(wú)限長(zhǎng)脈沖響應(yīng)濾波器IIR和有限長(zhǎng)脈沖響應(yīng)濾波器FIR兩種,另外還有維納濾波器、自適應(yīng)濾波器等,但是在一般通信領(lǐng)域,尤其是信號(hào)傳輸領(lǐng)域,在一個(gè)信號(hào)的發(fā)送與接收端都是發(fā)出或接收一路信號(hào)。所以,前兩種濾波器還是現(xiàn)在濾波器設(shè)計(jì)的主要方面,例如在線譜分析、基音檢測(cè)、線性預(yù)測(cè)編碼等方面都有著廣泛的應(yīng)用。本來(lái)在計(jì)算量相等的情況下,IIR數(shù)字濾波器比FIR濾波器的幅頻特性優(yōu)越,頻率選擇性也好,但是,它有著致命的缺點(diǎn),相位特性不好控制。它的相位特性f(w)argH()是使頻率產(chǎn)生嚴(yán)重的非線性的原因,這種‘與’的非線性關(guān)系,使數(shù)字濾波器與模擬濾波器在響應(yīng)與頻率的對(duì)應(yīng)關(guān)系上發(fā)生了畸變。如果需要線性相位,就必須用全通網(wǎng)絡(luò)進(jìn)行復(fù)雜的相位校正,但是,在對(duì)程序運(yùn)行周期數(shù)要求十分嚴(yán)格的DSP處理中加上一個(gè)全通均衡器是十分浪費(fèi)資源的。另外,即使加上全通均衡器,對(duì)于因果的IIR濾波器,仍將得不到線性的相位。在現(xiàn)代電子系統(tǒng)中,如圖像處理、數(shù)據(jù)傳輸?shù)炔ㄐ蝹鬟f系統(tǒng)中都越來(lái)越多的要求信道具有線性的相位特性。在這方面FIR濾波器具有獨(dú)到的優(yōu)點(diǎn),它可以在幅度特性隨意設(shè)計(jì)的同時(shí),保證精確、嚴(yán)格的線性相位,因此這類濾波器應(yīng)用很廣泛。3.1.2FIR濾波器的基本結(jié)構(gòu)數(shù)字濾波是將輸入的信號(hào)序列,按規(guī)定的算法進(jìn)行處理,從而得到所期望的輸出序列。一個(gè)線性位移不變系統(tǒng)的輸出序列y(n)和輸入x(n)之間的關(guān)系,應(yīng)滿足常系數(shù)線性差分方程,見公式3.1,(3.1)其中,x(n)為輸入序列,y(n)為輸出序列,為濾波器系數(shù),N是濾波器的階數(shù)。若上式中所有的均為零,則有FIR濾波器的差分方程為:(3.2)對(duì)上式進(jìn)行Z變換得到FIR濾波器的傳遞函數(shù)為:(3.3)由上式可以看出,H(z)是的N-1次多項(xiàng)式,它在z平面內(nèi)有N-1個(gè)零點(diǎn),同時(shí)在原點(diǎn)處有N-1個(gè)重極點(diǎn)。N階濾波器通常采用N個(gè)延遲單元、N個(gè)加法器與N+1個(gè)乘法器,取圖3-1中(a)、(b)兩種結(jié)構(gòu)。圖3.1FIR濾波器的一般結(jié)構(gòu)因?yàn)镕IR濾波器的單位抽樣響應(yīng)是有限長(zhǎng)的,所以它永遠(yuǎn)是穩(wěn)定的。另外,若對(duì)h(n)提出一些約束條件,那么可以很容易地使H(z)具有線性相位,這在信號(hào)處理的很多領(lǐng)域是非常重要的。FIR濾波器的設(shè)計(jì)任務(wù),是要決定一個(gè)轉(zhuǎn)移函數(shù)H(z),使它的頻率響應(yīng)滿足給定的要求。這里所說(shuō)的要求,除了通帶頻率、阻帶頻率及兩個(gè)帶上的最大和最小衰減和外,很重要的一條是保證H(z)具有線性相位。3.2FIR濾波器的常規(guī)設(shè)計(jì)方法FIR濾波器的設(shè)計(jì)任務(wù)就是給定要求的頻率特性,按一定的最佳逼近準(zhǔn)則,選取濾波器轉(zhuǎn)移函數(shù)H(z)中的各個(gè)參數(shù)h(n),即濾波器的單位抽樣響應(yīng)及階數(shù)N,使得頻率特性滿足設(shè)計(jì)要求。通常FIR濾波器的設(shè)計(jì)方法主要有三種:窗函數(shù)法、頻率抽樣法和切比雪夫等波紋逼近法。其中窗函數(shù)法可以應(yīng)用比較現(xiàn)成的窗函數(shù),因而設(shè)計(jì)簡(jiǎn)單,在指標(biāo)要求不高的場(chǎng)合使用方便靈活。下面我們來(lái)簡(jiǎn)單介紹一下這三種設(shè)計(jì)方法。3.2.1窗函數(shù)法窗函數(shù)法也稱為傅立葉級(jí)數(shù)法。理想的數(shù)字濾波器頻率特性是無(wú)法實(shí)現(xiàn)的,F(xiàn)IR的設(shè)計(jì)就是要尋找一個(gè)可以得到的頻率特性=來(lái)逼近,這相當(dāng)于用一個(gè)可實(shí)現(xiàn)的單位脈沖響應(yīng)h(n)去逼近一個(gè)理想單位脈沖響應(yīng)??捎衫硐腩l率特性通過(guò)傅氏反變換得到,(3.4)一般來(lái)說(shuō),這樣得到的理想單位脈沖響應(yīng)序列是個(gè)無(wú)限長(zhǎng)序列,因而是非因果的。設(shè)有一個(gè)截止頻率為的理想線性相位低通,延時(shí)為τ,其頻率特性是:(3.5)得到:=(3.6)這是一個(gè)以n=τ為中心偶對(duì)稱的無(wú)限長(zhǎng)非因果序列,要想用一個(gè)有限長(zhǎng)的因果序列去逼近它,最簡(jiǎn)單的方法是截取n從0到N-1的一段來(lái)表示它,即h(n)=;其他N:h(n)=0。同時(shí),為了保證線性相位,還要滿足偶對(duì)稱h(n)=h(N-1-n)。這就好像通過(guò)一個(gè)窗口觀看到的一段,因此h(n)就表示成和一個(gè)窗口函數(shù)的乘積,這樣對(duì)h(n)的求解就變?yōu)閔(n)=*,這里的就稱為窗口函數(shù),既然一個(gè)頻域上的標(biāo)準(zhǔn)的矩形窗口對(duì)應(yīng)于時(shí)域是一個(gè)無(wú)限長(zhǎng)的序列,那么在時(shí)域上截取一段勢(shì)必造成頻域的矩形窗口的失真。結(jié)果就是截取出的信號(hào)也相應(yīng)失真,為了補(bǔ)償這種失真,只有改變?cè)瓉?lái)窗口的形狀,修正經(jīng)過(guò)時(shí)域截取后的窗口失真。窗函數(shù)設(shè)計(jì)方法的基本步驟是:(1)把展成FS,得;(2)對(duì)自然截短到所需的長(zhǎng)度,如2M+1;(3)將截短后的右移M個(gè)采樣間隔,得h(n);(4)將h(n)乘以合適的窗口,即得所要濾波器的沖擊響應(yīng),窗函數(shù)以n=M對(duì)稱。利用所求得的單位抽樣響應(yīng),即可用硬件構(gòu)成濾波器的轉(zhuǎn)移函數(shù)H(z),也可利用h(n)在計(jì)算機(jī)上用軟件來(lái)實(shí)現(xiàn)濾波。3.2.1頻率抽樣法窗函數(shù)法是從時(shí)域出發(fā),用窗函數(shù)截取理想的得到h(n),以此有限長(zhǎng)的h(n)近似,這樣得到的頻率響應(yīng)逼近于理想的頻響。頻率抽樣法是從頻率出發(fā),將給定的理想頻響加以等間隔抽樣。(3.7)然后以此作為FIR濾波器的頻率響應(yīng)抽樣值H(k),再根據(jù)DFT(離散付氏變換)定義由頻域這N個(gè)抽樣值來(lái)唯一確定一個(gè)有限長(zhǎng)序列h(n),同樣也可以算出FIR濾波器的系統(tǒng)函數(shù)H(z)及頻率響應(yīng),可以推出頻率響應(yīng)是頻率抽樣值H(k)與線性相位因子及如下內(nèi)插函數(shù)S(ω,k)的線性組合。S(ω,k)=(3.8)所以,在各頻率取樣點(diǎn)上,實(shí)際濾波器的頻響是嚴(yán)格地和所要求的濾波器的頻響一致的,逼近誤差為零,但在抽樣點(diǎn)之間的頻響是各取樣點(diǎn)的內(nèi)插函數(shù)的延伸疊加而成,有一定的逼近誤差,誤差大小取決于頻率響應(yīng)曲線的圓滑程度和抽樣點(diǎn)的密度為了減少誤差就要增加抽樣點(diǎn)數(shù)目即增大采樣頻率,抽樣點(diǎn)之間的理想頻率特性變化越陡,則逼近誤差越大,在理想頻率特性的不連續(xù)點(diǎn)附近會(huì)產(chǎn)生肩峰和紋波。頻率抽樣法的優(yōu)點(diǎn)是可以直接在頻域設(shè)計(jì),適于利用最優(yōu)化方法,而且這種方法特別適用于窄帶選頻濾波器,但頻率抽樣法的抽樣頻率只能是2π/N的整數(shù)倍或2π/N的整數(shù)倍加上π/N不能保證截止頻率ωc的準(zhǔn)確取值,要實(shí)現(xiàn)精確的ωc就必須取N大,相應(yīng)的計(jì)算量也大。此外,它的阻帶最大衰減一般,也只有30-50dB左右,很難滿足頻域特性要求較高的場(chǎng)合。3.2.3Chebyshev逼近法窗函數(shù)法和頻率采樣法設(shè)計(jì)出的濾波器的頻率特性都是在不同意義上對(duì)所給理想頻率特性的逼近。由數(shù)值逼近理論可知,對(duì)某個(gè)函數(shù)f(x)的逼近一般有以下三種方法:插值法(InterpolatingWay)最小平方逼近法(LeastSquareApproachingWay)一致逼近法(ConsistentApproachingWay)切比雪夫最佳一致逼近的基本思想是,對(duì)于給定區(qū)間[a,b]上的連續(xù)函數(shù),在所有n次多項(xiàng)式的集合中,尋找一個(gè)多項(xiàng)式p(x),使它在[a,b]上對(duì)的偏差和其它一切屬于的多項(xiàng)式p(x)對(duì)f(x)的偏差相比是最小的,即(3.9)切比雪夫逼近理論,這樣的多項(xiàng)式是存在的,且是唯一的,并指出了構(gòu)造這種最佳一致逼近多項(xiàng)式的方法,就是有名的“交錯(cuò)點(diǎn)組定理”。切比雪夫逼近理論解決了p(x)的存在性、唯一性和如何構(gòu)造等問(wèn)題。J.H.McClellan、T.W.Parks、L.R.Rabiner等人應(yīng)用切比雪夫逼近理論提出了一種設(shè)計(jì)FIR濾波器的計(jì)算機(jī)輔助算法。這種算法由于是在一致意義上對(duì)作最佳逼近,因而獲得了較好的通帶和阻帶性能,并能準(zhǔn)確地指定通帶和阻帶的邊緣。但它的效率依賴于初始極值頻率點(diǎn)的估計(jì),且通帶和阻帶內(nèi)波紋數(shù)較多,這是Chebyshev方法的兩個(gè)主要缺點(diǎn)。3.3窗函數(shù)法設(shè)計(jì)FIR濾波器在前面我們介紹了三種設(shè)計(jì)FIR濾波器的方法,介于窗函數(shù)法的簡(jiǎn)單靈活,在本設(shè)計(jì)采用了窗函數(shù)法來(lái)設(shè)計(jì)。3.3.1典型窗口函數(shù)介紹數(shù)據(jù)窗在FIR濾波器的窗函數(shù)設(shè)計(jì)中起著重要的作用,它的性能的好壞直接影響著濾波器的過(guò)渡帶寬度和衰減的大小。對(duì)窗函數(shù)總的要求,是希望它的頻譜中的主瓣盡量窄,邊瓣幅度盡量得小,也即它頻域的能量主要集中在主瓣內(nèi)。此外,窗函數(shù)還應(yīng)該滿足下列要求以便可以定量地比較各函數(shù)的性能。w(n)應(yīng)是非負(fù)的實(shí)偶函數(shù),為了使濾波器獲得較大的主旁瓣能量比,從對(duì)稱中心開始w(n)應(yīng)是非遞增的;為了保證濾波器的通帶增益為1,應(yīng)有:(3.10)為了保證濾波器的相位特性不因加窗而改變,一般要求是恒正的;這里給出如下三個(gè)頻域指標(biāo)作為窗函數(shù)性能的性能參數(shù):(1)3dB帶寬B,它是主瓣歸一化幅度()下降到-3dB時(shí)的帶寬。當(dāng)數(shù)據(jù)長(zhǎng)度為N時(shí),最大可能的頻率分辨率是,則B的單位可以是;(2)最大旁瓣峰值A(chǔ)(dB)。A越小,由旁瓣引起的振蕩幅度越??;(3)旁瓣峰值漸進(jìn)衰減速度D(dB/oct)。矩形窗(RectangleWindow)由于矩形窗是將理想的通帶所對(duì)應(yīng)的時(shí)域部分,無(wú)限長(zhǎng)截?cái)嗟接邢揲L(zhǎng)。,n=0,1,……N-1(3.11)它的波形及其幅頻響應(yīng)曲線如3.2所示。(a)矩形窗波形(b)幅頻響應(yīng)曲線圖3.2矩形窗波形及其幅頻響應(yīng)曲線(N=21)它的窗口形式是=1*,這樣在轉(zhuǎn)換成頻域時(shí),理想的矩形通帶就會(huì)產(chǎn)生畸變畸變情況可見圖3.3示。圖3.3經(jīng)矩形窗截短后的畸變由上圖可見,原本十分理想的矩形的傳遞函數(shù)現(xiàn)在畸變成了目前的形狀。通過(guò)觀察可以發(fā)現(xiàn),相對(duì)于來(lái)說(shuō),產(chǎn)生了如下變化:(1)在通帶內(nèi)出現(xiàn)了兩個(gè)尖峰,即通帶內(nèi)不平滑;(2)阻帶中出現(xiàn)了泄漏,即出現(xiàn)了波動(dòng)。以上兩點(diǎn)的產(chǎn)生,主要取決于窗口頻譜的旁瓣,旁瓣越多,余振越多;旁瓣相對(duì)值越大,波動(dòng)越強(qiáng);(3)過(guò)渡帶變寬了,理想的矩形通帶應(yīng)當(dāng)過(guò)渡帶為0,即下降沿十分陡,現(xiàn)在卻變成了從ω=ωc-到這樣長(zhǎng)的過(guò)渡帶。過(guò)渡帶的寬度取決于窗口頻譜的主瓣度。三角窗它的窗的形式為:n=,…-1,0,1,…(3.12)幅頻特性為:(3.13)它的波形及其幅頻響應(yīng)曲線如3.4所示。(a)三角窗波形(b)幅頻響應(yīng)曲線圖3-4三角窗的波形及其幅頻響應(yīng)曲線(N=21)漢寧窗(HanningWindow)它的窗的形式是:(3.14)利用傅氏變換的調(diào)制特性(),可以得到用矩形窗的幅頻特性表示的升余弦窗的幅頻特性:(3.15)它的波形及其幅頻響應(yīng)曲線如3.5所示。(a)漢寧窗波形(b)幅頻響應(yīng)曲線圖3.5漢寧窗的波形及其幅頻響應(yīng)曲線(N=21)由得到的頻譜圖,就會(huì)發(fā)現(xiàn)旁瓣大大的降低了,從而使能量集中在主瓣中但是主瓣的寬度加大了一倍。海明窗(HammingWindow)海明窗(hamming)也稱為改進(jìn)升余弦窗,如果對(duì)海明窗再做一些調(diào)整就可以得到使旁瓣最小的窗函數(shù):(3-16)同樣也可以得到它的幅頻特性:(3-17)它的波形及其幅頻響應(yīng)曲線如3.6所示。(a)海明窗波形(b)幅頻響應(yīng)曲線圖3.6海明窗的波形及其幅頻響應(yīng)曲線(N=21)這將使99.96%的能量集中在主瓣內(nèi)。這樣,在與升余弦窗相等的主瓣寬度下獲得了更好的旁瓣抑制效果。布萊克曼窗(BlackmanWindow)它的窗的形式為:(3.18)幅頻響應(yīng)為:(3.19)它的波形及其幅頻響應(yīng)曲線如圖3.7所示。(a)布萊克曼窗波形(b)幅頻響應(yīng)曲線圖3.7布萊克曼窗的波形及其幅頻響應(yīng)曲線(N=21)比較各個(gè)窗口可以看到,矩形窗函數(shù)具有最窄的主瓣B,但也有最大的旁瓣峰值A(chǔ)和最慢的衰減速度D。漢寧窗的主瓣寬度稍寬,但有著較小的旁瓣和較大的衰減速度,因而是窗函數(shù)設(shè)計(jì)法中比較好的選擇。將上述各種窗的指標(biāo)列于下表3.1中。表3.1五種窗的比較3.3.2FIR濾波器的MATLAB實(shí)現(xiàn)MATLAB信號(hào)處理工具箱提供了基于窗函數(shù)法的FIR濾波器的設(shè)計(jì)函數(shù)fir1。fir1是采用經(jīng)典窗函數(shù)法設(shè)計(jì)線性相位FIR數(shù)字濾波器,且具有標(biāo)準(zhǔn)低通、帶通、高通和帶阻等類型。語(yǔ)法格式:B=fir1(n,)B=fir1(n,,’ftype’)B=fir1(n,,window)B=fir1(n,,’ftype’,window)其中,n為FIR濾波器的階數(shù),對(duì)于高通、帶阻濾波器n取偶數(shù)。為濾波器截止頻率,取值范圍為0~1。對(duì)于帶通、帶阻濾波器,=[,],且<。’ftype’為濾波器類型。缺省時(shí)為低通或帶通濾波器,為‘high’時(shí)是高通濾波器,為‘stop’時(shí)是帶阻濾波器。Window為窗函數(shù),列向量,其長(zhǎng)度為n+1;缺省時(shí),自動(dòng)取hamming窗。輸出參數(shù)B為FIR濾波器系數(shù)向量,長(zhǎng)度為n+1。帶通濾波器的MATLAB實(shí)現(xiàn)使用矩形窗、Hanning窗、Hamming窗、布萊克曼窗四種窗對(duì)帶通原型進(jìn)行截取。帶通濾波器的指標(biāo)性能給出如下:下阻帶邊緣:,下通帶邊緣:,上通帶邊緣:,上阻帶邊緣:,設(shè)計(jì)結(jié)果如3.8、3.9、3.10、3.11所示。圖3.8矩形窗設(shè)計(jì)圖3.9hanning窗設(shè)計(jì)圖3.10hamming窗設(shè)計(jì)圖3.11布萊克曼窗設(shè)計(jì)低通濾波器的MATLAB實(shí)現(xiàn)用窗函數(shù)法設(shè)計(jì)FIR低通濾波器,其技術(shù)指標(biāo)如下:kHz,kHz,kHz,通帶最大衰減,阻帶最小衰減。將其換算成數(shù)字域的性能指標(biāo)如下:通帶截止頻率,通帶最大衰減;阻帶截止頻率,阻帶最小衰減。根據(jù)窗函數(shù)法的設(shè)計(jì)原則,由表3.1可知,海明窗(hamming)可提供大于50dB的衰減。要求濾波器的過(guò)渡帶為:由表3.1可知,利用海明窗設(shè)計(jì)的濾波器的過(guò)渡帶,所以低通濾波器單位脈沖響應(yīng)的長(zhǎng)度為:,取N=101。通過(guò)FIR1函數(shù)設(shè)計(jì)出濾波器的單位沖激響應(yīng)序列,用它來(lái)作為在下一章中DSP設(shè)計(jì)程序中的系數(shù)。其設(shè)計(jì)結(jié)果如圖3.12示。(a)幅度響應(yīng)(b)相位響應(yīng)圖3.12hamming窗濾波器的幅度響應(yīng)與相位響應(yīng)第4章FIR濾波器的應(yīng)用及其DSP實(shí)現(xiàn)4.1FFT/IFFT算法程序及應(yīng)用4.1.1應(yīng)用領(lǐng)域FFT/IFFT在數(shù)字信號(hào)處理中是一種非常重要的算法,在很多的應(yīng)用領(lǐng)域,如xDSL調(diào)制器、數(shù)字電視、手持無(wú)線接收裝置中。在通信系統(tǒng)中,常常要用到頻域分析FFT的應(yīng)用主要是兩個(gè)方面:1、它可以直接用來(lái)分析信號(hào)的頻譜,頻譜分析在信號(hào)處理中的應(yīng)用極廣,如語(yǔ)音通訊的頻帶壓縮需要對(duì)語(yǔ)音信號(hào)進(jìn)行頻譜分析。在軍事中,聲納系統(tǒng)對(duì)目標(biāo)的分析,以及雷達(dá)系統(tǒng)對(duì)運(yùn)動(dòng)目標(biāo)的測(cè)定等都需要特定的頻譜分析。在各種測(cè)量?jī)x器中,頻譜分析有著更多的應(yīng)用;2、利用快速卷積求解FIR濾波器的輸出。正是由于FFT有著以上的用途,考慮到對(duì)濾波器參數(shù)的判定,以及今后繼續(xù)開發(fā)其他通訊軟件時(shí)的應(yīng)用,編寫了FFT子程序,這樣既可以直接演示信號(hào)頻譜,也可以把子程序嵌入到主程序之中,進(jìn)行頻譜分析與計(jì)算。4.1.2FFT設(shè)計(jì)方法FFT是DFT的一個(gè)快速算法,是為減少DFT計(jì)算次數(shù)的一種快速有效的算法。它是將DFT分解開來(lái)進(jìn)行運(yùn)算,理論上是一致的,只是通過(guò)分解DFT運(yùn)算來(lái)達(dá)到減少運(yùn)算量的目的。其突出的優(yōu)點(diǎn)在于能快速高效地和比較精確地完成DFT的計(jì)算。利用一定的運(yùn)算結(jié)構(gòu)變換,將N點(diǎn)的DFT轉(zhuǎn)化成多個(gè)小的點(diǎn)數(shù)DFT的運(yùn)算,再利用的周期性和對(duì)稱性,就能大大減少計(jì)算量。FFT算法將長(zhǎng)序列的DFT分解為短序列DFT,N點(diǎn)的DFT先分解為2個(gè)N/2點(diǎn)的DFT,每個(gè)N/2點(diǎn)的DFT又分解為N/4點(diǎn)的DFT,如此這般。這里最小的變換點(diǎn)數(shù)即所謂的基數(shù)(radix),因此,基數(shù)為2的FFT算法的最小變換或稱蝶形變換就是2點(diǎn)DFT,是最基本的運(yùn)算單位,一般N點(diǎn)FFT對(duì)應(yīng)于N個(gè)輸入樣值,有N個(gè)頻域樣值與之對(duì)應(yīng)。DFT分解法基本上分為兩類:一類是將時(shí)間序列x(n)(n為時(shí)間標(biāo)號(hào))進(jìn)行逐次分解,由此得到的FFT算法稱為按時(shí)間抽取(Decimation-in-time)算法,另一類是將傅立葉變換序列X(k)(k為頻率標(biāo)號(hào))進(jìn)行分解,叫做按頻率抽取(Decimation-in-frequency)算法。對(duì)這兩種算法,庫(kù)利—圖基和桑德-圖基進(jìn)行了理論的推導(dǎo),故又稱為庫(kù)利—圖基(Cooley-Tukey)算法和桑德—圖基(Sande-Tukey)算法。DITFFT算法是在時(shí)域內(nèi)將每一級(jí)輸入序列依次按奇/偶分成2個(gè)短序列進(jìn)行計(jì)算,而DIFFFT算法是在頻域內(nèi)將每一級(jí)輸入序列依次按奇/偶分成2個(gè)短序列進(jìn)行計(jì)算。兩者的區(qū)別是旋轉(zhuǎn)因子出現(xiàn)的位置不同,但算法是一樣的。對(duì)每一算法,按基本的蝶形運(yùn)算的構(gòu)成又可分為基2、基4、基8以及任意因子等的FFT算法。不同基的FFT算法所需的計(jì)算量略有差異。之所以說(shuō)略有差異是指并無(wú)數(shù)量級(jí)的差別,甚至無(wú)成倍的差別。只是某種基的算法比另一種省幾分之幾而已。就目前來(lái)說(shuō),基2和基4算法是使用最廣泛的算法。N點(diǎn)FFT總共有(N/2)*log2n個(gè)蝶形運(yùn)算。設(shè)蝶形的輸入分別為P和Q,輸出分別為和,則有:(4.1)在時(shí)間抽取FFT算法過(guò)程中,輸入序列是碼位倒置或稱比特反轉(zhuǎn)的,也就是說(shuō),如果將序列的下標(biāo)用二進(jìn)制表示,那么這個(gè)序列是按照二進(jìn)制數(shù)的相反方向排列。所以FFT算法由兩部分組成:碼位倒置和2點(diǎn)的DFT運(yùn)算。下面討論一下如何利用FFT算法計(jì)算反FFT。反FFT可以表示為下式:n=0,1,2,……N-1(4.2)式中,x(k)是時(shí)域信號(hào),x(n)的傅里葉變換,通過(guò)下面的修改可以用FFT算法來(lái)實(shí)現(xiàn)反FFT運(yùn)算。1、增加一個(gè)歸一化因子1/N;2、將用其復(fù)共軛代替,可見求X(k)的反FFT可以分為以下3個(gè)步驟:(1)取x(k)的共軛得(k);(2)求X(k)的FFT得Nx(n);(3)取X(n)的共軛,并除以N,就得到了x(n)。采用這種方法,可以完全不用修改FFT程序就計(jì)算出反FFT。4.1.3FFT算法的實(shí)現(xiàn)DSP芯片的出現(xiàn)使FFT的實(shí)現(xiàn)方法變得更為方便。由于大多數(shù)DSP芯片都具有在單指令周期內(nèi)完成乘法-累加操作,并且提供了專門的FFT指令,使得FFT算法在DSP芯片實(shí)現(xiàn)的速度更快。用TMS3205410的匯編程序?qū)崿F(xiàn)FFT算法主要分為四步:(1)實(shí)現(xiàn)輸入數(shù)據(jù)的比特反轉(zhuǎn)輸入數(shù)據(jù)的比特反轉(zhuǎn)實(shí)際上就是將輸入數(shù)據(jù)進(jìn)行位碼倒置,以便在整個(gè)運(yùn)算后的輸出序列是一個(gè)自然序列。在用匯編指令進(jìn)行位碼倒置時(shí),使用位碼倒置尋址可以大大提高程序執(zhí)行速度和使用存儲(chǔ)器的效率。在這種尋址方式下,AR0存放的整數(shù)N是FFT點(diǎn)的一半,一個(gè)輔助寄存器指向一個(gè)數(shù)據(jù)存放的單元。當(dāng)使用位碼倒置尋址將AR0加到輔助寄存器時(shí),地址將以位碼倒置的方式產(chǎn)生。(2)實(shí)現(xiàn)N點(diǎn)復(fù)數(shù)FFTN點(diǎn)復(fù)數(shù)FFT算法的實(shí)現(xiàn)可以分為三個(gè)功能模塊,即第一級(jí)蝶形運(yùn)算、第二級(jí)蝶形運(yùn)算、第三級(jí)至級(jí)蝶形運(yùn)算。(3)功率譜的計(jì)算用FFT計(jì)算x(n)的頻譜,即計(jì)算(4.3)X(k)一般是由實(shí)部和虛部組成的復(fù)數(shù),即(4.4)因此,計(jì)算功率譜時(shí)只需將FFT變換好的數(shù)據(jù),按照實(shí)部和虛部求它們的平方和,然后對(duì)平方和進(jìn)行開平方運(yùn)算。但是考慮到編程的難度,對(duì)于求FFT變換后數(shù)據(jù)的最大值,不開平方也可以找到最大值,并對(duì)功率譜的結(jié)果沒有影響,所以在實(shí)際的DSP編程中省去了開平方的運(yùn)算。(4)輸出FFT結(jié)果FFT算法的基本流程如圖4.1所示:返回返回輸出部分位反轉(zhuǎn)程序部分將輸入數(shù)據(jù)調(diào)入片內(nèi)RAMAR1<-INPUTAR3<-INPUTIW<-系數(shù)增量變量初始化AR1<-TAB將系數(shù)調(diào)入內(nèi)存定義輸出數(shù)據(jù)存放地址INPUT定義FFT運(yùn)算時(shí)輸入數(shù)據(jù)的地址INDAT定義系數(shù)表在內(nèi)存的地址TAB進(jìn)行內(nèi)部存儲(chǔ)器的定義,設(shè)置變量FFT計(jì)算的點(diǎn)數(shù)NFFT計(jì)算的級(jí)數(shù)M系數(shù)起始地址WKAD循環(huán)計(jì)數(shù)標(biāo)志cycle1.cycle2程序入口蝶形運(yùn)算是否結(jié)束NY圖4.1FFT算法的基本流程圖4.1.4FFT算法的仿真和測(cè)試結(jié)果(a)MATLAB仿真波形(b)DSP測(cè)試波形圖4.2仿真和測(cè)試波形4.2FIR濾波器的DSP的實(shí)現(xiàn)4.2.1FIR濾波器的實(shí)現(xiàn)方法在數(shù)字信號(hào)處理系統(tǒng)中,常常要用到FIR數(shù)字濾波器,這是因?yàn)橛肍IR濾波器可以逼近任意幅頻特性的濾波器,并獲得很好的性能,在本論文中介紹FIR低通濾波器的DSP實(shí)現(xiàn)。TMS3205410是16位的定點(diǎn)處理器,所以在進(jìn)行匯編程序設(shè)計(jì)時(shí),F(xiàn)IR濾波器系數(shù)要采用Q15格式,即必須將上述系數(shù)轉(zhuǎn)化為Q15格式,這只要將濾波器各系數(shù)乘以2即可。用DSP實(shí)現(xiàn)Z算法是十分方便的,常用的方法有兩種:線性緩沖區(qū)法和循環(huán)緩沖區(qū)法。在本文中采用的是循環(huán)緩沖法,循環(huán)緩沖區(qū)法的特點(diǎn)是:(1)對(duì)于N階的FIR濾波器,在數(shù)據(jù)存儲(chǔ)器中開辟一個(gè)也稱為滑窗的N個(gè)單元的緩沖區(qū),滑窗中存放最新的N個(gè)輸入樣本;(2)每次移入新的樣本時(shí),以新樣本改寫滑窗中老的數(shù)據(jù),而滑窗中的其他數(shù)據(jù)不需要移動(dòng);利用片內(nèi)BK(循環(huán)緩沖區(qū)長(zhǎng)度)寄存器對(duì)滑窗進(jìn)行間接尋址,循環(huán)緩沖區(qū)地址首尾相鄰。FIR濾波器的核心算法是計(jì)算輸入信號(hào)與濾波器系數(shù)的卷積。設(shè)x(n)為輸入信號(hào),h(n)為FIR濾波器的沖擊響應(yīng),n=0,…,N-1,則FIR濾波器的輸出y(n)就是x(n)與h(n)的卷積,即:(4.5)由于卷積是數(shù)字信號(hào)處理中最常用到的算法,因此幾乎所有的DSP芯片中都設(shè)有專門的指令支持卷積運(yùn)算。在TMS3205410中可以用macd指令完成卷積。macd指令的形式如下:macd(Smem,pmad,src);在macd指令中,Smem是間接尋址參數(shù),它是指令中指向數(shù)據(jù)存儲(chǔ)器的單地址。Pmad是表示程序存儲(chǔ)器地址的16位常數(shù)。Src表示累加器,可以是A累加器或是B累加器。這條指令在執(zhí)行時(shí),先把指令中的pmad常數(shù)送到程序地址寄存器的PAR中,然后將Smem地址中的數(shù)據(jù)用PAR地址在程序存儲(chǔ)器中讀取的數(shù)據(jù)相乘,并將乘積結(jié)果累加到由Src指定的累加器中。在指令執(zhí)行時(shí),Smem地址中的內(nèi)容被同時(shí)復(fù)制到T寄存器和Smem低中之后的下一個(gè)地址單元中。若采用repeat指令重復(fù)執(zhí)行macd指令,則在執(zhí)行指令的最后,PAR寄存器自動(dòng)加1,這樣當(dāng)macd再次執(zhí)行時(shí)就直接用PAR中的地址讀取程序存儲(chǔ)器中的數(shù)據(jù)。通常情況下,macd指令執(zhí)行時(shí)需要三個(gè)周期。但是若用repeat指令執(zhí)行macd,進(jìn)入流水線后只要一個(gè)周期就可以執(zhí)行一次macd指令。由此可見,該指令同時(shí)完成了乘累加和數(shù)據(jù)延遲(移位)的功能,這正是卷積算法所要求的。對(duì)于輸入序列,它在兩個(gè)循環(huán)緩沖器里的存儲(chǔ)情況如下,要建立緩沖區(qū)首先將循環(huán)緩沖區(qū)大小寄存器的值設(shè)為N/2輔助寄存器AR4指到緩沖區(qū)1(Bufferl)的頂部AR5指到緩沖區(qū)2(Buffer2)的底部,新來(lái)一個(gè)樣本存儲(chǔ)到緩沖區(qū)1中時(shí),應(yīng)先將緩沖區(qū)1頂部的數(shù)據(jù)移到緩沖區(qū)2底部,處理器然后進(jìn)行乘加運(yùn)算,濾波程序每步運(yùn)算后AR4指向數(shù)據(jù)移到的下一個(gè)窗口,而AR5則指向下一個(gè)輸入數(shù)據(jù),對(duì)于下一步運(yùn)算AR4指向地址1,AR5指向地址N/2。如圖4.3示。圖4.3FIR系數(shù)存儲(chǔ)格式示意圖考慮到在執(zhí)行macd指令時(shí)是將低地址的數(shù)據(jù)復(fù)制到高地址來(lái)完成延遲功能,所以在用macd指令計(jì)算卷積時(shí),先計(jì)算x(n-N+1)與h(N-1)的乘積,最后才計(jì)算x(n)與h(0)的乘積。因此在程序中,F(xiàn)IR濾波器的系數(shù)在程序存儲(chǔ)器中按倒序存儲(chǔ)。4.2.2FIR濾波器的軟件設(shè)計(jì)及其調(diào)試本設(shè)計(jì)中采用C語(yǔ)言和匯編語(yǔ)言混合編程的方式進(jìn)行的,程序主體由C語(yǔ)言編寫,而核心的FIR濾波算法則由匯編語(yǔ)言編寫。用C語(yǔ)言開發(fā)DSP程序不僅使DSP開發(fā)的速度大大加快,而且開發(fā)出來(lái)的DSP程序的可讀性和可移植性也大大增加,程序修改也很方便。采用C編譯器的優(yōu)化功能可以增加C代碼的效率,在某些情況下,C代碼的效率甚至接近手工代碼的效率。用C語(yǔ)言開發(fā)DSP程序,在DSP芯片的運(yùn)算能力不是十分緊張時(shí)是非常適合的。雖然C編譯器的優(yōu)化功能可以使C代碼的效率大大增加,但是在某些情況下,C代碼的效率還是無(wú)法與手工編寫的匯編代碼的效率相比,比如FIR濾波器程序。這是因?yàn)?,即使最佳的C編譯器,也無(wú)法在所有的情況下都能夠最佳地利用DSP芯片所提供的各種資源。用C語(yǔ)言編寫的中斷程序雖然可讀性很好,但由于進(jìn)入中斷程序以后,有時(shí)不管程序中是否用到,中斷程序都將寄存器進(jìn)行保護(hù),從而大大降低中斷程序的效率。如果中斷程序頻繁被調(diào)用,那么即使一條指令也是至關(guān)重要的。此外,用C語(yǔ)言實(shí)現(xiàn)DSP芯片的某些硬件控制也不如匯編程序方便,有些甚至無(wú)法用c語(yǔ)言實(shí)現(xiàn)。因此,在很多情況下,DSP應(yīng)用程序往往需要用c語(yǔ)言和匯編語(yǔ)言的混合編程方法來(lái)實(shí)現(xiàn),以達(dá)到最佳利用DSP芯片軟硬件資源的目的。用C語(yǔ)言和匯編語(yǔ)言混合編程的方法主要有以下三種:(1)獨(dú)立編寫C程序和匯編程序,分開編譯和匯編,形成各自的目標(biāo)代碼模塊,然后用鏈接器將c模塊和匯編模塊鏈接起來(lái)。例如,F(xiàn)IR濾波程序用匯編語(yǔ)言編寫,對(duì)FIR程序用匯編器進(jìn)行匯編,形成目標(biāo)代碼模塊,與C模塊鏈接就可以在C程序中調(diào)用FIR程序。(2)直接在C語(yǔ)言程序的相應(yīng)位置嵌入?yún)R編語(yǔ)句。 (3)對(duì)c程序進(jìn)行編譯.生成相應(yīng)的匯編程序,然后對(duì)匯編程序進(jìn)行手工優(yōu)化和修改。上面的例子采用的是第一種方法,這是一種常用的C語(yǔ)言和匯編語(yǔ)言接口方法,采用這種方法最重要的是必須遵守c編譯器所定義的函數(shù)調(diào)用規(guī)則和寄存器使用規(guī)則。遵循這兩個(gè)規(guī)則就可以保證所編寫的匯編模塊不破壞C語(yǔ)言的運(yùn)行環(huán)境。C模塊和匯編模塊可以相互訪問(wèn)各自定義的函數(shù)或變量。在編寫?yīng)毩⒌膮R編程序時(shí),必須注意以下幾點(diǎn):(1)不論是用c語(yǔ)言編寫的函數(shù)還是用匯編編寫的函數(shù),都必須遵循寄存器使用規(guī)則。(2)必須保護(hù)函數(shù)要用到的幾個(gè)特定寄存器,在TMS320C54X的的c編譯中,這些特定的寄存器包括:ARD(FP),ARI(SP),AR6和AR70其中,如果SP正常使用,則不必明確加以保護(hù)。換句話說(shuō),只要匯編函數(shù)在函數(shù)返回時(shí)彈出壓入的對(duì)象,實(shí)際上就已經(jīng)保護(hù)了SP,因而ARl可以自由地使用。其它寄存器是可以自由使用的。函數(shù)返回時(shí)ARP必須為to(3),中斷程序必須保護(hù)所有用到的寄存器。(4)從匯編程序調(diào)用C函數(shù)時(shí),以逆序方式壓入堆棧,調(diào)用時(shí)再將參數(shù)彈出。(5)調(diào)用C函數(shù)時(shí),C函數(shù)只保護(hù)幾個(gè)特定的寄存器,而對(duì)于其它寄存器C函數(shù)是自由使用的。(6)長(zhǎng)整型和浮點(diǎn)數(shù)在存儲(chǔ)器中存放的順序是低位字在低地址,高位字在高地址。(7)如果函數(shù)有返回值,則返回值存放在累加器ACC中。(8)匯編模塊不能改變由C程序產(chǎn)生的.cinit塊,如果改變其內(nèi)容則會(huì)引起不可預(yù)測(cè)的后果。(9)編譯器在所有的標(biāo)識(shí)符(函數(shù)名、變量名)前要加一下劃杠“_”。因此,編寫匯編語(yǔ)言程序時(shí),必須在C程序可以訪問(wèn)的所有對(duì)象前加“_”。例如,在C程序中定義了變量x,如果要在匯編程序使用,既標(biāo)記為“x",如果僅在匯編中使用,則只要不加下劃杠,即使與C程序中定義的對(duì)象名相同,也不會(huì)造成沖突。(10)任何在匯編中定義的對(duì)象或函數(shù),如果需要在C程序中訪問(wèn)或調(diào)用,則必須用匯編指令.global定義。同樣,如果在C程

溫馨提示

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

評(píng)論

0/150

提交評(píng)論