姜恩華,袁廣宇,陳得寶,楊一軍
(淮北師范大學(xué)物理與電子信息學(xué)院,安徽淮北235000)
數(shù)字信號(hào)處理課程主要講述的經(jīng)典數(shù)字濾波器,分為無(wú)限長(zhǎng)脈沖響應(yīng)IIR濾波器和有限長(zhǎng)脈沖響應(yīng)FIR濾波器兩種類型,如何開(kāi)展數(shù)字濾波器實(shí)驗(yàn)教學(xué)一直是數(shù)字信號(hào)處理課程教學(xué)的難點(diǎn)。本文采用雙線性變換法實(shí)現(xiàn)IIR濾波器的實(shí)驗(yàn)設(shè)計(jì),采用窗函數(shù)法實(shí)現(xiàn)FIR濾波器的實(shí)驗(yàn)設(shè)計(jì)。在CCS集成開(kāi)發(fā)環(huán)境下[1],采用C語(yǔ)言編寫(xiě)程序,以IIR帶通濾波器實(shí)驗(yàn)設(shè)計(jì)為例,討論IIR濾波器的實(shí)驗(yàn)設(shè)計(jì)過(guò)程和程序?qū)崿F(xiàn)。以FIR高通濾波器實(shí)驗(yàn)設(shè)計(jì)為例,討論FIR濾波器的實(shí)驗(yàn)設(shè)計(jì)過(guò)程和程序?qū)崿F(xiàn)。并通過(guò)比較濾波器輸入序列x(n)和輸出序列y(n)的頻譜,驗(yàn)證實(shí)驗(yàn)結(jié)果的正確性。
文獻(xiàn)[2-3]探索了CCS用于“信號(hào)處理”課程的實(shí)驗(yàn)教學(xué),該方法需要DSP硬件設(shè)備的支持;文獻(xiàn)[4-5]探索了采用CCS和MATLAB相結(jié)合的方法,該方法需要MATLAB軟件的支持。本文研究通過(guò)CCS3.3軟件搭建完成數(shù)字濾波器實(shí)驗(yàn)設(shè)計(jì)的軟件實(shí)驗(yàn)環(huán)境,選擇C5402 Device Simulator作為軟件模擬器,根據(jù)數(shù)字濾波器實(shí)驗(yàn)設(shè)計(jì)的數(shù)據(jù)和程序要求編寫(xiě)CMD存儲(chǔ)器配置文件;通過(guò)CCS軟件菜單欄中的View菜單中的Graph子菜單中的time/frequency[6],并借助time/frequency菜單,觀察數(shù)字濾波器輸出序列y(n)的波形和頻譜。在CCS集成開(kāi)發(fā)環(huán)境下,通過(guò)C語(yǔ)言編寫(xiě)程序?qū)崿F(xiàn)數(shù)字濾波器實(shí)驗(yàn)設(shè)計(jì),熟練掌握CCS軟件以工程文件組織程序文件的方法,首先建立一個(gè)工程文件[6],然后把程序文件添加到工程文件中,對(duì)工程文件進(jìn)行編譯并加載到軟件仿真器中,然后運(yùn)行程序,觀察數(shù)字濾波器設(shè)計(jì)的實(shí)驗(yàn)結(jié)果。
IIR濾波器實(shí)驗(yàn)設(shè)計(jì)主要分為三個(gè)步驟。首先,輸入序列x(n)設(shè)計(jì);其次,根據(jù)IIR濾波器設(shè)計(jì)的技術(shù)指標(biāo),通過(guò)雙線性變換法,得到模擬濾波器的技術(shù)指標(biāo),通過(guò)模擬濾波器設(shè)計(jì)(例如:巴特沃斯濾波器設(shè)計(jì)),求得模擬濾波器的系統(tǒng)函數(shù)Ha(s),根據(jù)Ha(s)和H(z)的分子分母多項(xiàng)式系數(shù)關(guān)系表[7],求得系統(tǒng)函數(shù)H(z)的分子分母多項(xiàng)式的系數(shù),從而得到IIR濾波器的常系數(shù)差分方程;再次,把x(n)和初始條件代入常系數(shù)差分方程,通過(guò)遞推方法求解常系數(shù)差分方程,由此求得IIR濾波器的輸出序列y(n)。本文以IIR帶通濾波器實(shí)驗(yàn)設(shè)計(jì)為例,在CCS集成開(kāi)發(fā)環(huán)境下,通過(guò)C語(yǔ)言編寫(xiě)程序,討論IIR帶通濾波器實(shí)驗(yàn)設(shè)計(jì)的過(guò)程。IIR低通、高通和帶阻濾波器也可以按照此方法進(jìn)行設(shè)計(jì)。
假設(shè)IIR帶通濾波器的通帶下限截止頻率為ωp1,通帶上限截止頻率為ωp2,ω∈[-π,π]時(shí),通帶范圍為ωp1≤|ω|≤ωp2,阻帶范圍為ωp2< |ω|≤π,0≤|ω|≤ωp1[8]。
假設(shè)IIR帶通濾波器的通帶歸一化截止頻率為:bandpass1=0.24;bandpass2=0.26,則IIR帶通濾波器的通帶截止頻率為:ωp1=bandpass1*2*pi=0.48π;ωp2=bandpass2*2*pi=0.52π。
根據(jù)通帶截止頻率ωp1和ωp2,設(shè)計(jì)的輸入序列x(n)如(1)式所示。
在C語(yǔ)言的main主函數(shù)中,把(1)轉(zhuǎn)換為C語(yǔ)言語(yǔ)句,假設(shè)輸入序列的長(zhǎng)度為N=256,求出輸入序列x(n),借助time/frequency菜單觀察x(n)的時(shí)域波形如圖1所示,頻譜如圖2所示。
圖1 輸入序列x(n)的時(shí)域波形
圖2 輸入序列x(n)的頻譜
假設(shè)模擬低通濾波器的歸一化的系統(tǒng)函數(shù)如(2)所示。
通過(guò)對(duì)(2)去歸一化,把(2)轉(zhuǎn)換為IIR帶通濾波器的系統(tǒng)函數(shù)Ha(s),如(3)所示[7]。
根據(jù)通帶截止頻率ωp1和ωp2,通過(guò)雙線性變換法頻率變換公式,假設(shè) T=2秒,把 ωp1和ωp2轉(zhuǎn)換為模擬域頻率Ωp1和Ωp2,如(4)所示。
根據(jù)IIR帶通濾波器的通帶寬度B=Ωp2-Ωp1和中心頻率=Ωp1*Ωp2計(jì)算公式,計(jì)算出通帶寬度B和通帶中心頻率Ω0,代入(3),求出模擬帶通濾波器的系統(tǒng)函數(shù)Ha(s)。
根據(jù)Ha(s)分子分母多項(xiàng)式系數(shù),查找系數(shù)關(guān)系表[7],由于Ha(s)的階數(shù)為2,所以把系數(shù)關(guān)系表中k=2的公式轉(zhuǎn)換為C語(yǔ)言的語(yǔ)句,編寫(xiě)求解H(z)的分子分母多項(xiàng)式系數(shù)的子程序,在C語(yǔ)言的main主函數(shù)中,調(diào)用此子程序,求得H(z)的分子分母多項(xiàng)式的系數(shù),從而得到IIR帶通濾波器的常系數(shù)差分方程。
采用遞推方法求解IIR濾波器的常系數(shù)差分方程的步驟如下[7-9]:初始條件w2=w1=w0=0.
根據(jù)輸入序列x(n)和初始條件,在C語(yǔ)言的main函數(shù)中,把遞推方法求解差分方程的公式,轉(zhuǎn)換為C語(yǔ)言的語(yǔ)句,計(jì)算出IIR帶通濾波器的輸出序列y(n),借助time/frequency菜單觀察y(n)的時(shí)域波形如圖3所示,頻譜如圖4所示。比較輸入序列x(n)和輸出序列y(n)的頻譜,可以看出,輸出序列y(n)就是輸入序列x(n)的中頻成分。
圖3 輸出序列y(n)的時(shí)域波形
圖4 輸出序列y(n)的頻譜
FIR濾波器實(shí)驗(yàn)設(shè)計(jì)主要分為三個(gè)步驟。首先,設(shè)計(jì)輸入序列x(n);其次,根據(jù)FIR濾波器的類型,設(shè)計(jì)其單位脈沖響應(yīng)h(n);再次,編寫(xiě)計(jì)算x(n)和h(n)的線性卷積子程序,計(jì)算FIR濾波器的輸出序列y(n)。本文以FIR高通濾波器實(shí)驗(yàn)設(shè)計(jì)為例,在CCS集成開(kāi)發(fā)環(huán)境下,通過(guò)C語(yǔ)言編寫(xiě)程序,討論FIR高通濾波器的實(shí)驗(yàn)設(shè)計(jì)過(guò)程,F(xiàn)IR低通、帶通和帶阻濾波器也可以按照此方法進(jìn)行設(shè)計(jì)。
假設(shè)FIR數(shù)字高通濾波器的截止頻率ωc=0.1π,則設(shè)計(jì)的FIR高通濾波器的單位脈沖響應(yīng)h(n)如(5)所示[8]。
圖5 單位脈沖響應(yīng)h(n)的時(shí)域波形
圖6 單位脈沖響應(yīng)h(n)的頻譜
在C語(yǔ)言的main主函數(shù)中,把(5)轉(zhuǎn)換為C語(yǔ)言語(yǔ)句,假設(shè)h(n)的長(zhǎng)度N=128,計(jì)算單位脈沖響應(yīng)h(n),借助time/frequency菜單觀察h(n)的時(shí)域波形如圖5所示,頻譜如圖6所示。
根據(jù)FIR高通濾波器的截止頻率ωc=0.1π,輸入序列x(n)設(shè)計(jì)為兩個(gè)正弦序列的疊加,其中一個(gè)正弦序列的頻率小于ωc,另一個(gè)正弦序列的頻率大于ωc,如(6)所示。在C語(yǔ)言的main主函數(shù)中,把(6)轉(zhuǎn)換為C語(yǔ)言語(yǔ)句,假設(shè)x(n)的長(zhǎng)度N=128,計(jì)算出輸入序列x(n),借助time/frequency菜單觀察x(n)的時(shí)域波形如圖7所示,頻譜如圖8所示。
圖7 輸入序列x(n)的時(shí)域波形
圖8 輸入序列x(n)的頻譜
FIR高通濾波器的常系數(shù)差分方程就是輸入序列x(n)和單位脈沖響應(yīng)h(n)的線性卷積計(jì)算公式,所以FIR高通濾波器的輸出序列y(n)可以通過(guò)計(jì)算x(n)和h(n)的線性卷積求出。計(jì)算線性卷積的步驟分為:翻轉(zhuǎn)、移位、相乘和求和[7-9],根據(jù)線性卷積的計(jì)算步驟編寫(xiě)計(jì)算線性卷積的子程序,此程序采用兩重循環(huán),外層循環(huán)為移位運(yùn)算,循環(huán)變量為n,內(nèi)層循環(huán)為相乘求和運(yùn)算,循環(huán)變量為m,根據(jù)相乘求和的上下限確定內(nèi)層循環(huán)的起始條件和終止條件,根據(jù)相乘求和時(shí)序列x(n)和h(n)的邊界確定相乘求和時(shí)存放序列x(n)和h(n)的數(shù)組的下標(biāo),通過(guò)C語(yǔ)言編寫(xiě)線性卷積子程序。
在C語(yǔ)言的main主函數(shù)中,調(diào)用線性卷積子程序,計(jì)算輸入序列x(n)和單位脈沖響應(yīng)h(n)的線性卷積,求出輸出序列y(n),借助time/frequency菜單觀察y(n)的時(shí)域波形如圖9所示,頻譜如圖10所示。比較輸入序列x(n)和輸出序列y(n)的頻譜,可以看出,輸出序列y(n)就是輸入序列x(n)的高頻成分,其周期N為16。
圖9 輸出序列y(n)的時(shí)域波形
圖10 輸出序列y(n)的頻譜
綜上所述,借助CCS3.3軟件,選擇C5402 Device Simulator作為軟件模擬器,搭建了IIR和FIR濾波器實(shí)驗(yàn)設(shè)計(jì)的軟件環(huán)境,采用C語(yǔ)言編寫(xiě)程序,采用雙線性變換法實(shí)現(xiàn)IIR濾波器實(shí)驗(yàn)設(shè)計(jì),采用窗函數(shù)法實(shí)現(xiàn)FIR濾波器實(shí)驗(yàn)設(shè)計(jì),實(shí)驗(yàn)設(shè)計(jì)過(guò)程主要包括:首先,輸入序列x(n)設(shè)計(jì)。其次,通過(guò)求解IIR濾波器的系統(tǒng)函數(shù)H(z),得到IIR濾波器的常系數(shù)差分方程;FIR濾波器的單位脈沖響應(yīng)h(n)設(shè)計(jì)。再次,通過(guò)遞推方法求解常系數(shù)差分方程,計(jì)算IIR濾波器的輸出序列y(n);通過(guò)計(jì)算輸入序列x(n)和單位脈沖響應(yīng)h(n)的線性卷積,計(jì)算FIR濾波器的輸出序列y(n)。以IIR帶通濾波器和FIR高通濾波器實(shí)驗(yàn)設(shè)計(jì)為例,詳細(xì)討論了IIR和FIR濾波器實(shí)驗(yàn)設(shè)計(jì)過(guò)程。借助time/frequency菜單觀察輸入序列x(n)和輸出序列y(n)的時(shí)域波形和頻譜,比較x(n)和y(n)的頻譜,并驗(yàn)證實(shí)驗(yàn)結(jié)果的正確性。
[1]Code Composer Studio(CCS)集成開(kāi)發(fā)環(huán)境(IDE)[EB/OL].(2014-01-02)[2014-04-05].http://www.ti.com.cn/tool/cn/CCSTUDIO.
[2]劉成云,陳振學(xué),孔慧.基于CCS的“信號(hào)分析與處理”實(shí)驗(yàn)教學(xué)[J].實(shí)驗(yàn)室研究與探索,2010,29(11):97-100.
[3]謝海霞,孫志雄.FIR 濾波器的 DSP 實(shí)現(xiàn)[J].電子器件,2012,35(5):554-557.
[4]李波,王冬霞.MATLAB在CCS集成編程環(huán)境中應(yīng)用的研究[J].渤海大學(xué)學(xué)報(bào):自然科學(xué)版,2010,31(1):84-88.
[5]梅志紅,趙莉.基于CCS環(huán)境和MATLAB仿真的FIR數(shù)字濾波器實(shí)現(xiàn)[J].電氣電子教學(xué)學(xué)報(bào),2005,27(3):44-47.
[6]彭啟琮.TI DSP集成化開(kāi)發(fā)環(huán)境(CCS)使用手冊(cè)[M].北京:清華大學(xué)出版社,2007.
[7]丁玉美,高西全.數(shù)字信號(hào)處理[M].2版.西安:西安電子科技大學(xué)出版社,2001.
[8]程佩青.數(shù)字信號(hào)處理教程[M].3版.北京:清華大學(xué)出版社,2007.
[9]A.V.奧本海姆,R.W.謝弗,J.R.巴克.劉樹(shù)棠,黃建國(guó),譯.離散時(shí)間信號(hào)處理[M].2 版.陜西:西安交通大學(xué)出版社,2001.