基于DSP_的FIR數(shù)字濾波器設(shè)計(jì)_第1頁
基于DSP_的FIR數(shù)字濾波器設(shè)計(jì)_第2頁
基于DSP_的FIR數(shù)字濾波器設(shè)計(jì)_第3頁
基于DSP_的FIR數(shù)字濾波器設(shè)計(jì)_第4頁
基于DSP_的FIR數(shù)字濾波器設(shè)計(jì)_第5頁
已閱讀5頁,還剩18頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、評(píng)語學(xué)號(hào) * 成績(jī) DSP技術(shù)課程論文 題目 基于DSP 的FIR數(shù)字濾波器設(shè)計(jì) 作 者 * 班 級(jí) *院 別 * 專 業(yè) 電子信息完成時(shí)間2012年05月23號(hào)目 錄一 概述21.1 數(shù)字濾波器的研究現(xiàn)狀21.2 論文主要完成的工作2二 系統(tǒng)硬件設(shè)計(jì)32.1 系統(tǒng)設(shè)計(jì)方案32.2 主控模塊6 2.3 顯示模塊7三 系統(tǒng)軟件設(shè)計(jì)103.1 軟件整體設(shè)計(jì)103.2 測(cè)量模塊10四 系統(tǒng)測(cè)試結(jié)果與總結(jié)11 4.1 硬件調(diào)試中要注意到的問題11 4.2 軟件調(diào)試中要注意到的問題11 4.3 結(jié)果11 4.4 總結(jié)12五 參考文獻(xiàn)13六 附件14基于DSP的 FIR數(shù)字濾波器設(shè)計(jì)一、 概述1.1 數(shù)字

2、濾波器的研究現(xiàn)狀濾波器的主要分類有以下幾種: (1)按處理信號(hào)類型分類,可分為模擬濾波器和離散濾波器兩大類。其中模擬濾波器又可分為有源、無源、異類三個(gè)分類;離散濾波器又可分為數(shù)字、取樣模擬、混合三個(gè)分類。 (2)按選擇物理量分類,濾波器可分為頻率選擇、幅度選擇、時(shí)間選擇(例如PCM制中的話路信號(hào))和信息選擇(例如匹配濾波器)等四類濾波器。 (3)按頻率通帶范圍分類,濾波器可分為低通、高通、帶通、帶阻、全通五個(gè)類別,而梳形濾波器屬于帶通和帶阻濾波器,因?yàn)樗兄芷谛缘耐◣Ш妥鑾А檫m應(yīng)各種需要,出現(xiàn)了一批新型濾波器,這里介紹幾種已得到廣泛應(yīng)用的新型濾波器: (1)電控編程CCD橫向?yàn)V波器(FPCC

3、DTF):電荷耦合器(CCD)固定加權(quán)的橫向?yàn)V波器(TF)在信號(hào)處理中,其性能和造價(jià)均可與數(shù)字濾波器和各種信號(hào)處理部件媲美。這種濾波器主要用于自適應(yīng)濾波;P-N序列和Chirp波形的匹配濾波;通用化的頻域?yàn)V波器及相關(guān)積運(yùn)算;語音信號(hào)和相位均衡;相陣系統(tǒng)的波束合成和電視信號(hào)的重影消除等均有應(yīng)用。當(dāng)然,更多的應(yīng)用有待進(jìn)一步開拓??傊?,F(xiàn)PCCDTF是最有希望的發(fā)展方向。 (2)晶體濾波器:它是適應(yīng)單邊帶技術(shù)而發(fā)展起來的。在20世紀(jì)70年代,集成晶體濾波器的產(chǎn)生,使它的發(fā)展產(chǎn)生一個(gè)飛躍。近十年來,晶體濾波器致力于下面一些研究:實(shí)現(xiàn)最佳設(shè)計(jì),除具有優(yōu)良的選擇外,還具有良好的時(shí)域響應(yīng);尋求新型材料;擴(kuò)展

4、工作頻率;改造工藝,使其向集成化發(fā)展。它廣泛應(yīng)用于多路復(fù)用系統(tǒng)中作為載波濾波器,在收發(fā)信中,單邊帶通信機(jī)中作為選頻濾波器,在頻譜分析儀和聲納裝置中作為中頻濾波器。 (3)聲表面濾波器:它是理想的超高頻器件。它的幅頻特性和相位特性可以分別控制,以達(dá)到要求,而且它還有體積小,長(zhǎng)時(shí)間穩(wěn)定性好和工藝簡(jiǎn)單等特點(diǎn)。通常應(yīng)用于:電視廣播發(fā)射機(jī)中作為殘留邊帶濾波器;在彩色電視接收機(jī)中調(diào)諧系統(tǒng)的表面梳形濾波器。此外,在國(guó)防衛(wèi)星通信系統(tǒng)中已廣泛采用。聲表面濾波器是電子學(xué)和聲學(xué)相結(jié)合的產(chǎn)物,而且可以集成,所以,它在所有無源濾波器中最有發(fā)展前途的。我國(guó)現(xiàn)有濾波器的種類和所覆蓋的頻率已基本上滿足現(xiàn)有各種電信設(shè)備。從整體

