陳 靜 包頭師范學(xué)院信息科學(xué)與技術(shù)學(xué)院,包頭市 014030
數(shù)字濾波器的DSP仿真設(shè)計(jì)
陳 靜 包頭師范學(xué)院信息科學(xué)與技術(shù)學(xué)院,包頭市 014030
通過使用DSP的Device Simulator仿真器來實(shí)現(xiàn)數(shù)字濾波器的設(shè)計(jì),詳細(xì)介紹了系數(shù)對稱的數(shù)字濾波器的設(shè)計(jì)方法及調(diào)試步驟,給出了電路仿真的結(jié)果,并通過CCS的虛擬示波器和頻譜儀觀察輸入輸出信號波形和頻譜變化,并對結(jié)果進(jìn)行分析比較。
數(shù)字濾波器;有限沖激濾波器;虛擬示波器
數(shù)字濾波器是指完成信號濾波處理功能的,用有限精度算法實(shí)現(xiàn)的離散時(shí)間線性非時(shí)變系統(tǒng),是數(shù)字信號處理的基本組成部分。其輸入是一組(由模擬信號取樣和量化的)數(shù)字量,其輸出是經(jīng)過變換(或說處理)的另一組數(shù)字量。因此它本身既可以是用數(shù)字硬件裝配成的儀態(tài)完成給定運(yùn)算的專用數(shù)字計(jì)算機(jī),也可將所需的運(yùn)算編成程序,讓通用計(jì)算機(jī)來執(zhí)行。數(shù)字濾波器具有穩(wěn)定性高、精度高、靈活性大等優(yōu)點(diǎn)。
1)按照通常實(shí)際需要,確定濾波器的性能要求。通常(但不總是)是在頻域中給定數(shù)字濾波器的性能要求。
2)尋找一滿足預(yù)定性能要求的離散時(shí)間線性系統(tǒng)。FIR濾波器的系統(tǒng)函數(shù)是z-1的多項(xiàng)式。IIR濾波器的系統(tǒng)是z-1的有理函數(shù)。這樣,濾波器的設(shè)計(jì)問題變成了一個(gè)數(shù)學(xué)逼近問題,即用一個(gè)因果穩(wěn)定的系統(tǒng)函數(shù)去逼近給定的性能要求,以確定濾波器系數(shù)。
3)用有限精度的運(yùn)算實(shí)現(xiàn)所設(shè)計(jì)的系統(tǒng)。這里包括選擇運(yùn)算結(jié)構(gòu),及對濾波器的系數(shù),輸入變量,中間變量,和輸出變量量化到固定字長。
4)通過模擬,驗(yàn)證所設(shè)計(jì)的系統(tǒng)是否符合給定性能要求。根據(jù)這步的結(jié)果決定是否對第2步和第3步作修改,以滿足要求。
數(shù)字濾波器有兩種類型[1]:有限沖激濾波器(FIR)無限沖激響應(yīng)濾波器(IIR)。有限沖激響應(yīng)濾波器的輸入/輸出關(guān)系為:
FIR濾波器的結(jié)構(gòu)如圖1-1所示
系數(shù)對稱的FIR濾波器,由于具有線性相位特性,因此運(yùn)用很廣,特別是在對相位失真要求很高的場合。
例,一個(gè)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次加法??梢?,乘法運(yùn)算的次數(shù)減少了一半。這是對稱FIR的又一個(gè)優(yōu)點(diǎn)。對稱FIR濾波器C54X實(shí)現(xiàn)要點(diǎn)如下:
1)在數(shù)據(jù)存儲(chǔ)器中開辟兩個(gè)循環(huán)緩沖區(qū):New循環(huán)緩沖區(qū)中存放新數(shù)據(jù),Old循環(huán)緩沖區(qū)中存放老數(shù)據(jù)。循環(huán)緩沖區(qū)的長度為N/2。
2)設(shè)置循環(huán)緩沖區(qū)指針:AR2指向New緩沖區(qū)中最新的數(shù)據(jù),AR3指向Old緩沖區(qū)中最老的數(shù)據(jù)。
3)在程序存儲(chǔ)器中設(shè)置系數(shù)表。
4)AR2+AR3—>AH(累加器A的高位),AR2-1—>AR2, AR3-1—>AR3。
5)將累加器B清零,重復(fù)執(zhí)行4次(i=0,1,2,3):AH*系數(shù) +B—>B,系數(shù)指針(PAR)加1,AR2+AR3—>AH,AR2和AR3減1。
6)保存和輸出結(jié)果(結(jié)果在BH中)。
7)修復(fù)數(shù)據(jù)指針,讓AR2和AR3分別指向New緩沖區(qū)中最新的數(shù)據(jù)和Old緩沖區(qū)中最老的數(shù)據(jù)。
8)用New緩沖區(qū)中最老的數(shù)據(jù)代替Old緩沖區(qū)中的數(shù)據(jù),Old緩沖區(qū)指針減1。
圖1
9)輸入一個(gè)新數(shù)據(jù)替代New緩沖區(qū)中最老的數(shù)據(jù)。重復(fù)執(zhí)行第4~9步。
單擊Rebuild All編譯程序成功后,單擊File菜單的Load program,選擇Debug目錄中的fir.out文件,然后裝載程序。
1)打開觀察窗口
(1)選擇菜單View—>Graph—>Time/Frequency,在彈出窗口Graph Property Dialog中進(jìn)行如圖1-2所示設(shè)置,單擊OK打開input窗口。
(2)選擇菜單View—>Graph—>Time/Frequency,在彈出窗口Graph Property Dialog中進(jìn)行如圖1-3所示設(shè)置,單擊OK打開inputft窗口。
(3)選擇菜單View—>Graph—>Time/Frequency,在彈出窗口Graph Property Dialog中進(jìn)行如圖1-4所示設(shè)置,單擊OK打開output窗口。
(4) 選擇菜單View—>Graph—>Time/Frequency,在彈出窗口Graph Property Dialog中進(jìn)行如圖1-5所示設(shè)置,單擊OK打開outputft窗口。
2) 運(yùn)行并觀察結(jié)果
選擇Debug菜單中的Run選項(xiàng),或按F5鍵運(yùn)行程序,再選擇Debug菜單中的Halt選項(xiàng)或按Shift+F5鍵停止運(yùn)行程序,分別觀察input、output窗口中的時(shí)域圖形和inputft、outputft窗口中的頻域圖形,觀察濾波效果。
3.1 輸入信號:圖2
圖2
3.2 輸出信號:圖3
3.3 結(jié)論
左邊兩幅為時(shí)域的輸入及輸出波形,右邊兩幅為頻域的輸入及輸出波形,信號通過低通濾波器后在1333頻點(diǎn)處保留原信號(1500Hz是通帶截止頻率),從圖中很明顯可以看到2667頻點(diǎn)(阻帶截止頻率2000Hz)之后的高頻信號明顯被濾除,使用CCS的虛擬示波器和頻譜儀來觀察輸入/輸出信號波形和頻譜變化的方法很好地實(shí)現(xiàn)了數(shù)字低通濾波器的功能。
圖3
在設(shè)計(jì)中,充分利用先進(jìn)的EDA軟件,往往能事半功倍,大大提高設(shè)計(jì)效率。由于設(shè)計(jì)要求的差異,如字長、各級輸出的保留精度等不同,所以,在整個(gè)設(shè)計(jì)過程中,各個(gè)環(huán)節(jié)會(huì)有所不同,這就需要根據(jù)不同的要求對數(shù)據(jù)進(jìn)行不同的處理,如截?cái)?、擴(kuò)展等,從而設(shè)計(jì)出既滿足設(shè)計(jì)需要,又節(jié)省資源。
[1]王世一.數(shù)字信號處理[M].第 2版.北京:北京理工大學(xué)出版社.2004;164-176
[2]雷勇.DSP系統(tǒng)設(shè)計(jì)與實(shí)踐[M].第1版.北京:電子工業(yè)出版社. 2004;60-61
[3]程配青.數(shù)字信號處理教程[M]第3版.北京:清華大學(xué)出版社.2007;196-203
10.3969/j.issn.1001-8972.2011.08.093
陳靜 碩士 2008年畢業(yè)于四川大學(xué)電氣信息學(xué)院,現(xiàn)就任于包頭師范學(xué)院信息科學(xué)與技術(shù)學(xué)院,主要研究方向?yàn)楝F(xiàn)代信號處理 嵌入式系統(tǒng)。