【摘 要】DSP技術一般指將DSP 處理器用于完成數字信號處理的方法與技術。目前的DSP芯片以其強大的數據處理功能在通信和其他信號處理領域得到廣泛注意并已成為開發應用的熱點技術。本文深入研究基于美國德州儀器公司(TI)TMS320C5410 DSP芯片的濾波器系統軟件實現方法,用Blackman窗口設計法實現FIR濾波器,給出了MATLAB仿真結果,實驗結果表明濾波結果效果良好。利用MATLAB軟件開發產品加速了開發周期,比直接在CCS中編程方便快捷了很多,對于任何復雜功能的DSP系統,只需要進行少量的添加和修改就能完成功能正確的C語言程序設計。
【關鍵詞】FIR濾波 DSP CCS 自適應濾波器 Blackman窗函數法 MATLAB
一、概述
1.1設計背景
在信號處理中,濾波占有十分重要的地位。數字濾波與模擬濾波相比有很多優點,它除了可避免模擬濾波器固有的電壓漂移、溫度漂移和噪聲等問題外,還能滿足濾波器對幅度和相位的嚴格要求。
數字信號處理就是用數字信號處理器(DSP)來實現各種算法,由于具有精度高、靈活性強等優點,已廣泛應用在數字圖像處理、數字通信、數字音響、聲納、雷達等領域。文選用TMS320C54X作為DSP處理芯片,通過對其編程來實現FIR濾波器。
1.2設計要求
利用C語言在CCS環境中編寫一個FIR濾波器程序,并能利用已設計好的濾波器對常用信號進行濾波處理。
1.3設計思路簡介
在TMS320C54x系統開發環境CCS(Code Composer Studio)下對FIR濾波器的DSP實現原理進行討論。利用C語言設計相應的濾波器,通過實驗仿真,從輸入信號和輸出信號的時域和頻域曲線可看出在DSP上實現的FIR濾波器能完成預定的濾波任務。
二、系統設計與原理
2.1 FIR濾波器的基本理論
2.1.1 FIR濾波器的特點
本來在計算量相等的情況下,IIR數字濾波器比FIR濾波器的幅頻特性優越,頻率選擇性也好,但是,它有著致命的缺點,相位特性不好控制。它的相位特性f(w)=argH( )是使頻率產生嚴重的非線性的原因,這種‘與’的非線性關系,使數字濾波器與模擬濾波器在響應與頻率的對應關系上發生了畸變。如果需要線性相位,就必須用全通網絡進行復雜的相位校正,但是,在對程序運行周期數要求十分嚴格的DSP處理中加上一個全通均衡器是十分浪費資源的。另外,即使加上全通均衡器,對于因果的IIR濾波器,仍將得不到線性的相位。
在現代電子系統中,如圖像處理、數據傳輸等波形傳遞系統中都越來越多的要求信道具有線性的相位特性。在這方面 FIR濾波器具有獨到的優點,它可以在幅度特性隨意設計的同時,保證精確、嚴格的線性相位,因此這類濾波器應用很廣泛。
2.1 FIR濾波器設計總框圖
2.1.2 FIR濾波器的基本結構
2.2.2 頻率抽樣法
窗函數法是從時域出發,用窗函數截取理想的 得到h(n),以此有限長的h(n)近似 ,這樣得到的頻率響應 逼近于理想的頻響 。頻率抽樣法是從頻率出發,將給定的理想頻響 加以等間隔抽樣。
然后以此 作為FIR濾波器的頻率響應抽樣值H(k),再根據DFT(離散付氏變換)定義由頻域這N個抽樣值來唯一確定一個有限長序列h(n),同樣也可以算出FIR濾波器的系統函數H(z)及頻率響應 ,可以推出頻率響應 是頻率抽樣值H(k)與線性相位因子 及如下內插函數S(ω,k)的線性組合。
所以,在各頻率取樣點上,實際濾波器的頻響是嚴格地和所要求的濾波器的頻響一致的,逼近誤差為零,但在抽樣點之間的頻響是各取樣點的內插函數的延伸疊加而成,有一定的逼近誤差,誤差大小取決于頻率響應曲線的圓滑程度和抽樣點的密度,為了減少誤差,就要增加抽樣點數目即增大采樣頻率,抽樣點之間的理想頻率特性變化越陡。頻率抽樣法的優點是可以直接在頻域設計,適于利用最優化方法,而且這種方法特別適用于窄帶選頻濾波器,但頻率抽樣法的抽樣頻率只能是2π/ N 的整數倍或2π/ N 的整數倍加上π/ N不能保證截止頻率ωc的準確取值,要實現精確的ωc就必須取N大,相應的計算量也大。此外,它的阻帶最大衰減一般,也只有30-50dB左右,很難滿足頻域特性要求較高的場合。
2.2.3 Chebyshev逼近法
切比雪夫最佳一致逼近的基本思想是,對于給定區間[a,b]上的連續函數 ,在所有n次多項式的集合 中,尋找一個多項式 p(x),使它在[a,b]上對 的偏差和其它一切屬于 的多項式 p(x)對f(x)的偏差相比是最小的.
切比雪夫逼近理論,這樣的多項式是存在的,且是唯一的,并指出了構造這種最佳一致逼近多項式的方法,就是有名的“交錯點組定理”。
切比雪夫逼近理論解決了p(x)的存在性、唯一性和如何構造等問題。但它的效率依賴于初始極值頻率點的估計,且通帶和阻帶內波紋數較多,這是Chebyshev方法的兩個主要缺點。本文選擇使用布萊克曼窗函數法進行FIR濾波器的設計
三、FIR濾波器的MATLAB實現
3.1 MATLAB中的濾波器設計工具
MATLAB共有五種設計FIR數字濾波器的方法。第一種是窗函數法,對應的MATLAB函數有fir l,fir2,Kaiserord;第二種方法是含過渡帶的設計方法,它利用等紋波或者最小均方取逼近理想濾波器的頻域響應,對應的MATLAB函數有firls,remenz,remezord;第三種方法是最小二乘約束設計法,它是使設計的濾波器和理想濾波器的誤差在整個頻段上積分,使得積分值最小,對應的MATLAB函數有fircls,firclsl;第四種設計方法是非線性相位濾波器設計方法,它設計出FIR濾波器是非線性相位的,對應的MATLAB函數為cremez;第五種設計方法是升余弦設計方法,采用升余弦函數將進行濾波器設計,對應MATLAB函數為firrcosf。
在MATLAB環境下,利用它已有的大量濾波器設計函數,加上日益成熟且方便的界面技術,己經可以把所有的設計方法和過程集成在一起,構成一個濾波器綜合設計的工具。在信號處理工具箱中,這個工具的名稱為fdatool(Filter Design and Analysis Tool的縮寫)。在MATLAB命令窗中,鍵入fdatool,就得到界面。這個工具界面包含了全部濾波器設計的功能。窗函數為kaiser函數,采樣頻率為10KHz,由于所選用的低頻信號為500Hz,最小干擾噪聲為2KHz,通帶截止頻率Fc選取1KHz,阻帶截止頻率選取2KHz,通帶最大衰減為1dB,阻帶最大衰減為60dB。
四、FIR濾波器的結果檢驗
總結
當最初面對這個課題時說實話其實挺茫然的,不知從何下手,雖然之前學過一些相關知識,但還是第一次做如此全面具體的課題設計。還好之前有一定的編程基礎和對MATLAB有一定程度的學習和掌握,對于不了解的部分,同學大家互相了解和學習,從復習課本,到相互探討編程思路,上網搜索查閱資料,下載CCS軟件進行安裝與運行等,我們都收獲了太多太多。總的來說,我對FIR的濾波器性能和作用有了更深一層的了解。FIR濾波器的設計是數字信號處理技術的基礎,也是DSP芯片的重要組成部分。運用mathlab語言,我們能夠很容易的設計出具有嚴格線性相位的FIR濾波系統,以及比較容易的實現。
通過此次課題設計,我對DSP的基礎知識又有了很大的鞏固。其次,通過對用Matlab實現FIR濾波器的設計,熟悉了matlab軟件的一些相關的窗口函數以及相關功能的調用,如怎樣實現窗函數的調用,怎樣實現濾波,等等。更加熟悉了對MATLAB的使用。在空余時間里,面對不懂的問題我也會主動提出來尋求解答,此時大家總會互相探討,發表自己的看法,幫忙解決遇到的問題,分享自己的心得,取長補短,讓困難瞬間迎刃而解,在學習到新的知識的同時也加深了同學間的友誼。我也認識到了自己的不足,希望在以后的學習道路中我能更加完善自己!
【參考文獻】
[1] 趙剛,黃建明. 基于數字濾波器設計的討論[J].南開大學報(自然科學版),2003.26(3):15218
[2] 潘松,黃繼業,王國棟. 現代DSP技術. 西安電子科技大學出版社. 2003
[3] 陳金鷹.DSP技術及應用. 機械工業出版社.2004.6
[4] 周霖. DSP算法設計與系統方案. 國防工業出版社,2004.7
[5] 喬瑞萍,崔濤,張芳娟.TMS320C54xDSP原理及應用[M].西安:西安電子科技大學出版社.005