5、而言,我國(guó)有源濾波器發(fā)展比無源濾波器緩慢,尚未大量生產(chǎn)和應(yīng)用。從下面的生產(chǎn)應(yīng)用比例可以看出我國(guó)各類濾波器的應(yīng)用情況:LC濾波器占50%;晶體濾波器占20%;機(jī)械濾波器占15%;陶瓷和聲表面濾波器各占1%;其余各類濾波器共占13%。從這些應(yīng)用比例來看,我國(guó)電子產(chǎn)品要想實(shí)現(xiàn)大規(guī)模集成,濾波器集成化仍然是個(gè)重要課題。隨著電子工業(yè)的發(fā)展,對(duì)濾波器的性能要求越來越高,功能也越來越多,并且要求它們向集成方向發(fā)展。我國(guó)濾波器研制和生產(chǎn)與上述要求相差甚遠(yuǎn),為縮短這個(gè)差距,電子工程和科技人員負(fù)有重大的歷史責(zé)任。1.2 論文主要完成的工作本課題主要應(yīng)用MATLAB軟件設(shè)計(jì)FIR數(shù)字濾波器,并對(duì)所設(shè)計(jì)的濾波器進(jìn)行仿

6、真:應(yīng)用DSP集成開發(fā)環(huán)境CCS調(diào)試匯編程序,用TMS320C5402來實(shí)現(xiàn)了FIR數(shù)字濾波。主要完成的工作有: (1)對(duì)FIR數(shù)字濾波器的基本理論進(jìn)行了分析和探討; (2)采用MATLAB軟件來學(xué)習(xí)數(shù)字濾波器的基本知識(shí),計(jì)算數(shù)字濾波器的系放,研究算法的可行性,對(duì)FIR低通數(shù)字濾波器進(jìn)行前期的設(shè)計(jì)和仿真; (3)系統(tǒng)介紹了TI公司TMS320C54x系列數(shù)字信號(hào)處理器的硬件結(jié)構(gòu)、性能特點(diǎn)和DSP的集成開發(fā)環(huán)境CCS;應(yīng)用DSP集成開發(fā)環(huán)境-CS調(diào)試匯編程序,用TMS320C5402來實(shí)現(xiàn)了FIR數(shù)字濾波。 (4)用窗函數(shù)法實(shí)現(xiàn)FIR濾波器,通過調(diào)用四種窗口函數(shù),截取不同的帶通與低通濾波原型,滿

7、足以下性能要求:帶通濾波器:下阻帶邊緣:,;下通帶邊緣:,上通帶邊緣:,;上阻帶邊緣:,低通濾波器:,;,; (5)研究DSP的結(jié)構(gòu)特點(diǎn),了解TI公司的TMS DSP器件,掌握DSP系統(tǒng)的構(gòu)成及軟硬件設(shè)計(jì)方法和CCS軟件的調(diào)試方法;并以TI公司的TMS DSP為核心處理器,在DSP上實(shí)現(xiàn)FIR濾波器系統(tǒng)。二、 系統(tǒng)硬件設(shè)計(jì)2.1系統(tǒng)設(shè)計(jì)方案通常一個(gè)典型的 DSP 系統(tǒng)如圖1所示。圖2.1 典型的DSP系統(tǒng)上圖是一個(gè)用DSP做信號(hào)處理的典型框圖。由于DSP是用來對(duì)數(shù)字信號(hào)進(jìn)行處理的,所以首先必須將輸入的模擬信號(hào)變換為數(shù)字信號(hào)。于是先對(duì)輸入模擬信號(hào)進(jìn)行調(diào)整,輸出的模擬信號(hào)經(jīng)過A/D變換后變成DSP

8、可以處理的數(shù)字信號(hào),DSP根據(jù)實(shí)際需要對(duì)其進(jìn)行相應(yīng)的處理,如FFT、卷積等;處理得到的結(jié)果仍然是數(shù)字信號(hào),可以直接通過相應(yīng)通信接口將它傳輸出去,或者對(duì)它進(jìn)行D/A變換將其轉(zhuǎn)換為模擬采樣值,最后再經(jīng)過內(nèi)插和平滑濾波就得到了連續(xù)的模擬波形模擬信號(hào)。一般來說DSP的設(shè)計(jì)過程應(yīng)遵循一定的設(shè)計(jì)流程,如圖2示。DSP應(yīng)用定義系統(tǒng)性能指標(biāo)硬件調(diào)試選擇DSP芯片軟件編程硬件設(shè)計(jì)系統(tǒng)集成軟件調(diào)試系統(tǒng)測(cè)試和調(diào)試圖2.2 DSP基本設(shè)計(jì)流程在數(shù)字信號(hào)處理系統(tǒng)中,常常要用到FIR數(shù)字濾波器,這是因?yàn)橛肍IR濾波器可以逼近任意幅頻特性的濾波器,并獲得很好的性能。故我們將設(shè)計(jì)基于DSP的FIR數(shù)字濾波器。本次數(shù)字濾波器的

