版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
FIR濾波器的DSP實現小組成員:一、實驗目的:鞏固數字FIR濾波器的概念理解定點DSP中數的定標、有限字長、溢出等概念理解算法實現中實時的概念掌握DSP開發(fā)過程以及基本調試方法理解匯編以及高級語言開發(fā)DSP、實現算法的區(qū)別二、實驗儀器:計算機,C2000DSP實驗箱,仿真器,示波器,信號源三、實驗步驟:系數設計,利用MATLAB設計濾波器系數并定標,分別做出幅頻、相頻曲線,看是否滿足設計要求。設備檢查啟動集成開發(fā)環(huán)境建立工程加載程序算法功能驗證算法實時性驗證連接外部電路,打開信號源,產生一個合適的頻率的正弦信號,幅度控制在0.5v以內,并通過INPUT1就如到DSP中。打開示波器,將OUT3口接在示波器上,全速運行程序,調節(jié)信號源頻率,記錄各頻點示波器上輸出幅度。描點作圖,與理論幅頻特性比較,看是否滿足要求。四、實驗過程:1、DSP實現流程:讀取AD結果DSP初始化退出中斷等待數據寫DAC復位ADC保存讀取AD結果DSP初始化退出中斷等待數據寫DAC復位ADC保存AD結果FIR計算EVA設置ADC設置中斷設置開始2、算法實現流程:五、實驗要求:獨立完成項目編譯調試全過程。完成FIR濾波器系數的定點設計并仿真。在數據采集程序的基礎上,添加FIR模塊,實現算法。調試程序,實現FIR功能,利用硬件驗證。改變輸入正弦信號頻率,記錄對應的幅度,描點作圖,與理論幅頻曲線比較。數碼管輪流顯示實驗者的學號。驗證系統(tǒng)的實時性。觀察各種信號通過數字濾波器之后的波形,解釋信號失真原因。加載其他格式編寫程序所產生的FIR濾波器程序,測量運算時間,比較分析c語言效率低的原因。以該FIR濾波器系統(tǒng)為例,總結分析系統(tǒng)實時性的取決因素。六、數據、波形記錄與分析:用MATLAB生成N=40,Wn=0.2的高通濾波器的系數,并用Q15定標,數據如下: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定標前后的幅頻、相頻特性分別如圖4-1和4-2圖4-1圖4-2圖4-1圖4-2二者除了在增益上有所差別外,波形幾乎一致,說明定標后的系數滿足要求。2、在程序中實現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;}分析:①、代碼中定義了兩個數組,其中X[]用來存儲AD采集的數據,是無符號數,h[]用來存儲濾波器系數,為有符號數。二者的長度都是N+1(N為濾波器階數)。②、第一個for循環(huán)用來實現數據重排功能,實現最近采集的數據放入數組的末尾,之前采集的數據依次向前移動一個位置。其中之所以把AD寄存器中的采樣值右移四位在存入數組時因為ADC的精度是12bit,而且是高12bit有效(在實驗三中已通過查看寄存器驗證)故把其有效位向后移四位方便后面計算。(具體數制問題后文會單獨分析)③、第二個for循環(huán)則用來實現FIR濾波器的算法:y=∑x*h將y的結果賦值給輸出的時候,要根據y的動態(tài)范圍對y進行適當右移。因為DAOUT接受的是一個16bit數據,而y是longint型,即32bit,直接賦值勢必會溢出。檢驗y的動態(tài)范圍有多種方法,其中比較簡便的方法是將y添加到變量觀察窗口,在賦值語句后設置斷點,動態(tài)運行,觀察y的動態(tài)范圍,即估計y最大最小值的位數,目標是保留有效數值的高16位,于是便能確定最后賦值給輸出口前y需要右移的位數。④、開頭和末尾兩條屏蔽的語句用于實時性驗證。(原理在實驗三中已經闡述)⑤、上面程序為了便于調試,定義了一些中間變量,可以進一步優(yōu)化代碼。調試程序,驗證濾波器功能:系統(tǒng)參數:高通FIR濾波器,wn=0.2系統(tǒng)采樣頻率為12kHz,則截止頻率fn=1.2kHz驗證波形如下:圖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格描點作圖驗證濾波器性能:圖4-10分析:①從圖4-10看出,低頻信號經過濾波器幅度衰減,而高頻信號幅度不變,實現了高通濾波的功能。截止頻率w=0.2處的信號幅度為通帶波形幅度的一半,即-6dB,符合設計要求。②另外,可以從波形圖中估算該FIR濾波器的過渡帶長度約為800Hz—1600Hz,即w∈(0.13,0.25)從圖4-1可以讀出理論過渡帶為W∈(0.12,0.26),實際過渡帶比理論值略大??赡苁菙底痔幚磉^程中的有限字長效應和AD量化誤差造成的。③截止頻率點的波形幅度并不是輸入信號幅度的一半。這是由于AD在采樣時把[-1.5v,1.5v]的信號轉換成[0,3v]的信號,而DA輸出時又將信號轉換為[-2v,2v],故輸入輸出信號之前雖然存在某種關系,但幅值已不相同,自然在截止頻率點輸出波形幅度不是輸入波形幅度的一半。此時應該以通帶波形的幅度作為參考幅度,而截止頻率點的波形幅度應該等于通帶幅度的一半,驗證正確。④當輸入信號頻率大于2500Hz輸出波形幅度雖然不變,但已經看不出是正弦波形了,這是由于采樣頻率只有12kHz,而輸入波形假設是3kHz,那么平均一個采樣周期才采樣4個點,憑借4個采樣點很難準確地表示出正弦波形。實時性驗證:圖4-1圖4-11采樣頻率fs=12kHz采樣周期:83.3us指令執(zhí)行時間:20us滿足實時性要求圖4-1圖4-12采樣頻率fs=24kHz采樣周期:41.7us指令執(zhí)行時間:20us滿足實時性要求分析:實時實時取決因素運算量數據率算法復雜度芯片速度如上圖,按照軟硬件來分,可以分為運算量和芯片速度兩個方面。而運算量又可以分為數據率和算法復雜程度。實時性的要求就是指在下一個數據到達前,前一個數據的處理必須已經完成。實驗中改變采樣頻率就是改變數據率,可見數據率越高(即采樣頻率越高)實時性越難滿足。通過改變?yōu)V波器的階數N,比較代碼執(zhí)行時間可以看出,N越大(即算法越復雜),實時性越難滿足。而通過c語言和匯編語言實現相同算法所需時間的比較也可以看出,算法或者代碼的復雜程度對實時性也有很大影響。C語言代碼的執(zhí)行效率比匯編語言低,從反匯編窗口即可以看出一條c語言可能對應很多句匯編指令,從而占用的存儲空間也相對較多。而且c語言對于運算的數制類型定義并不明確,不像匯編,無符號數乘法和有符號數乘法是不同的指令。可見熟練掌握匯編語言對dsp的開發(fā)有很大的好處。5、實驗中遇到的問題:相比于前三個實驗的一帆風順來說,實驗四可謂一波三折,在第一次實驗時已驗證程序代碼功能正確的情況下,始終調試不出符合要求的波形,經歷了4次實驗的調試,最后總算在老師的協(xié)助下實現了功能(慚愧,12學時的實驗做了近18個學時才完成…)以下記錄實驗過程中從迷茫到解決問題的探索過程。①首先通過降低階數以及自定義特殊輸入和系數等方法調試驗證代碼實現數據重排和結果乘加的功能。驗證無誤后,計算濾波器系數(剛開始選擇的是N=50,Wn=0.5,高通),接信號發(fā)生器產生一個同代頻率的正弦波并連接示波器,輸出波形雜亂無章。②首先懷疑是y發(fā)生了溢出,于是通過修改h的定標大小以及通過觀察y的動態(tài)范圍進行適當移位,依然得不到預期波形。(輸入信號幅度太大也可能造成溢出)③于是反思是否是濾波器參數的選擇有問題,因為wn=0.5,也就是說截止頻率點一個采樣周期只能采樣4個點,而我們設計的又是高通濾波器,只有大于截至頻率的信號才能通過,那么通帶信號的周期內采樣點會更少,一個周期內只有不到4個采樣點,自然沒法正確顯示波形。同時,考慮到N=50比較大,可能不滿足實時性要求,于是將參數改成N=40,Wn=0.2。改動后波形沒有明顯改善。測得實時性滿足要求,也就是說問題出在程序的計算過程中。④通過圖4-2可以看出MATLAB給出的設計是線性相位型的FIR濾波器,根據數字信號處理的理論知識,設計線性相位型FIR濾波器,濾波器系數可以是奇對稱或者偶對稱,觀察matlab算出的系數,是偶對稱,而用偶對稱的系數設計高通濾波器,濾波器階數必須為奇數(四種線性相位型FIR濾波器的特點如圖4-12,4-13),而我們取的N=40,是偶數,似乎不滿足要求。后來發(fā)現其實這里N雖然是40,但系數是41個,為奇數,只是對階數的定義不一樣。問題不在此處。圖4-13圖4-13h(n)為偶函數圖4-14h(n)為奇函數⑤接下來對數字運算的程序段進行調試,打開變量x,h以及y的觀察窗口進行單步調試,發(fā)現問題在于x*h在y中得不到正確的結果。(當時y定義的是longint型,x為unsignedint型,h為int型)例如令x=5,h=-1,結果y=0x0004fffb(理論上應該等于0xfffffffb),而把y調整成int型,結果就正確了(這就說明當y的類型和x,h一致時,可以將有符號數h與無符號數x的乘積賦給y,系統(tǒng)自動轉換為兩個有符號數的乘法。但若y的類型和x,h不同,系統(tǒng)就不支持把有符號數*無符號數的結果存儲在y里,結果會出錯。所以,如果要給long型的y賦值,必須先把無符號數x強制轉換成有符號數(這里之所以把x強制轉換后不會出錯時由于x是AD的采樣數據,只有高12bit有效,而在之前的程序中已經將x右移了四位,高位補零,所以轉換成有符號數之后不存在負數的可能。倘若之前沒有對x進行移位,直接強制轉換后運算就不對了,因為若原x的最高為1,轉換后成了負數,幅值必然改變。)將x強制轉換成有符號數后再運行終于在示波器上觀察到了久違的正弦波形。(另外,如果該ADC不是12bit而是16bit精度的話,若仍使用unsignedint型定義采樣數據x將無法實現算法,因為一個無符號數*有符號數在編譯的時候是默認為有符號數乘法,例如有符號數h=-1,無符號數x=0xffff,x*h得到的結果是1,而我們希望得到的是-32767)⑥雖然正弦波顯示了出來,但是驗證濾波器特性時發(fā)現過渡帶非常寬,和理論不符,那么問題只可能出在濾波器的系數上。于是重新導入濾波器系數,再次驗證得到正確的結果。七、實驗總結:回顧四次實驗,得益于預習充分,前三個實驗較為輕松地完成了任務,最后一個由于糾纏于數制類型上的種種問題,一波三折,不過最終也還是按照設計要求實現了高通濾波器的功能。從基礎實驗到任意信號發(fā)生器到數據采集再到最后的FIR濾波器的實現,由淺入深地讓我們體驗了一個數字信號處理系統(tǒng)從軟件到硬件的實現過程,收獲頗豐,主要總結如下:1、大到對DSP系統(tǒng)的總體開發(fā)過程(寫出任務說明確定技術指標選擇軟硬件確定芯片軟硬件說明軟件編程、硬件布局軟硬件調試系統(tǒng)集成系統(tǒng)測試)和調試流程(功能驗證實時性驗證性能驗證)有了初步的了解。小到對FIR濾波器設計流程有了一定的認識(先給定要求的理想濾波器頻響是,然后設計一個FIR濾波器,用其頻響去逼近。實現方法是先用IDTFT求出理想濾波器的,因為一般是非因果的,且無限長,物理上無法實現。所以通過加窗來截取長度為N的有限長序列。這個就是用MATLAB計算出來的系數)。最后到對FIR濾波器具體實現過程過程(見實驗過程部分)有了深刻的體會。2、掌握了TMS320F2812DSP芯片、片內外設等硬件的工作原理、內部構造和使用方法(主要是memorymap、內部中斷、ADC、DAC、LED)。熟悉了軟件CCS,掌握了DSP的基本調試方法。3、較為深刻地理解了定點DSP中數的定標、有限字長和溢出等概念(這也是實驗四的癥結所在)。4、對DSP系統(tǒng)實時性的定義和要求有了深刻的認識。5、鞏固了數字信號處理的理論知識,尤其是FIR濾波器部分。如線性相位型FIR濾波器的系數特點,階數N對過渡帶和幅度特性波動的影響等。6、對matlab的一些基本操作指令有了初步的了解。大學三年,做過那么多實驗,不敢說本實驗是最有意義的,但一定最合理的,也是我做得最認真的。原因有二。其一,數字信號處理有其獨特的魅力,一臺計算機,一塊芯片,若干外設就能實現多種多樣的功能,對輸入信號進行無窮的變換,有很廣的應用價值(如第一次課上視頻中展示的人物識別、讀心術和汽車電子都是通過很普通的硬件實現了神奇的功能。)其二是就本實驗來說并不困難,原理不涉及高深的理論,算法尤為簡單,硬件也并不復雜,上手很快,可以說整個實驗的難度是在我們的能力所及的范圍內,也就是讓實驗者能夠看到成功的曙光,自然在實驗過程中有動力可言。對比之下,這里就不得不吐槽一
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年太陽能光伏發(fā)電項目承包合同含設備供應與電站運維4篇
- 2025年度金融投資合作出資方合同模板3篇
- 智能家居中的嵌入式網絡通信技術
- 2025年度太陽能光伏板維修保養(yǎng)及發(fā)電系統(tǒng)維護合同3篇
- 家庭式臥床病人個性化運動方案制定
- 2025版創(chuàng)新型校車租賃及智能監(jiān)控系統(tǒng)合同3篇
- 個人之間房地產買賣合同(2024版)3篇
- 二零二五年度食品代理銷售授權合同范本2篇
- 2025年度能源監(jiān)測設備采購與數據分析合同3篇
- 2025年度數字化文檔儲藏室租賃與保密服務合同4篇
- 2024年供應鏈安全培訓:深入剖析與應用
- 飛鼠養(yǎng)殖技術指導
- 壞死性筋膜炎
- 整式的加減單元測試題6套
- 股權架構完整
- 山東省泰安市2022年初中學業(yè)水平考試生物試題
- 注塑部質量控制標準全套
- 銀行網點服務禮儀標準培訓課件
- 二年級下冊數學教案 -《數一數(二)》 北師大版
- 晶體三極管資料
- 石群邱關源電路(第1至7單元)白底課件
評論
0/150
提交評論