沙巖+李娜娜+王換換+朱曉寧+王丹

數字濾波器是對數字信號進行濾波處理以得到期望的響應特性的離散時間系統。在眾多通用數字信號處理器中,美國TI公司生產的TMS320系列單片DSP在國際上占有較大市場,這種單片DSP把高速控制器的靈活性和陣列處理器的數值計算能力結合起來。
一、IIR數字濾波器結構原理
本文IIR數字濾波器的設計方法:借助于模擬濾波器的設計方法設計出模擬濾波器,利用沖激響應不變法或雙線性變換法轉換成數字濾波器,然后用硬件或軟件實現。
從IIR數字濾波器的實現來看,有直接型、級聯型、并聯型等基本網絡結構。其中直接Ⅱ型僅需要N級延遲單元,且可作為級聯型和并聯型結構中的基本單元。本文以二階IIR濾波器的直接實現形式表示。其系統函數H(z)可以表示為:
在編程時,可以將變量和系數都存在DARAM中,采用循環緩沖區方式尋址,共需開辟4個緩沖區,用來存放變量和系數。
二階IIR濾波器的直接IIR 型差分方程為:
(3)
二、IIR數字濾波器在C54x上的設計與實現
1.IIR數字濾波器在TMS320VC5409 DSP上的實現流程
1.1根據指標確定濾波器的類型,設計出濾波器的參數;
1.2根據DSP的特點(字長、精度等)對參數進行取舍、量化,仿真;
1.3根據仿真結果對濾波器的結構、參數再次進行調整,直到滿足要求為止;
1.4在DSP上用語言實現濾波器功能。
2.IIR數字濾波器在TMS320VC5409 DSP上的實現算法
從理論上說,可以用高階IIR數字濾波器實現良好的濾波效果[2]。但由于DSP本身有限字長和精度的因素,加上IIR濾波器在結構上存在反饋回路,是遞歸型的,再者高階濾波器參數的動態范圍很大。這樣一來造成兩個后果:結果溢出和誤差增大。解決此問題的有效方法是把高階IIR數字濾波器簡化成幾個2階濾波器來設計,即采用級聯結構。
通過CCS的數據輸入輸出功能和RTDX功能,可以隨時觀察DSP結果和理論仿真結果之間的差異,及時發現數據的溢出和計算誤差 [3]。濾波沒有產生溢出現象且濾波效果滿足設計要求。采用間接尋址指向數據存儲單元,主要指令為加法、乘法和循環實現,這些都可以通過MAC等指令直接實現[4]。
三、IIR濾波器性能仿真和實際測試
1.在CCS環境下實現IIR數字濾波器
在CCS環境中用匯編語言編寫一個實現IIR數字濾波器的程序及鏈接器命令文件,最終通過CCS的圖形顯示工具觀察輸入信號和輸出信號波形以及頻譜的變換。
采用雙線性變化法設計,主要技術指標如下:Fp=100Hz,Fst=300Hz,Rp=3dB,Rs=20dB,取樣頻率為1000Hz。
濾波器采用巴特沃思模擬低通濾波器設計,經計算可得:
2.結果分析
由MATLAB編程生成的IIR數字濾波器的輸入數據。頻率分別為50赫茲和350赫茲的兩個頻率信號,經過此IIR濾波器后,頻率為350赫茲的信號得到一定程度的壓制,頻率為50赫茲的信號被保留,基本上達到預期的濾波效果。但因為濾波器的性能不是非常理想,因此引入一定的噪聲(比如150Hz頻段)。輸入、輸出信號的1頻譜圖見圖1。
本文介紹了一種基于C5409硬件平臺的IIR數字濾波器實現方案。IIR數字濾波器是針對采樣率固定的系統設計的,更改系統或系統采樣率改變時應重新設計。用到的數據存儲單元,程序開始時應對這些單元進行初始化。如果要進行連續濾波,應保存上一次濾波的結果。針對TI公司的TMS320VC5409 DSP,闡述了IIR數字濾波器的理論設計及在DSP上的實現過程。根據其實現思路,可以很方便設計出符合要求的濾波器。該方法具有較強的實用性。
參考文獻
[1]彭啟琮,管慶,李玉柏.DSP技術的發展與應用.北京:高等教育出版社,2012
[2]張偉雄,徐光輝,陳亮.DSP芯片的原理與開發應用.北京:電子工業出版社,2013
[3]彭啟琮.TMS320VC54x實用教程.成都:電子科技大學出版社,2010
[4]劉順蘭,吳杰.數字信號處理.西安:西安電子科技大學出版社,2013