9、實(shí)現(xiàn)采用線性緩沖區(qū)法。利用線性緩沖區(qū)法實(shí)現(xiàn)一個(gè)K階數(shù)字FIR濾波器的計(jì)算時(shí),除在存儲(chǔ)空間中定義一個(gè)長(zhǎng)度為K的存儲(chǔ)去用于存放濾波器的系數(shù)外,還需要專門定義一個(gè)長(zhǎng)度為K的存儲(chǔ)區(qū)域用來存放K個(gè)輸入數(shù)據(jù),該區(qū)域稱為循環(huán)緩沖區(qū)。在開始計(jì)算前,先給循環(huán)緩沖區(qū)中所有單元全部賦值為0,開始計(jì)算后,每來一個(gè)新的輸入數(shù)據(jù),將其按順序?qū)懭胙h(huán)緩沖區(qū),并將循環(huán)緩沖區(qū)數(shù)據(jù)于濾波器系數(shù)按相應(yīng)的規(guī)則進(jìn)行K次乘法累加計(jì)算,產(chǎn)生一個(gè)輸出數(shù)據(jù)。直到循環(huán)緩沖區(qū)被填滿,下一個(gè)輸入數(shù)據(jù)到來時(shí),用其替換循環(huán)緩沖區(qū)中最早的那個(gè)數(shù)據(jù)點(diǎn),并相應(yīng)地進(jìn)行K次循環(huán)累加運(yùn)算,產(chǎn)生相應(yīng)的濾波輸出。如此循環(huán)直到輸入數(shù)據(jù)序列計(jì)算結(jié)束。這樣在循環(huán)緩沖中讀取數(shù)

