利用DSP實現數字濾波器_第1頁
利用DSP實現數字濾波器_第2頁
利用DSP實現數字濾波器_第3頁
利用DSP實現數字濾波器_第4頁
利用DSP實現數字濾波器_第5頁
已閱讀5頁,還剩6頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

/DSP技術及應用課程設計報告課設名稱:利用DSP實現數字濾波器學院:信息工程專業:通信工程班級:2012159學號:201215925姓名:高亮輔導老師:李珺陳俊峰時間:2015年12月29目錄TOC\o"1-2"\f\u一.緒論11.1設計背景11.2設計要求11.3設計思路簡介1二.系統開發平臺與環境11.1CCS開發環境1三.FIR濾波器設計過程23.1FIR濾波器基本理論23.2FIR濾波器的MATLAB實現4四FIR濾波器的DSP實現10五.CCS仿真圖及結果12六.總結14七.參考文獻15一.緒論1.1設計背景在信號處理中.濾波占有十分重要的地位。數字濾波是數字信號處理的基本方法。數字濾波與模擬濾波相比有很多優點.它除了可避免模擬濾波器固有的電壓漂移、溫度漂移和噪聲等問題外.還能滿足濾波器對幅度和相位的嚴格要求。低通有限沖激響應濾波器<低通FIR濾波器>有其獨特的優點.因為FIR系統只有零點.因此.系統總是穩定的.而且容易實現線性相位和允許實現多通道濾波器。DSP〔數字信號處理器與一般的微處理器相比有很大的區別.它所特有的系統結構、指令集合、數據流程方式為解決復雜的數字信號處理問題提供了便利.本文選用TMS320C54X作為DSP處理芯片.通過對其編程來實現FIR濾波器。對數字濾波器而言,從實現方法上,有FIR濾波器和無限沖激響應<IIR>濾波器之分。由于FIR濾波器只有零點,因此這一類系統不像IIR系統那樣易取得比較好的通帶與阻帶衰減特性。但是FIR系統有自己突出的優點:①系統總是穩定的;②易實現線性相位;③允許設計多通帶<阻帶>濾波器。其中后兩項是IIR系統不易實現的。1.2設計要求利用C語言在CCS環境中編寫一個FIR濾波器程序.并能利用已設計好的濾波器對常用信號進行濾波處理。1.3設計思路簡介在TMS320C54x系統開發環境CCS〔CodeComposerStudio下對FIR濾波器的DSP實現原理進行討論。利用C語言設計相應的濾波器.通過實驗仿真.從輸入信號和輸出信號的時域和頻域曲線可看出在DSP上實現的FIR濾波器能完成預定的濾波任務。二.系統開發平臺與環境1.1CCS開發環境CCS提供了配置、建立、調試、跟蹤和分析程序的工具.它便于實時、嵌入式信號處理程序的編制和測試.它能夠加速開發進程.提高工作效率。CCS提供了基本的代碼生成工具.它們具有一系列的調試、分析能力。CCS支持如下圖1.1所示的開發周期的所有階段。圖1.1〔1FIR濾波器的特點數字濾波器的功能.就是把輸入序列通過一定的運算變換成輸出序列。它的實現方法有很多.其中比較常用到的是無限長脈沖響應濾波器IIR和有限長脈沖響應濾波器FIR兩種。在計算量相等的情況下.IIR數字濾波器比FIR濾波器的幅頻特性優越.頻率選擇性也好。但是.它有著致命的缺點.其相位特性不好控制。它的相位特性是使頻率產生嚴重的非線性的原因。但是在圖像處理、數據傳輸等波形傳遞系統中都越來越多的要求信道具有線性的相位特性。在這方面FIR濾波器具有它獨特的優點.設FIR濾波器單位脈沖響應h<n>長度為N.其系統函數H<z>為H<z>是的<N-1>次多項式.它在z平面上有<N-1>個零點.原點z=0是<N-1>階重極點。因此.H<z>永遠穩定.它可以在幅度特性隨意設計的同時.保證精確、嚴格的線性相位。〔2FIR濾波器的基本結構數字濾波是將輸入的信號序列.按規定的算法進行處理.從而得到所期望的輸出序列.FIR濾波器的差分方程為:對上式進行Z變換得到FIR濾波器的傳遞函數為:由上式可以看出.H<z>是的N-1次多項式.它在z平面內有N-1個零點.同時在原點處有N-1個重極點。N階濾波器通常采用N個延遲單元、N個加法器與N+1個乘法器.取圖中<a>、<b>兩種結構。圖FIR濾波器的一般結構因為FIR濾波器的單位抽樣響應是有限長的.所以它永遠是穩定的。另外.若對h<n>提出一些約束條件.那么可以很容易地使H<z>具有線性相位.這在信號處理的很多領域是非常重要的。FIR濾波器的設計任務.是要決定一個轉移函數H<z>.使它的頻率響應滿足給定的要求。這里所說的要求.除了通帶頻率、阻帶頻率及兩個帶上的最大和最小衰減和外.很重要的一條是保證H<z>具有線性相位。〔3Chebyshev逼近法窗函數法和頻率采樣法設計出的濾波器的頻率特性都是在不同意義上對所給理想頻率特性的逼近。由數值逼近理論可知.對某個函數f<x>的逼近一般有以下三種方法:插值法<InterpolatingWay>最小平方逼近法<LeastSquareApproachingWay>一致逼近法<ConsistentApproachingWay>切比雪夫最佳一致逼近的基本思想是.對于給定區間[a.b]上的連續函數.在所有n次多項式的集合中.尋找一個多項式p<x>.使它在[a.b]上對的偏差和其它一切屬于的多項式p<x>對f<x>的偏差相比是最小的.即切比雪夫逼近理論.這樣的多項式是存在的.且是唯一的.并指出了構造這種最佳一致逼近多項式的方法.就是有名的"交錯點組定理"。切比雪夫逼近理論解決了p<x>的存在性、唯一性和如何構造等問題。J.H.McClellan、T.W.Parks、L.R.Rabiner等人應用切比雪夫逼近理論提出了一種設計FIR濾波器的計算機輔助算法。這種算法由于是在一致意義上對作最佳逼近.因而獲得了較好的通帶和阻帶性能.并能準確地指定通帶和阻帶的邊緣。但它的效率依賴于初始極值頻率點的估計.且通帶和阻帶內波紋數較多.這是Chebyshev方法的兩個主要缺點。3.2FIR濾波器的MATLAB實現MATLAB輔助DSP實現FIR,其總體過程為在DSP中編寫處理程序.在MATLAB中利用濾波器設計、分析工具<FDATOOL>,根據指定的濾波器性能快速設計一個FIR,再把濾波器系數以頭文件形式導入CCS中,頭文件中MATLAB輔助DSP實現FIR數字濾波器含濾波器階數和系數數組,在MATLAB中調試、運行DSP程序并顯示、分析處理后的數據。使用該方法,便于采用匯編語言來實現程序。頭文件名不變,當MATLAB中設計的濾波器系數改變時,相應頭文件中系數也改變,方便程序調試、仿真。〔1輸入信號的產生首先利用Matlab產生導入CCS的dat文件.具體實現如下代碼所示sl=1000;%有效信號ns1=3000;%高頻噪聲fs=20000;%采樣頻率N=500;T=1/fs;n=0:N;signal=sin<2*pi*sl*n*T>;noise1=0.7*sin<2*pi*ns1*n*T>;x=<signal+noise1>;%待濾波信號figure<1>plot<x>figure<2>y=abs<fft<x>>;%待濾波頻譜df=n*<fs/N>;plot<df,y>figure<3>plot<signal>figure<4>ysignal=abs<fft<signal>>;%濾波后頻譜df=n*<fs/N>;plot<df,ysignal>%濾波數據導出xout=x/max<x>;%歸一化xto_css=round<32767*xout>;%數據取整xoutcss=xto_css;fid=fopen<'C:\Users\zhaoyongwei\Desktop\myprojects\input.dat','w'>;%打開文件fprintf<fid,'16511000\n'>;%輸出文件頭fprintf<fid,'%d\n',xoutcss>;%輸出fclose<fid>;產生的時域波形如圖所示:圖輸入信號波形圖輸入頻譜經過濾波器后的預期時域波形如圖:圖輸出時域波形頻譜如圖所示圖輸出頻譜濾波器的設計MATLAB集成了一套功能強大的濾波器設計工具FDATool〔FilterDesign&AnalysisTool.可以完成多種濾波器的設計、分析和性能評估。a.打開FilterDesign&AnalysisTool單擊MATLAB主窗口下方的"Start"按鈕.選擇菜單"ToolBox"→"FilterDesign"→"FilterDesign&AnalysisTool〔FDATool"命令.打開FDATool.如圖所示。圖fadatool的啟動b.產生濾波器階數為81階.這里應填80.比階數少1。窗函數選擇切比雪夫型〔chebyshev.采樣頻率為20000Hz.通帶截止頻率為750Hz。圖濾波器的幅頻特性圖濾波器的相位特性c.產生濾波器系數和頭文件圖濾波器系數圖頭文件的產生最后將產生的頭文件中的濾波器系數數組放入編寫好的濾波器函數中.并在進行CCS中進行調試與測試。四FIR濾波器的DSP實現〔1DSP中濾波器的算法實現FIR濾波器的輸出表達式為式中.為濾波器系數;x<n>表示濾波器在n時刻的輸入;y<n>為n時刻的輸出。它的基本算法是一種乘法-累加運算.即不斷地輸入樣本x<n>.經過延時后.再進行乘法-累加.最后輸出濾波結果y<n>。線性緩沖區法:線性緩沖區法又稱延遲線法.其特點:對于N級的FIR濾波器.在數據存儲器中開辟一個N單元的緩沖區〔滑窗.用來存放最新的N個輸入樣本;從最老樣本開始取數.每取一個樣本后.將此樣本向下移位;讀完最后一個樣本后.輸入最新樣本存入緩沖區的頂部。循環緩沖區法:循環緩沖區法的特點如下:對于N級FIR濾波器.在數據存儲器中開辟一個N單元的緩沖區〔滑窗.用來存放最新的N個輸入樣本;從最新樣本開始取數;讀完最后一個樣本〔最老樣本后.輸入最新樣本來代替最老樣本.而其他數據位置不變;用片內BK〔循環緩沖區長度寄存器對緩沖區進行間接尋址.使循環緩沖區地址首尾相鄰。本次設計的FIR濾波器所采用的就是循環緩沖區法。C語言實現FIR采用C語言算法在DSP平臺上實現了FIR低通數字濾波器.C語言算法相比于匯編算法可移植性很強。這里是在TMS320VC5510DSP為平臺編寫的C語言算法,此算法可以稍加改動用在其他DSP芯片上,而匯編算法則不然。這種方法具有以下優點:<a>程序的入口和出口由C語言自動管理.不必手工編寫匯編程序實現。<b>程序結構清晰.可讀性強。<c>程序調試方便。由于C程序中的變量全部由C語言來定義.因此采用C源碼調試器可以方便地觀察C語言變量。<d>可移植性較強.通用性較好。具體代碼如下:#include"stdio.h"#include"fdacoefs.h"http://頭文件包含濾波器的系數#defineN81//定義濾波器的階數為81階#defineLength200//定義緩沖區數組大小為200longyn;intinput[Length];//存放輸入數據intoutput[Length];//存放輸出數據voidmain<>{ intm,n; int*x; for<n=0;n<Length-1;n++>//循環導入數據 { x=&input[n];//指針指向每次導入的數據 yn=0;//每做完一次乘累加后.把值賦給output數組后.從新歸0 for<m=0;m<N-1;m++> yn+=B[m]*<*<x++>>;//做N次的乘累加 output[n]=yn;把值賦給output數組 } while<1>;//做完濾波后使程序保持在本循環中}CCS是TI推出的用于開發其DSP芯片的繼承開發調試工具,集編輯、編譯、鏈接、軟件仿真、硬件調試及實時跟蹤等功能于一體,極大地方便了DSP程序的設計與開發,此外還提供圖形顯示功能,方便用戶觀察特定地址的波形。此外,還需向工程中添加Link.cmd文件〔源碼見附錄。在CCSV3.3中建立工程.把c源代碼和.cmd文件導入后.外加rts.lib文件.它是TI提供的運行時支持庫,如果是C代碼寫的源程序,必須要包含該庫,該庫由TI公司做好放在CCS\cgtools\lib中,源代碼TI網站可以下載。添加完成后.編譯通過后.下載.out文件.導入.dat文件后運行程序。采用CCS的圖形顯示功能,分別觀察輸入信號x<n>、輸出信號y<n>的時域波形和頻域波形,輸入信號波形如圖所示。圖濾波前時域波形圖濾波前頻譜圖經過濾波后.觀察輸出波形如下圖濾波后時域波形圖濾波后頻譜圖為了更加直觀的觀察濾波器的性能和濾波效果.把濾波前后的時域波形和頻譜圖進行對比和分析.具體如下:圖濾波前后對比時域和頻譜綜上分析.濾波器實現濾除高頻噪聲.而且保證原信息信號基本不失真的功能.濾波效果較好.性能優越。剛開始面對的時候.我們不知從哪里入手.盡管做過實驗。對于題目.具體需要做什么.能不能做出來.我們并不清楚。但當時間一天天過去后.我們開始認真起來

溫馨提示

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

評論

0/150

提交評論