陳 靜 包頭師范學院信息科學與技術學院,包頭市 014030
數字濾波器的DSP仿真設計
陳 靜 包頭師范學院信息科學與技術學院,包頭市 014030
通過使用DSP的Device Simulator仿真器來實現數字濾波器的設計,詳細介紹了系數對稱的數字濾波器的設計方法及調試步驟,給出了電路仿真的結果,并通過CCS的虛擬示波器和頻譜儀觀察輸入輸出信號波形和頻譜變化,并對結果進行分析比較。
數字濾波器;有限沖激濾波器;虛擬示波器
數字濾波器是指完成信號濾波處理功能的,用有限精度算法實現的離散時間線性非時變系統,是數字信號處理的基本組成部分。其輸入是一組(由模擬信號取樣和量化的)數字量,其輸出是經過變換(或說處理)的另一組數字量。因此它本身既可以是用數字硬件裝配成的儀態完成給定運算的專用數字計算機,也可將所需的運算編成程序,讓通用計算機來執行。數字濾波器具有穩定性高、精度高、靈活性大等優點。
1)按照通常實際需要,確定濾波器的性能要求。通常(但不總是)是在頻域中給定數字濾波器的性能要求。

2)尋找一滿足預定性能要求的離散時間線性系統。FIR濾波器的系統函數是z-1的多項式。IIR濾波器的系統是z-1的有理函數。這樣,濾波器的設計問題變成了一個數學逼近問題,即用一個因果穩定的系統函數去逼近給定的性能要求,以確定濾波器系數。
3)用有限精度的運算實現所設計的系統。這里包括選擇運算結構,及對濾波器的系數,輸入變量,中間變量,和輸出變量量化到固定字長。
4)通過模擬,驗證所設計的系統是否符合給定性能要求。根據這步的結果決定是否對第2步和第3步作修改,以滿足要求。
數字濾波器有兩種類型[1]:有限沖激濾波器(FIR)無限沖激響應濾波器(IIR)。有限沖激響應濾波器的輸入/輸出關系為:

FIR濾波器的結構如圖1-1所示

系數對稱的FIR濾波器,由于具有線性相位特性,因此運用很廣,特別是在對相位失真要求很高的場合。
例,一個N=8的FIR濾波器若a(n)=a(N-1-n),,就是對稱FIR濾波器,其輸出方程為:y(n)=a0x(n)+a1x(n-1)+a2x(n-2)+a3x(n-3)+a4x(n-4)+a5x(n-5)+a6x(n-6)
+a7x(n-7)總共有8次乘法和7次加法。如果改寫成:y(n)=a0[x(n)+x(n-7)]
+a1[x(n-1)+x(n-6)]+a2[x(n-2)+x(n-5)]+a3[x(n-3)+x(n-4)],則變成4次乘法和7次加法。可見,乘法運算的次數減少了一半。這是對稱FIR的又一個優點。對稱FIR濾波器C54X實現要點如下:
1)在數據存儲器中開辟兩個循環緩沖區:New循環緩沖區中存放新數據,Old循環緩沖區中存放老數據。循環緩沖區的長度為N/2。
2)設置循環緩沖區指針:AR2指向New緩沖區中最新的數據,AR3指向Old緩沖區中最老的數據。
3)在程序存儲器中設置系數表。
4)AR2+AR3—>AH(累加器A的高位),AR2-1—>AR2, AR3-1—>AR3。
5)將累加器B清零,重復執行4次(i=0,1,2,3):AH*系數 +B—>B,系數指針(PAR)加1,AR2+AR3—>AH,AR2和AR3減1。
6)保存和輸出結果(結果在BH中)。
7)修復數據指針,讓AR2和AR3分別指向New緩沖區中最新的數據和Old緩沖區中最老的數據。
8)用New緩沖區中最老的數據代替Old緩沖區中的數據,Old緩沖區指針減1。

圖1
9)輸入一個新數據替代New緩沖區中最老的數據。重復執行第4~9步。
單擊Rebuild All編譯程序成功后,單擊File菜單的Load program,選擇Debug目錄中的fir.out文件,然后裝載程序。
1)打開觀察窗口
(1)選擇菜單View—>Graph—>Time/Frequency,在彈出窗口Graph Property Dialog中進行如圖1-2所示設置,單擊OK打開input窗口。
(2)選擇菜單View—>Graph—>Time/Frequency,在彈出窗口Graph Property Dialog中進行如圖1-3所示設置,單擊OK打開inputft窗口。
(3)選擇菜單View—>Graph—>Time/Frequency,在彈出窗口Graph Property Dialog中進行如圖1-4所示設置,單擊OK打開output窗口。
(4) 選擇菜單View—>Graph—>Time/Frequency,在彈出窗口Graph Property Dialog中進行如圖1-5所示設置,單擊OK打開outputft窗口。
2) 運行并觀察結果
選擇Debug菜單中的Run選項,或按F5鍵運行程序,再選擇Debug菜單中的Halt選項或按Shift+F5鍵停止運行程序,分別觀察input、output窗口中的時域圖形和inputft、outputft窗口中的頻域圖形,觀察濾波效果。

3.1 輸入信號:圖2

圖2
3.2 輸出信號:圖3
3.3 結論
左邊兩幅為時域的輸入及輸出波形,右邊兩幅為頻域的輸入及輸出波形,信號通過低通濾波器后在1333頻點處保留原信號(1500Hz是通帶截止頻率),從圖中很明顯可以看到2667頻點(阻帶截止頻率2000Hz)之后的高頻信號明顯被濾除,使用CCS的虛擬示波器和頻譜儀來觀察輸入/輸出信號波形和頻譜變化的方法很好地實現了數字低通濾波器的功能。

圖3
在設計中,充分利用先進的EDA軟件,往往能事半功倍,大大提高設計效率。由于設計要求的差異,如字長、各級輸出的保留精度等不同,所以,在整個設計過程中,各個環節會有所不同,這就需要根據不同的要求對數據進行不同的處理,如截斷、擴展等,從而設計出既滿足設計需要,又節省資源。
[1]王世一.數字信號處理[M].第 2版.北京:北京理工大學出版社.2004;164-176
[2]雷勇.DSP系統設計與實踐[M].第1版.北京:電子工業出版社. 2004;60-61
[3]程配青.數字信號處理教程[M]第3版.北京:清華大學出版社.2007;196-203
10.3969/j.issn.1001-8972.2011.08.093
陳靜 碩士 2008年畢業于四川大學電氣信息學院,現就任于包頭師范學院信息科學與技術學院,主要研究方向為現代信號處理 嵌入式系統。