10、據(jù)時(shí)總是在這一段地址范圍內(nèi)循環(huán)讀數(shù),因此將這一算法稱為循環(huán)緩沖區(qū)法。循環(huán)緩沖區(qū)法的數(shù)據(jù)尋址示意圖如下圖4所示:H(K-1)H(K-2)X(n-(K-1)X(n+1)X(n-(k-2)H(1)H(0)X(n-1)X(n-1)X(n)X(n)X(n-(K-2)。. .。.H(1) 初始狀態(tài) n時(shí)刻的輸入采樣 更新一個(gè)數(shù)據(jù)后圖2.3 循環(huán)緩沖區(qū)法執(zhí)行過程圖循環(huán)緩沖區(qū)法的具體步驟如下:(1)定義兩個(gè)長(zhǎng)度為K的數(shù)組,一個(gè)用來存放濾波系數(shù)hn,另一個(gè)用來存放輸入數(shù)據(jù)an;(2)將濾波系數(shù)存放到hn中,將an的所有元素賦值為0;(3)將要處理的第一個(gè)數(shù)據(jù)存于a0中;(4)進(jìn)行K次乘法累加運(yùn)算,得出一個(gè)濾波輸

11、出;(5)將新的輸入數(shù)據(jù)值存入aK中,以替代最舊的一個(gè)數(shù)據(jù)重復(fù)第(4)步,計(jì)算新的濾波器輸出,如此循環(huán)至所有的輸入數(shù)據(jù)處理結(jié)束。循環(huán)緩沖區(qū)法實(shí)現(xiàn)的數(shù)字濾波器結(jié)構(gòu)比較緊湊,占用存儲(chǔ)資源較少,結(jié)合DSP的循環(huán)尋址方法可以方便、高效的實(shí)現(xiàn)FIR數(shù)字濾波器??偟脑O(shè)計(jì)框圖3如下:觀察輸入輸出波形CCSMATLAB編程產(chǎn)生待濾波數(shù)據(jù)MATLAB濾波器設(shè)計(jì)工具FDATOOL設(shè)計(jì)系數(shù) 圖2.4 系統(tǒng)設(shè)計(jì)框圖2.2 主控模塊 TMS是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算法是十分方便的,常

12、用的方法有兩種:線性緩沖區(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);(3) 利用片內(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)的卷積,即: 由于卷積是數(shù)字信號(hào)處理中最

13、常用到的算法,因此幾乎所有的DSP芯片中都設(shè)有專門的指令支持卷積運(yùn)算。在TMS中可以用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è)地

14、址單元中。若采用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)的底部,新來一個(gè)樣本存儲(chǔ)到

15、緩沖區(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。如下圖所示。 圖2.5 FIR系數(shù)存儲(chǔ)格式示意圖考慮到在執(zhí)行macd指令時(shí)是將低地址的數(shù)據(jù)復(fù)制到高地址來完成延遲功能,所以在用macd指令計(jì)算卷積時(shí),先計(jì)算x(n-N+1)與h(N-1)的乘積,最后才計(jì)算x(n)與h(0)的乘積。因此在程序中,F(xiàn)IR濾波器的系數(shù)在程序存儲(chǔ)器中按倒序存儲(chǔ)。2.3 顯示模塊本系統(tǒng)的具體硬件方案框圖如下圖:圖2.6 硬件方案框圖 在本系統(tǒng)設(shè)計(jì)中采用了

16、TI 的TMS320VC5402 作為其核心處理單元。TMS320VC5402為低功耗定點(diǎn)數(shù)字信號(hào)處理器,其運(yùn)算速度最快可達(dá)532MIPS。它采用先進(jìn)的修正哈佛結(jié)構(gòu),片內(nèi)共有8 條總線(1 條程序存儲(chǔ)器總線、3 條數(shù)據(jù)存儲(chǔ)總線和4 條地址總線)。其CPU采用并行結(jié)構(gòu)設(shè)計(jì),使其能在一條指令周期內(nèi),高速地完成多項(xiàng)算術(shù)運(yùn)算。TMS320VC5402的豐富的片上外圍電路(通用I/O 引腳,定時(shí)器,時(shí)鐘發(fā)生器, HPI 接口,多通道緩沖串行口McBSP)使其與外部接口方便2。TMS320VC5402 的片上包含兩個(gè)McBSP(多通道緩沖串行口)接口,可以將這兩個(gè)通道模仿實(shí)現(xiàn)SPI 的時(shí)序,因此本設(shè)計(jì)中采

17、用了SPI 接口器件實(shí)現(xiàn)數(shù)據(jù)的模數(shù)轉(zhuǎn)換和數(shù)模轉(zhuǎn)換。在本數(shù)字濾波器系統(tǒng)中選擇了 TI 公司的TLV 1570 芯片作為模數(shù)轉(zhuǎn)換器件,8 通道10位2.7 到5.5 V 低電壓模數(shù)轉(zhuǎn)換芯片。TLVl570 在3V 電壓下的采樣頻率為625KSPS,輸入信號(hào)最高頻率不能超過300K3。其功能時(shí)序圖如下:圖2.7 TLV1570 的功能時(shí)序圖 從功能時(shí)序圖可以看出該器件包含 8 通道輸入多路復(fù)用器、高速的10 位ADC、內(nèi)部的電壓參考源和高速的串行接口。其高速串行接口包含五根信號(hào)線:SCLK 串行時(shí)鐘輸入、SDIN串行數(shù)據(jù)輸入、SDOUT 串行數(shù)據(jù)輸出、FS 幀同步信號(hào)、CS#片選信號(hào)。其中每個(gè)取樣和

18、轉(zhuǎn)換過程需要16 個(gè)系統(tǒng)工作時(shí)鐘。由于模數(shù)轉(zhuǎn)換選擇了 10 位器件,為了簡(jiǎn)化程序代碼,減少DSP 的運(yùn)算工作量,在本數(shù)字濾波器系統(tǒng)中選擇了TI 公司的TLV5608 芯片,它是一款8 通道10 位2.7 到5.5 V 低電壓數(shù)模轉(zhuǎn)換芯片4。如下圖所示:圖2.8 TLV5608 的功能時(shí)序圖。三、 系統(tǒng)軟件設(shè)計(jì)3.1 軟件整體設(shè)計(jì)系統(tǒng)軟件設(shè)計(jì)由Matlab輔助DSP實(shí)現(xiàn)FIR,其總體過程為在DSP中編寫處理程序;在Matlab中利用濾波器設(shè)計(jì)、分析工具(FDATool),根據(jù)指定的濾波器性能快速設(shè)計(jì)一個(gè)FIR,然后把濾波器系數(shù)以頭文件形式導(dǎo)人CCS中,頭文件中含濾波器階數(shù)和系數(shù)數(shù)組,在Matla

19、b中調(diào)試、運(yùn)行DSP程序并顯示、分析處理后的數(shù)據(jù)。使用該方法,便于采用語言來實(shí)現(xiàn)程序。頭文件名不變,當(dāng)Matlab中設(shè)計(jì)的濾波器系數(shù)改變時(shí),相應(yīng)頭文件中系數(shù)也改變,方便了程序調(diào)試、仿真。軟件整體設(shè)計(jì)流程如下圖所示:圖3.1 軟件整體設(shè)計(jì)流程圖3.2 測(cè)量模塊測(cè)量模塊設(shè)計(jì)流程圖如下圖所示:圖3.2 測(cè)量模塊設(shè)計(jì)流程圖四、 系統(tǒng)測(cè)試與總結(jié)4.1 硬件調(diào)試中要注意到的問題 在本系統(tǒng)的硬件調(diào)試中主要測(cè)試步驟如下:首先測(cè)量電路板的電源和地是否有短路現(xiàn)象,電路板上所采用器件多為小封裝器件,管腳間距小,容易出現(xiàn)短路現(xiàn)象,焊接完成后要認(rèn)真檢查。系統(tǒng)上電檢測(cè),上電前應(yīng)該首先檢查電源的正負(fù)極性及輸入電壓的幅度,然

20、后上電。上電后應(yīng)快速檢測(cè)電路板上主要電源芯片的輸出電壓和DSP 內(nèi)核電壓,以免損壞電路板上器件。檢測(cè)系統(tǒng)的復(fù)位信號(hào)是否工作正常,系統(tǒng)在復(fù)位后部分器件會(huì)檢測(cè)自身的工作狀態(tài)。用示波器查看系統(tǒng)中主要的時(shí)鐘信號(hào)的波形,包括DSP 輸入時(shí)鐘信號(hào)、DSP 輸出時(shí)鐘信號(hào)、ADC 和DAC 的系統(tǒng)時(shí)鐘信號(hào)及幀同步時(shí)鐘信號(hào)(需要結(jié)合DSP 的開發(fā)環(huán)境和仿真器進(jìn)行測(cè)試)。測(cè)量所準(zhǔn)備的測(cè)試信號(hào)源的工作電壓和工作頻率是否在系統(tǒng)的允許范圍內(nèi)。4.2 軟件調(diào)試中要注意到的問題 利用 TMS320VC5402 實(shí)現(xiàn)FIR 的程序中應(yīng)注意以下幾點(diǎn):1.數(shù)據(jù)定標(biāo)。輸入數(shù)據(jù)和濾波器系數(shù)均小于1,以Q15 表示,將FRCT 標(biāo)志置

21、1,輸入數(shù)據(jù)與濾波器系數(shù)乘完后結(jié)果自動(dòng)左移一位,和累加器并取高16 位輸出。2.數(shù)據(jù)存放要求。輸入數(shù)據(jù)塊和系數(shù)塊都放在雙尋址數(shù)據(jù)存儲(chǔ)區(qū),起始地址為m 位地址邊界(2mN)。3.循環(huán)尋址的使用。為了使用循環(huán)尋址,還要設(shè)置BK 為塊長(zhǎng)N。由于使用了循環(huán)尋址,數(shù)據(jù)和系數(shù)的指針在操作后以循環(huán)的方式增1。4.數(shù)據(jù)的初始化。輸入數(shù)據(jù)塊要初始化為全0。利用TMS320VC5402 的FIRS 指令和循環(huán)尋址,可以更簡(jiǎn)潔的方法實(shí)現(xiàn)對(duì)稱抽頭的FIR 濾波器。4.3 結(jié)果當(dāng)給系統(tǒng)送入一個(gè)包含lk,3k,5k 的正弦波模擬信號(hào)源作為系統(tǒng)的輸入信號(hào)源,并將MATLAB 仿真得到的低通數(shù)字濾波器的系數(shù)帶入所編寫的程序代

22、碼中,編譯運(yùn)行后循環(huán)執(zhí)行濾波程果符合預(yù)期結(jié)果。程序設(shè)置斷點(diǎn)運(yùn)行后,設(shè)置觀察圖形窗口變量及參數(shù)為:采用雙蹤觀察啟始地址分別為x和y,長(zhǎng)度為256的單元中數(shù)值的變化,數(shù)值類型為32位浮點(diǎn)型變量,這兩個(gè)數(shù)組中分別存放的是經(jīng)A/D轉(zhuǎn)換后的輸入混疊信號(hào)(輸入信號(hào))和對(duì)該信號(hào)進(jìn)行FIR濾波的結(jié)果;單擊“Animate”運(yùn)行程序,調(diào)整觀察窗口并觀察濾波結(jié)果,如下圖示。圖4.1 測(cè)試結(jié)果4.4 個(gè)人總結(jié)本課題的主要工作是應(yīng)用MATLAB軟件設(shè)計(jì)FIR數(shù)字濾波器,并對(duì)所設(shè)計(jì)的濾波器進(jìn)行仿真;應(yīng)用DSP集成開發(fā)環(huán)境一CCS調(diào)試匯編程序,用TMS320C5416來實(shí)現(xiàn)了FIR數(shù)字濾波。在本次是軟件設(shè)計(jì)過程中,我所出

23、現(xiàn)的問題以及需要注意的是:(1) 在FIR.m中的采樣頻率的設(shè)置要和開始設(shè)置時(shí)的采樣頻率一致,否則結(jié)果會(huì)出現(xiàn)偏差。(2)在CCS中未定義標(biāo)號(hào),程序運(yùn)行錯(cuò)誤。(3)在.h文件中未把coeff頂格寫,編譯時(shí)出現(xiàn)錯(cuò)誤。(4)未將fir.h和input.dat文件考入工程文件中。(5)在間接尋址過程中,程序中丟失。 (6) 在View的Graph中單擊Time/frequency出現(xiàn)graph property dialog框,未修改抽樣點(diǎn)數(shù),導(dǎo)致顯示的圖形出現(xiàn)差異。在本次課程設(shè)計(jì)的過程中,我發(fā)現(xiàn)自己的知識(shí)面非常的狹隘,以至于,我不得不借閱大量的書籍來零時(shí)抱佛腳。在實(shí)際操作過程中,一開始發(fā)現(xiàn)自己的匯編

24、語言知識(shí)嚴(yán)重缺乏,只好改用C語言,然而許久沒用C語言的我,對(duì)于C語言程序的編寫,依然有些陌生的感覺了,好在學(xué)過的東西,在回憶還不算太難。其次就是在硬件設(shè)計(jì)的時(shí)候遇到了不少的麻煩,只能大量的查閱書本或者上網(wǎng)尋找相應(yīng)的資料。五、參考文獻(xiàn)1陳后金.數(shù)字信號(hào)處理北京:高等教育出版社,20042Sanjit KMitra Digital Signal Processing:A Computer-Based ApproachMcGrawHill Companies,Inc20054244263周利清,蘇菲數(shù)字信號(hào)處理基礎(chǔ)北京:北京郵電大學(xué)出版社,20054程佩清數(shù)字信號(hào)處理教程(第二版)北京:清華大學(xué)出版

25、社,20015王世一數(shù)字信號(hào)處理北京:北京理工大學(xué)出版社,20066丁玉美數(shù)字信號(hào)處理西安:西安電子科技大學(xué)出版社,20017胡廣書數(shù)字信號(hào)處理. 理論、算法與實(shí)現(xiàn)北京:清華大學(xué)出版社,19978張賢達(dá)現(xiàn)代信號(hào)處理北京:清華大學(xué)出版社,19969支長(zhǎng)義,程志平等DSP原理開發(fā)應(yīng)用北京:航空航天大學(xué)出版社,20061210陳亞勇MATLAB信號(hào)處理詳解北京:人民郵電出版社,20011l王宏MATLAB65及其在信號(hào)處理中的應(yīng)用北京:清華大學(xué)出版社,200412 朱銘銘基于模糊的DSP系統(tǒng)設(shè)計(jì)北京:電子工業(yè)出版社,200013 TMS32054x DSP應(yīng)用程序設(shè)計(jì)教程北京:機(jī)械工業(yè)出版社,200

26、414 TMS32054x DSP硬件開發(fā)教程北京:機(jī)械工業(yè)出版社,200315張雄偉DSP芯片的原理與開發(fā)應(yīng)用(第二版)北京:電子工業(yè)出版社,2000l6彭宗啟DSP技術(shù)原理及應(yīng)用北京:電子工業(yè)出版社,1998六、附錄FIR的DSP實(shí)現(xiàn)程序C1:FIR.c /*The programme of the FIR filter.Using INT2 to get the input signal.Array x is the input signal from A/D, the length is 256, 32-bit floating point.Array y is the signal

27、out of filter, the length is 256, 32-bit floating point.Array h is the coefficient of the FIR filter, the length is 101, 101 order filter.*#pragma CODE_SECTION(vect,vect)#include stdio.h#include math.h#define pi 3.#define IMR *(pmem+0x0000) #define IFR *(pmem+0x0001) #define PMST *(pmem+0x001D) #def

28、ine SWCR *(pmem+0x002B) #define SWWSR *(pmem+0x0028) #define AL *(pmem+0x0008) #define CLKMD 0x0058 /* clock mode reg*/#define Len 256#define FLen 101double npass,hFLen, xLen, yLen, xmidFLen;void firdes (double npass);unsigned int *pmem=0;ioportunsigned charport8001;int in_xLen;int m = 0;int intnum

29、= 0;double xmean=0;int i=0;int flag = 0;double fs,fstop,r,rm;int i,j,p,k=0;void cpu_init() /asm( nop);/asm( STM #0, CLKMD); /asm( STM #0, CLKMD); /asm( rpt #0ffffh);/asm( nop);/asm( STM #0x97ff, CLKMD); *(unsigned int*)CLKMD=0x0; /switch to DIV mode clkout= 1/2 clkin while(*(unsigned int*)CLKMD)&01)

30、!=0); *(unsigned int*)CLKMD=0x27ff; /switch to PLL X 10 modePMST=0x3FA0;SWWSR=0x7fff;SWCR=0x0000;IMR=0;IFR=IFR; interrupt void int2() in_xm = port8001;in_xm &= 0x00FF;m+;intnum = m;if (intnum = Len)intnum = 0;xmean = 0.0;for (i=0; iLen; i+)xmean = in_xi + xmean;xmean = 1.0*xmean/Len;for (i=0; iLen;

31、i+)xi = (double)(in_xi - xmean);for (i=0; iLen; i+)for (p=0; pFLen; p+) xmidFLen-p-1 = xmidFLen-p-2; xmid0 = xi; r = 0;rm= 0; for (j=0; jFLen; j+) r = xmidj * hj;rm = rm + r; yi = rm; m=0;flag = 1; void firdes(double npass) int t; for (t=0; tFLen; t+) ht = sin(pi*(N-(N-1)/2.0)*(0.54-0.46(cos(2*pi/(N

32、-1)/(pi* (N-(N-1)/2.0); if (t = (FLen-1)/2) ht=npass; void set_int() asm( ssbx intm);IMR=IMR|0x0004; asm( rsbx intm); void main(void) cpu_init(); fs = ; /*sampling frequency*/ fstop = 31250; /*cut-off frequency*/ npass = fstop/fs; for (i=0; i PROG PAGE 0 .cinit PROG PAGE 0 .switch PROG PAGE 0 .vect

33、3f80h PAGE 0 .data DATA PAGE 1 .bss DATA PAGE 1 .const DATA PAGE 1 .sysmem DATA PAGE 1 .stack DATA PAGE 1內(nèi)部資料僅供參考9JWKffwvG#tYM*Jg&6a*CZ7H$dq8KqqfHVZFedswSyXTy#&QA9wkxFyeQ!djs#XuyUP2kNXpRWXmA&UE9aQGn8xp$R#͑GxGjqv$UE9wEwZ#QcUE%&qYpEh5pDx2zVkum&gTXRm6X4NGpP$vSTT#&ksv*3tnGK8!z89AmYWpazadNu#KN&MuWFA5

34、uxY7JnD6YWRrWwcvR9CpbK!zn%Mz849GxGjqv$UE9wEwZ#QcUE%&qYpEh5pDx2zVkum&gTXRm6X4NGpP$vSTT#&ksv*3tnGK8!z89AmYWpazadNu#KN&MuWFA5uxGjqv$UE9wEwZ#QcUE%&qYpEh5pDx2zVkum&gTXRm6X4NGpP$vSTT#&ksv*3tnGK8!z89AmYWpazadNu#KN&MuWFA5uxY7JnD6YWRrWwcvR9CpbK!zn%Mz849GxGjqv$UE9wEwZ#QcUE%&qYpEh5pDx2zVkum&gTXRm6X4NGpP$vSTT#&

35、ksv*3tnGK8!z89AmUE9aQGn8xp$R#͑GxGjqv$UE9wEwZ#QcUE%&qYpEh5pDx2zVkum&gTXRm6X4NGpP$vSTT#&ksv*3tnGK8!z89AmYWpazadNu#KN&MuWFA5uxY7JnD6YWRrWwcvR9CpbK!zn%Mz849GxGjqv$UE9wEwZ#QcUE%&qYpEh5pDx2zVkum&gTXRm6X4NGpP$vSTT#&ksv*3tnGK8!z89AmYWpazadNu#KN&MuWFA5uxGjqv$UE9wEwZ#QcUE%&qYpEh5pDx2zVkum&gTXRm6X4NGpP$vST

36、T#&ksv*3tnGK8!z89AmYWpazadNu#KN&MuWFA5uxY7JnD6YWRrWwcvR9CpbK!zn%Mz849GxGjqv$UE9wEwZ#QcUE%&qYpEh5pDx2zVkum&gTXRm6X4NGpP$vSTT#&ksv*3tnGK8!z8vG#tYM*Jg&6a*CZ7H$dq8KqqfHVZFedswSyXTy#&QA9wkxFyeQ!djs#XuyUP2kNXpRWXmA&UE9aQGn8xp$R#͑GxGjqv$UE9wEwZ#QcUE%&qYpEh5pDx2zVkum&gTXRm6X4NGpP$vSTT#&ksv*3tnGK8!z89AmY

37、WpazadNu#KN&MuWFA5uxY7JnD6YWRrWwcvR9CpbK!zn%Mz849GxG89AmUE9aQGn8xp$R#͑GxGjqv$UE9wEwZ#QcUE%&qYpEh5pDx2zVkum&gTXRm6X4NGpP$vSTT#&ksv*3tnGK8!z89AmYWpazadNu#KN&MuWFA5uxY7JnD6YWRrWwcvR9CpbK!zn%Mz849GxGjqv$UE9wEwZ#QcUE%&qYpEh5pDx2zVkum&gTXRm6X4NGpP$vSTT#&ksv*3tnGK8!z89AmYWpazadNu#KN&MuWFA5uxGjqv$UE9wEw

38、Z#QcUE%&qYpEh5pDx2zVkum&gTXRm6X4NGpP$vSTT#&ksv*3tnGK8!z89AmYWpazadNu#KN&MuWFA5uxY7JnD6YWRrWwcvR9CpbK!zn%Mz849GxGjqv$UE9wEwZ#QcUE%&qYpEh5pDx2zVkum&gTXRm6X4NGpP$vSTT#&ksv*3tnGK8!z8vG#tYM*Jg&6a*CZ7H$dq8KqqfHVZFedswSyXTy#&QA9wkxFyeQ!djs#XuyUP2kNXpRWXmA&UE9aQGn8xp$R#͑GxGjqv$UE9wEwZ#QcUE%&qYpEh5pDx2zV

39、kum&gTXRm6X4NGpP$vSTT#&ksv*3tnGK8!z89AmYWpazadNu#KN&MuWFA5uxY7JnD6YWRrWwcvR9CpbK!zn%Mz849GxGjqv$UE9wEwZ#QcUE%&qYpEh5pDx2zVkum&gTXRm6X4NGpP$vSTT#&ksv*3tnGK8!z89AmYWpazadNu#KN&MuWFA5uxGjqv$UE9wEwZ#QcUE%&qYpEh5pDx2zVkum&gTXRm6X4NGpP$vSTT#&ksv*3tnGK8!z89AmYWpazadNu#KN&MuWFA5uxY7JnD6YWRrWwcvR9CpbK!zn%Mz8

40、49GxGjqv$UE9wEwZ#QcUE%&qYpEh5pDx2zVkum&gTXRm6X4NGpP$vSTT#&ksv*3tnGK8!z89AmUE9aQGn8xp$R#͑GxGjqv$UE9wEwZ#QcUE%&qYpEh5pDx2zVkum&gTXRm6X4NGpP$vSTT#&ksv*3tnGK8!z89AmYWpazadNu#KN&MuWFA5uxY7JnD6YWRrWwcvR9CpbK!zn%Mz849GxGjqv$UE9wEwZ#QcUE%&qYpEh5pDx2zVkum&gTXRm6X4NGpP$vSTT#&ksv*3tnGK8!z89AmYWpazadNu#KN&M

41、uWFA5uxGjqv$UE9wEwZ#QcUE%&qYpEh5pDx2zVkum&gTXRm6X4NGpP$vSTT#&ksv*3tnGK8!z89AmYWpazadNu#KN&MuWFA5uxY7JnD6YWRrWwcvR9CpbK!zn%Mz849GxGjqv$UE9wEwZ#QcUE%&qYpEh5pDx2zVkum&gTXRm6X4NGpP$vSTT#&ksv*3tnGK8!z89AmYWv*3tnGK8!z89AmYWpazadNu#KN&MuWFA5uxY7JnD6YWRrWwcvR9CpbK!zn%Mz849GxGjqv$UE9wEwZ#QcUE%&qYpEh5pDx2zVku

42、m&gTXRm6X4NGpP$vSTT#&ksv*3tnGK8!z89AmYWpazadNuGK8!z89AmYWpazadNu#KN&MuWFA5uxY7JnD6YWRrWwcvR9CpbK!zn%Mz849GxGjqv$UE9wEwZ#QcUE%&qYpEh5pDx2zVkum&gTXRm6X4NGpP$vSTT#&ksv*3tnGK8!z89AmYWpazadNu#KN&MuWFA5uxGjqv$UE9wEwZ#QcUE%&qYpEh5pDx2zVkum&gTXRm6X4NGpP$vSTT#&ksv*3tnGK8!z89AmYWpazadNu#KN&MuWFA5uxY7JnD6YWRrW

43、wcvR9CpbK!zn%Mz849GxGjqv$UE9wEwZ#QcUE%&qYpEh5pDx2zVkum&gTXRm6X4NGpP$vSTT#&ksv*3tnGK8!z89AmYWv*3tnGK8!z89AmYWpazadNu#KN&MuWFA5uxY7JnD6YWRrWwcvR9CpbK!zn%Mz849GxGjqv$U*3tnGK8!z89AmYWpazadNu#KN&MuWFA5uxY7JnD6YWRrWwcvR9CpbK!zn%Mz849GxGjqv$UE9wEwZ#QcUE%&qYpEh5pDx2zVkum&gTXRm6X4NGpP$vSTT#&ksv*3tnGK8!z89Amv

44、$UE9wEwZ#QcUE%&qYpEh5pDx2zVkum&gTXRm6X4NGpP$vSTT#&ksv*3tnGK8!z89AmYWpazadNu#KN&MuWFA5uxGjqv$UE9wEwZ#QcUE%&qYpEh5pDx2zVkum&gTXRm6X4NGpP$vSTT#&ksv*3tnGK8!z89AmYWpazadNu#KN&MuWFA5uxY7JnD6YWRrWwcvR9CpbK!zn%Mz849GxGjqv$UE9wEwZ#QcUE%&qYpEh5pDx2zVkum&gTXRm6X4NGpP$vSTT#&ksv*3tnGK8!z89AmYWv*3tnGK8!z89AmYWpaz

45、adNu#KN&MuWFA5uxY7JnD6YWRrWwcvR9CpbK!zn%Mz849GxGjqv$U*3tnGK8!z89AmYWpazadNu#KN&MuWFA5uxY7JnD6YWRrWwcvR9CpbK!zn%Mz84!z89Amv$UE9wEwZ#QcUE%&qYpEh5pDx2zVkum&gTXRm6X4NGpP$vSTT#&ksv*3tnGK8!z89AmYWpazadNu#KN&MuWFA5uxGjqv$UE9wEwZ#QcUE%&qYpEh5pDx2zVkum&gTXRm6X4NGpP$vSTT#&ksv*3tnGK8!z89AmYWpazadNu#KN&MuWFA5uxY7JnD6YWRrWwcvR9CpbK!zn%Mz849GxGjqv$UE9wEwZ#QcUE%&qYpEh5pDx2zVkum&gTXRm6X4NGpP$vSTT#&ksv*3tnGK8!z89AmYWv*3tnGK8!z89AmYWpazadNu#KN&MuWFA5uxY7JnD6YWRrWwcv

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(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)論