DSP應(yīng)用技術(shù)實(shí)驗(yàn)報(bào)告_第1頁(yè)
DSP應(yīng)用技術(shù)實(shí)驗(yàn)報(bào)告_第2頁(yè)
DSP應(yīng)用技術(shù)實(shí)驗(yàn)報(bào)告_第3頁(yè)
DSP應(yīng)用技術(shù)實(shí)驗(yàn)報(bào)告_第4頁(yè)
DSP應(yīng)用技術(shù)實(shí)驗(yàn)報(bào)告_第5頁(yè)
已閱讀5頁(yè),還剩5頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

FIR濾波器的DSP實(shí)現(xiàn)小組成員:一、實(shí)驗(yàn)?zāi)康模红柟虜?shù)字FIR濾波器的概念理解定點(diǎn)DSP中數(shù)的定標(biāo)、有限字長(zhǎng)、溢出等概念理解算法實(shí)現(xiàn)中實(shí)時(shí)的概念掌握DSP開發(fā)過程以及基本調(diào)試方法理解匯編以及高級(jí)語言開發(fā)DSP、實(shí)現(xiàn)算法的區(qū)別二、實(shí)驗(yàn)儀器:計(jì)算機(jī),C2000DSP實(shí)驗(yàn)箱,仿真器,示波器,信號(hào)源三、實(shí)驗(yàn)步驟:系數(shù)設(shè)計(jì),利用MATLAB設(shè)計(jì)濾波器系數(shù)并定標(biāo),分別做出幅頻、相頻曲線,看是否滿足設(shè)計(jì)要求。設(shè)備檢查啟動(dòng)集成開發(fā)環(huán)境建立工程加載程序算法功能驗(yàn)證算法實(shí)時(shí)性驗(yàn)證連接外部電路,打開信號(hào)源,產(chǎn)生一個(gè)合適的頻率的正弦信號(hào),幅度控制在0.5v以內(nèi),并通過INPUT1就如到DSP中。打開示波器,將OUT3口接在示波器上,全速運(yùn)行程序,調(diào)節(jié)信號(hào)源頻率,記錄各頻點(diǎn)示波器上輸出幅度。描點(diǎn)作圖,與理論幅頻特性比較,看是否滿足要求。四、實(shí)驗(yàn)過程:1、DSP實(shí)現(xiàn)流程:讀取AD結(jié)果DSP初始化退出中斷等待數(shù)據(jù)寫DAC復(fù)位ADC保存讀取AD結(jié)果DSP初始化退出中斷等待數(shù)據(jù)寫DAC復(fù)位ADC保存AD結(jié)果FIR計(jì)算EVA設(shè)置ADC設(shè)置中斷設(shè)置開始2、算法實(shí)現(xiàn)流程:五、實(shí)驗(yàn)要求:獨(dú)立完成項(xiàng)目編譯調(diào)試全過程。完成FIR濾波器系數(shù)的定點(diǎn)設(shè)計(jì)并仿真。在數(shù)據(jù)采集程序的基礎(chǔ)上,添加FIR模塊,實(shí)現(xiàn)算法。調(diào)試程序,實(shí)現(xiàn)FIR功能,利用硬件驗(yàn)證。改變輸入正弦信號(hào)頻率,記錄對(duì)應(yīng)的幅度,描點(diǎn)作圖,與理論幅頻曲線比較。數(shù)碼管輪流顯示實(shí)驗(yàn)者的學(xué)號(hào)。驗(yàn)證系統(tǒng)的實(shí)時(shí)性。觀察各種信號(hào)通過數(shù)字濾波器之后的波形,解釋信號(hào)失真原因。加載其他格式編寫程序所產(chǎn)生的FIR濾波器程序,測(cè)量運(yùn)算時(shí)間,比較分析c語言效率低的原因。以該FIR濾波器系統(tǒng)為例,總結(jié)分析系統(tǒng)實(shí)時(shí)性的取決因素。六、數(shù)據(jù)、波形記錄與分析:用MATLAB生成N=40,Wn=0.2的高通濾波器的系數(shù),并用Q15定標(biāo),數(shù)據(jù)如下:0,27,56,75,64,0,-118,-252,-329,-260,0,417,846,1061,828,0,-1398,-3142,-4850,-6098,26224,-6098,-4850,-3142,-1398,0,828,1061,846,417,0,-260,-329,-252,-118,0,64,75,56,27,0定標(biāo)前后的幅頻、相頻特性分別如圖4-1和4-2圖4-1圖4-2圖4-1圖4-2二者除了在增益上有所差別外,波形幾乎一致,說明定標(biāo)后的系數(shù)滿足要求。2、在程序中實(shí)現(xiàn)FIR濾波器功能,其中核心代碼如下:#defineN40#defineN40unsignedintx[N+1];inth[N+1]={0,27,56,75,64,0,-118,-252,-329,-260,0,417,846,1061,828,0,-1398,-3142,-4850,-6098,26224,-6098,-4850,-3142,-1398,0,828,1061,846,417,0,-260,-329,-252,-118,0,64,75,56,27,0};interruptvoidadc_isr(void){longinty=0; longinttemp; inta; intb;//*DAOUT=0x5000;for(j=0;j<=N;j++)x[j]=x[j+1];x[N]=((AdcRegs.ADCRESULT0))>>4;for(k=0;k<=40;k++){ a=h[k]; b=(x[N-k]); temp=(b*a); y=y+temp;} *DAOUT=((y>>10)+0x8000);……//*DAOUT=0xffff;}分析:①、代碼中定義了兩個(gè)數(shù)組,其中X[]用來存儲(chǔ)AD采集的數(shù)據(jù),是無符號(hào)數(shù),h[]用來存儲(chǔ)濾波器系數(shù),為有符號(hào)數(shù)。二者的長(zhǎng)度都是N+1(N為濾波器階數(shù))。②、第一個(gè)for循環(huán)用來實(shí)現(xiàn)數(shù)據(jù)重排功能,實(shí)現(xiàn)最近采集的數(shù)據(jù)放入數(shù)組的末尾,之前采集的數(shù)據(jù)依次向前移動(dòng)一個(gè)位置。其中之所以把AD寄存器中的采樣值右移四位在存入數(shù)組時(shí)因?yàn)锳DC的精度是12bit,而且是高12bit有效(在實(shí)驗(yàn)三中已通過查看寄存器驗(yàn)證)故把其有效位向后移四位方便后面計(jì)算。(具體數(shù)制問題后文會(huì)單獨(dú)分析)③、第二個(gè)for循環(huán)則用來實(shí)現(xiàn)FIR濾波器的算法:y=∑x*h將y的結(jié)果賦值給輸出的時(shí)候,要根據(jù)y的動(dòng)態(tài)范圍對(duì)y進(jìn)行適當(dāng)右移。因?yàn)镈AOUT接受的是一個(gè)16bit數(shù)據(jù),而y是longint型,即32bit,直接賦值勢(shì)必會(huì)溢出。檢驗(yàn)y的動(dòng)態(tài)范圍有多種方法,其中比較簡(jiǎn)便的方法是將y添加到變量觀察窗口,在賦值語句后設(shè)置斷點(diǎn),動(dòng)態(tài)運(yùn)行,觀察y的動(dòng)態(tài)范圍,即估計(jì)y最大最小值的位數(shù),目標(biāo)是保留有效數(shù)值的高16位,于是便能確定最后賦值給輸出口前y需要右移的位數(shù)。④、開頭和末尾兩條屏蔽的語句用于實(shí)時(shí)性驗(yàn)證。(原理在實(shí)驗(yàn)三中已經(jīng)闡述)⑤、上面程序?yàn)榱吮阌谡{(diào)試,定義了一些中間變量,可以進(jìn)一步優(yōu)化代碼。調(diào)試程序,驗(yàn)證濾波器功能:系統(tǒng)參數(shù):高通FIR濾波器,wn=0.2系統(tǒng)采樣頻率為12kHz,則截止頻率fn=1.2kHz驗(yàn)證波形如下:圖4-3圖4-3f=900Hzw=0.15幅度:0.8格圖4-4圖4-4f=1000Hzw=0.167幅度:1.2格圖4-5圖4-5f=1200Hzw=0.2幅度:3.4格圖4-6圖4-6f=1400Hzw=0.233幅度:6.0格圖47圖47f=1500Hzw=0.25幅度:6.5格圖4-8圖4-8f=2000Hzw=0.333幅度:6.8格圖4-9f=2500Hz圖4-9f=2500Hzw=0.417幅度:6.8格描點(diǎn)作圖驗(yàn)證濾波器性能:圖4-10分析:①?gòu)膱D4-10看出,低頻信號(hào)經(jīng)過濾波器幅度衰減,而高頻信號(hào)幅度不變,實(shí)現(xiàn)了高通濾波的功能。截止頻率w=0.2處的信號(hào)幅度為通帶波形幅度的一半,即-6dB,符合設(shè)計(jì)要求。②另外,可以從波形圖中估算該FIR濾波器的過渡帶長(zhǎng)度約為800Hz—1600Hz,即w∈(0.13,0.25)從圖4-1可以讀出理論過渡帶為W∈(0.12,0.26),實(shí)際過渡帶比理論值略大??赡苁菙?shù)字處理過程中的有限字長(zhǎng)效應(yīng)和AD量化誤差造成的。③截止頻率點(diǎn)的波形幅度并不是輸入信號(hào)幅度的一半。這是由于AD在采樣時(shí)把[-1.5v,1.5v]的信號(hào)轉(zhuǎn)換成[0,3v]的信號(hào),而DA輸出時(shí)又將信號(hào)轉(zhuǎn)換為[-2v,2v],故輸入輸出信號(hào)之前雖然存在某種關(guān)系,但幅值已不相同,自然在截止頻率點(diǎn)輸出波形幅度不是輸入波形幅度的一半。此時(shí)應(yīng)該以通帶波形的幅度作為參考幅度,而截止頻率點(diǎn)的波形幅度應(yīng)該等于通帶幅度的一半,驗(yàn)證正確。④當(dāng)輸入信號(hào)頻率大于2500Hz輸出波形幅度雖然不變,但已經(jīng)看不出是正弦波形了,這是由于采樣頻率只有12kHz,而輸入波形假設(shè)是3kHz,那么平均一個(gè)采樣周期才采樣4個(gè)點(diǎn),憑借4個(gè)采樣點(diǎn)很難準(zhǔn)確地表示出正弦波形。實(shí)時(shí)性驗(yàn)證:圖4-1圖4-11采樣頻率fs=12kHz采樣周期:83.3us指令執(zhí)行時(shí)間:20us滿足實(shí)時(shí)性要求圖4-1圖4-12采樣頻率fs=24kHz采樣周期:41.7us指令執(zhí)行時(shí)間:20us滿足實(shí)時(shí)性要求分析:實(shí)時(shí)實(shí)時(shí)取決因素運(yùn)算量數(shù)據(jù)率算法復(fù)雜度芯片速度如上圖,按照軟硬件來分,可以分為運(yùn)算量和芯片速度兩個(gè)方面。而運(yùn)算量又可以分為數(shù)據(jù)率和算法復(fù)雜程度。實(shí)時(shí)性的要求就是指在下一個(gè)數(shù)據(jù)到達(dá)前,前一個(gè)數(shù)據(jù)的處理必須已經(jīng)完成。實(shí)驗(yàn)中改變采樣頻率就是改變數(shù)據(jù)率,可見數(shù)據(jù)率越高(即采樣頻率越高)實(shí)時(shí)性越難滿足。通過改變?yōu)V波器的階數(shù)N,比較代碼執(zhí)行時(shí)間可以看出,N越大(即算法越復(fù)雜),實(shí)時(shí)性越難滿足。而通過c語言和匯編語言實(shí)現(xiàn)相同算法所需時(shí)間的比較也可以看出,算法或者代碼的復(fù)雜程度對(duì)實(shí)時(shí)性也有很大影響。C語言代碼的執(zhí)行效率比匯編語言低,從反匯編窗口即可以看出一條c語言可能對(duì)應(yīng)很多句匯編指令,從而占用的存儲(chǔ)空間也相對(duì)較多。而且c語言對(duì)于運(yùn)算的數(shù)制類型定義并不明確,不像匯編,無符號(hào)數(shù)乘法和有符號(hào)數(shù)乘法是不同的指令??梢娛炀氄莆諈R編語言對(duì)dsp的開發(fā)有很大的好處。5、實(shí)驗(yàn)中遇到的問題:相比于前三個(gè)實(shí)驗(yàn)的一帆風(fēng)順來說,實(shí)驗(yàn)四可謂一波三折,在第一次實(shí)驗(yàn)時(shí)已驗(yàn)證程序代碼功能正確的情況下,始終調(diào)試不出符合要求的波形,經(jīng)歷了4次實(shí)驗(yàn)的調(diào)試,最后總算在老師的協(xié)助下實(shí)現(xiàn)了功能(慚愧,12學(xué)時(shí)的實(shí)驗(yàn)做了近18個(gè)學(xué)時(shí)才完成…)以下記錄實(shí)驗(yàn)過程中從迷茫到解決問題的探索過程。①首先通過降低階數(shù)以及自定義特殊輸入和系數(shù)等方法調(diào)試驗(yàn)證代碼實(shí)現(xiàn)數(shù)據(jù)重排和結(jié)果乘加的功能。驗(yàn)證無誤后,計(jì)算濾波器系數(shù)(剛開始選擇的是N=50,Wn=0.5,高通),接信號(hào)發(fā)生器產(chǎn)生一個(gè)同代頻率的正弦波并連接示波器,輸出波形雜亂無章。②首先懷疑是y發(fā)生了溢出,于是通過修改h的定標(biāo)大小以及通過觀察y的動(dòng)態(tài)范圍進(jìn)行適當(dāng)移位,依然得不到預(yù)期波形。(輸入信號(hào)幅度太大也可能造成溢出)③于是反思是否是濾波器參數(shù)的選擇有問題,因?yàn)閣n=0.5,也就是說截止頻率點(diǎn)一個(gè)采樣周期只能采樣4個(gè)點(diǎn),而我們?cè)O(shè)計(jì)的又是高通濾波器,只有大于截至頻率的信號(hào)才能通過,那么通帶信號(hào)的周期內(nèi)采樣點(diǎn)會(huì)更少,一個(gè)周期內(nèi)只有不到4個(gè)采樣點(diǎn),自然沒法正確顯示波形。同時(shí),考慮到N=50比較大,可能不滿足實(shí)時(shí)性要求,于是將參數(shù)改成N=40,Wn=0.2。改動(dòng)后波形沒有明顯改善。測(cè)得實(shí)時(shí)性滿足要求,也就是說問題出在程序的計(jì)算過程中。④通過圖4-2可以看出MATLAB給出的設(shè)計(jì)是線性相位型的FIR濾波器,根據(jù)數(shù)字信號(hào)處理的理論知識(shí),設(shè)計(jì)線性相位型FIR濾波器,濾波器系數(shù)可以是奇對(duì)稱或者偶對(duì)稱,觀察matlab算出的系數(shù),是偶對(duì)稱,而用偶對(duì)稱的系數(shù)設(shè)計(jì)高通濾波器,濾波器階數(shù)必須為奇數(shù)(四種線性相位型FIR濾波器的特點(diǎn)如圖4-12,4-13),而我們?nèi)〉腘=40,是偶數(shù),似乎不滿足要求。后來發(fā)現(xiàn)其實(shí)這里N雖然是40,但系數(shù)是41個(gè),為奇數(shù),只是對(duì)階數(shù)的定義不一樣。問題不在此處。圖4-13圖4-13h(n)為偶函數(shù)圖4-14h(n)為奇函數(shù)⑤接下來對(duì)數(shù)字運(yùn)算的程序段進(jìn)行調(diào)試,打開變量x,h以及y的觀察窗口進(jìn)行單步調(diào)試,發(fā)現(xiàn)問題在于x*h在y中得不到正確的結(jié)果。(當(dāng)時(shí)y定義的是longint型,x為unsignedint型,h為int型)例如令x=5,h=-1,結(jié)果y=0x0004fffb(理論上應(yīng)該等于0xfffffffb),而把y調(diào)整成int型,結(jié)果就正確了(這就說明當(dāng)y的類型和x,h一致時(shí),可以將有符號(hào)數(shù)h與無符號(hào)數(shù)x的乘積賦給y,系統(tǒng)自動(dòng)轉(zhuǎn)換為兩個(gè)有符號(hào)數(shù)的乘法。但若y的類型和x,h不同,系統(tǒng)就不支持把有符號(hào)數(shù)*無符號(hào)數(shù)的結(jié)果存儲(chǔ)在y里,結(jié)果會(huì)出錯(cuò)。所以,如果要給long型的y賦值,必須先把無符號(hào)數(shù)x強(qiáng)制轉(zhuǎn)換成有符號(hào)數(shù)(這里之所以把x強(qiáng)制轉(zhuǎn)換后不會(huì)出錯(cuò)時(shí)由于x是AD的采樣數(shù)據(jù),只有高12bit有效,而在之前的程序中已經(jīng)將x右移了四位,高位補(bǔ)零,所以轉(zhuǎn)換成有符號(hào)數(shù)之后不存在負(fù)數(shù)的可能。倘若之前沒有對(duì)x進(jìn)行移位,直接強(qiáng)制轉(zhuǎn)換后運(yùn)算就不對(duì)了,因?yàn)槿粼瓁的最高為1,轉(zhuǎn)換后成了負(fù)數(shù),幅值必然改變。)將x強(qiáng)制轉(zhuǎn)換成有符號(hào)數(shù)后再運(yùn)行終于在示波器上觀察到了久違的正弦波形。(另外,如果該ADC不是12bit而是16bit精度的話,若仍使用unsignedint型定義采樣數(shù)據(jù)x將無法實(shí)現(xiàn)算法,因?yàn)橐粋€(gè)無符號(hào)數(shù)*有符號(hào)數(shù)在編譯的時(shí)候是默認(rèn)為有符號(hào)數(shù)乘法,例如有符號(hào)數(shù)h=-1,無符號(hào)數(shù)x=0xffff,x*h得到的結(jié)果是1,而我們希望得到的是-32767)⑥雖然正弦波顯示了出來,但是驗(yàn)證濾波器特性時(shí)發(fā)現(xiàn)過渡帶非常寬,和理論不符,那么問題只可能出在濾波器的系數(shù)上。于是重新導(dǎo)入濾波器系數(shù),再次驗(yàn)證得到正確的結(jié)果。七、實(shí)驗(yàn)總結(jié):回顧四次實(shí)驗(yàn),得益于預(yù)習(xí)充分,前三個(gè)實(shí)驗(yàn)較為輕松地完成了任務(wù),最后一個(gè)由于糾纏于數(shù)制類型上的種種問題,一波三折,不過最終也還是按照設(shè)計(jì)要求實(shí)現(xiàn)了高通濾波器的功能。從基礎(chǔ)實(shí)驗(yàn)到任意信號(hào)發(fā)生器到數(shù)據(jù)采集再到最后的FIR濾波器的實(shí)現(xiàn),由淺入深地讓我們體驗(yàn)了一個(gè)數(shù)字信號(hào)處理系統(tǒng)從軟件到硬件的實(shí)現(xiàn)過程,收獲頗豐,主要總結(jié)如下:1、大到對(duì)DSP系統(tǒng)的總體開發(fā)過程(寫出任務(wù)說明確定技術(shù)指標(biāo)選擇軟硬件確定芯片軟硬件說明軟件編程、硬件布局軟硬件調(diào)試系統(tǒng)集成系統(tǒng)測(cè)試)和調(diào)試流程(功能驗(yàn)證實(shí)時(shí)性驗(yàn)證性能驗(yàn)證)有了初步的了解。小到對(duì)FIR濾波器設(shè)計(jì)流程有了一定的認(rèn)識(shí)(先給定要求的理想濾波器頻響是,然后設(shè)計(jì)一個(gè)FIR濾波器,用其頻響去逼近。實(shí)現(xiàn)方法是先用IDTFT求出理想濾波器的,因?yàn)橐话闶欠且蚬?,且無限長(zhǎng),物理上無法實(shí)現(xiàn)。所以通過加窗來截取長(zhǎng)度為N的有限長(zhǎng)序列。這個(gè)就是用MATLAB計(jì)算出來的系數(shù))。最后到對(duì)FIR濾波器具體實(shí)現(xiàn)過程過程(見實(shí)驗(yàn)過程部分)有了深刻的體會(huì)。2、掌握了TMS320F2812DSP芯片、片內(nèi)外設(shè)等硬件的工作原理、內(nèi)部構(gòu)造和使用方法(主要是memorymap、內(nèi)部中斷、ADC、DAC、LED)。熟悉了軟件CCS,掌握了DSP的基本調(diào)試方法。3、較為深刻地理解了定點(diǎn)DSP中數(shù)的定標(biāo)、有限字長(zhǎng)和溢出等概念(這也是實(shí)驗(yàn)四的癥結(jié)所在)。4、對(duì)DSP系統(tǒng)實(shí)時(shí)性的定義和要求有了深刻的認(rèn)識(shí)。5、鞏固了數(shù)字信號(hào)處理的理論知識(shí),尤其是FIR濾波器部分。如線性相位型FIR濾波器的系數(shù)特點(diǎn),階數(shù)N對(duì)過渡帶和幅度特性波動(dòng)的影響等。6、對(duì)matlab的一些基本操作指令有了初步的了解。大學(xué)三年,做過那么多實(shí)驗(yàn),不敢說本實(shí)驗(yàn)是最有意義的,但一定最合理的,也是我做得最認(rèn)真的。原因有二。其一,數(shù)字信號(hào)處理有其獨(dú)特的魅力,一臺(tái)計(jì)算機(jī),一塊芯片,若干外設(shè)就能實(shí)現(xiàn)多種多樣的功能,對(duì)輸入信號(hào)進(jìn)行無窮的變換,有很廣的應(yīng)用價(jià)值(如第一次課上視頻中展示的人物識(shí)別、讀心術(shù)和汽車電子都是通過很普通的硬件實(shí)現(xiàn)了神奇的功能。)其二是就本實(shí)驗(yàn)來說并不困難,原理不涉及高深的理論,算法尤為簡(jiǎn)單,硬件也并不復(fù)雜,上手很快,可以說整個(gè)實(shí)驗(yàn)的難度是在我們的能力所及的范圍內(nèi),也就是讓實(shí)驗(yàn)者能夠看到成功的曙光,自然在實(shí)驗(yàn)過程中有動(dòng)力可言。對(duì)比之下,這里就不得不吐槽一

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝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)論