姜恩華, 李素文, 竇德召, 陳得寶, 邵 芬
(淮北師范大學 物理與電子信息學院, 安徽 淮北 235000)
基于CCS軟件的IIR濾波器實驗設計
姜恩華, 李素文, 竇德召, 陳得寶, 邵 芬
(淮北師范大學 物理與電子信息學院, 安徽 淮北 235000)
借助CCS軟件完成了IIR濾波器實驗設計,主要設計工作包括輸入序列x(n)設計、求解系統函數H(z)的程序設計和求解常系數差分方程的程序設計。首先,通過輸入序列x(n)設計和系統函數H(z)設計,求出x(n)和常系數差分方程的系數;其次,調用遞推方法求解常系數差分方程的子程序,計算IIR濾波器的輸出序列y(n)。借助time/frequency選單觀察y(n)的時域波形和頻譜。
IIR濾波器; CCS軟件; 實驗設計; 常系數差分方程
數字信號處理課程是電子信息、通信工程和信號處理等專業的一門核心課程,在數字信號處理的實驗教學中,如何進行IIR濾波器設計的實驗教學是值得研究的問題[1]。本文借助TI公司的CCS軟件[2]搭建了IIR濾波器設計的軟件實驗環境,選擇C5402 Device Simulator作為軟件模擬器,在CCS集成開發環境下,采用C語言編寫IIR濾波器設計的實驗程序,完成了IIR濾波器設計的實驗教學,取得了良好的實驗教學效果。
文獻[3-4]探索了CCS用于“信號處理”課程實驗教學的方法,該方法需要DSP硬件設備的支持;文獻[5-6]探索了采用CCS和Matlab相結合的方法,通過Matlab程序生成IIR濾波器的系統函數H(z)的分子和分母多項式的系數,供CCS環境下的IIR程序使用,該方法需要Matlab軟件的支持。筆者根據IIR濾波器設計實驗的數據和程序要求編寫CMD存儲器配置文件,使IIR濾波器設計的實驗教學不需要DSP硬件實驗設備或Matlab軟件的支持就可順利完成。
由于IIR濾波器設計實驗需要觀察信號的波形和頻譜,所以要熟悉CCS軟件View選單中Graph的time/frequency子選單,借助time/frequency觀察信號的波形[7]。
借助CCS軟件輔助IIR濾波器設計的實驗教學,主要是在CCS集成開發環境下,通過C語言編寫程序實現,所以必須熟悉CCS軟件以工程文件組織程序的方法[7],即首先建立一個工程文件,然后把程序文件添加到工程文件中,對工程文件進行編譯,加載到軟件仿真器中,然后運行程序并觀察實驗結果。
IIR濾波器實驗設計主要包括輸入序列x(n)設計、求解系統函數H(z)分子和分母多項式的系數程序設計和遞推方法求解常系數差分方程的程序設計。在C語言的主函數main中,通過設計輸入序列x(n)和求解系統函數H(z)分子和分母多項式的系數,求出輸入序列x(n)和常系數差分方程的系數;然后把初始條件和輸入序列x(n)代入常系數差分方程,通過遞推方法求解常系數差分方程,求得IIR濾波器的輸出序列y(n),借助time/frequency選單觀察y(n)的時域波形和頻譜。
2.1 輸入序列x(n)設計
根據IIR濾波器的通帶和阻帶范圍,參照通帶或阻帶的截止頻率[8-10],輸入序列設計為幾個正弦序列相加而成的混疊信號。由于IIR低通濾波器和高通濾波器的通帶截止頻率為ωc,所以輸入序列可以設計為式(1),其中ω1<ωc,ω2>ωc。由于IIR帶通和帶阻濾波器的下限截止頻率為ωc1和上限截止頻率為ωc2,所以輸入序列可以設計為式(2),其中0<ω1<ωc1,ωc1<ω2<ωc2,ωc2<ω3<π。
(1)
(2)
2.2 IIR濾波器的系統函數H(z)設計
2.2.1 求解模擬濾波器系統函數Ha(s)
由于IIR濾波器的設計通常借助模擬濾波器設計完成,當采用雙線性變換法設計IIR濾波器時,首先通過雙線性變換法的頻率變換公式把待設計的IIR濾波器的技術指標轉換為模擬濾波器的技術指標,然后通過頻帶變換,把模擬濾波器的技術指標轉換為模擬低通濾波器的歸一化技術指標,采用模擬低通濾波器設計方法(例如采用巴特沃斯低通濾波器設計方法)求出模擬低通濾波器歸一化的系統函數G(p),然后對G(p)去歸一化,得到相應的模擬濾波器的系統函數Ha(s),Ha(s)的一般表達式如式(3)所示[8]。
(3)
2.2.2 求解IIR濾波器的系統函數H(z)子程序設計
采用雙線性變換法,把模擬濾波器的系統函數Ha(s)轉換為IIR濾波器的系統函數H(z),H(z)的一般表達式如式(4)所示。由于Ha(s) 分子和分母多項式的系數和H(z)的分子和分母多項式的系數之間的關系有系數關系表供設計時使用[8-9],所以將Ha(s)轉換成H(z)時,可按照系數關系表中的公式,通過C語言編程實現。根據k的取值,分別編寫k等于1,2,3,4,5等的C語言子程序,求得系統函數H(z)的分子和分母多項式的系數。
(4)
2.3 遞推方法求解常系數差分方程的子程序設計
通過IIR濾波器的系統函數H(z)分子和分母多項式的系數,得到IIR濾波器的常系數差分方程如式(5),通過遞推方法對常系數差分方程求解,求得IIR濾波器的輸出序列y(n)。
(5)
假設初始條件x(-1)=0,…,x(-k)=0;y(-1)=0,…,y(-k)=0,根據初始條件和輸入序列x(n),代入常系數差分方程,求得IIR濾波器的輸出序列y(n)。采用遞推方法求解IIR濾波器的常系數差分方程的步驟如下[9-10]:
(1) 初始條件w2=w1=w0=0
(2) 求解
利用C語言編程實現上述3個步驟的子程序,在C語言的主函數main中調用此子程序,求解常系數差分方程,得到IIR濾波器的輸出序列y(n)。
本文以IIR低通濾波器和高通濾波器實驗設計為例,討論IIR濾波器實驗設計的操作過程。也可按此操作方法進行IIR帶通濾波器和帶阻濾波器實驗設計。
3.1 輸入序列設計
根據IIR低通濾波器或高通濾波器的截止頻率ωc,按照式(1)設計的輸入序列x(n)如式(6)所示。假設輸入序列的長度N=256,輸入序列x(n)的時域波形如圖(1)所示,頻譜如圖(2)所示。
x(n)=20sin(2·3.14n/32)+
10sin(2·3.14n/4)
(6)

圖1 輸入序列x(n)的時域波形

圖2 輸入序列x(n)的頻譜
3.2 IIR低通濾波器設計
以巴特沃斯低通濾波器設計為例,假設巴特沃斯低通濾波器的階數N=2,則通過查表得巴特沃斯低通濾波器歸一化的系統函數G(p)如式(7)所示[9],對式(7)去歸一化,得到模擬低通濾波器的系統函數HLP(s),如式(8)所示[8-9]。
(7)
(8)

學生在做實驗時,首先在C語言的主函數main中,把式(6)轉換為C語言的語句,計算出輸入序列x(n);其次調用HL,P(s)轉換為H(z)的子程序,計算出H(z)的分子和分母多項式的系數,求得常系數差分方程;最后調用遞推方法求解常系數差分方程的子程序,求出IIR低通濾波器的輸出序列y(n)。
借助time/frequency選單觀察輸出序列y(n)的時域波形(見圖3)和頻譜(見圖4)。可以看出,y(n)是輸入序列x(n)的低頻成分。

圖4 低通濾波器輸出序列y(n)的頻譜
3.3 IIR高通濾波器設計
把式(7)表示的模擬低通濾波器的歸一化系統函數去歸一化,轉換為相應的模擬高通濾波器的系統函數,如式(9)所示[8,10]。
(9)

學生在做實驗時,首先在C語言的主函數main中,把式(6)轉換為C語言的語句,計算輸入序列x(n),其次調用HHP(s)并轉換為H(z)的子程序,計算出H(z)的分子和分母多項式的系數,求得常系數差分方程;最后調用遞推方法求解常系數差分方程的子程序,求得IIR高通濾波器的輸出序列y(n)。借助time/frequency選單觀察輸出序列y(n)的時域波形和頻譜,y(n)的時域波形如圖5所示,頻譜如圖6所示,可以看出y(n)是輸入序列x(n)的高頻成分。

圖5 高通濾波器輸出序列y(n)的時域波形

圖6 高通濾波器輸出序列y(n)的頻譜
本文借助CCS軟件搭建了IIR濾波器實驗設計的軟件環境。IIR濾波器實驗設計主要包括輸入序列x(n)設計、系統函數Ha(s)轉換為H(z)的子程序設計和遞推方法求解常系數差分方程的子程序設計。學生在做實驗時,首先在C語言的主函數main中,把設計的輸入序列x(n)轉換為C語言的語句,根據輸入序列x(n)的長度N,計算出輸入序列x(n)。其次,進行IIR濾波器設計,求出相應的模擬濾波器的系統函數Ha(s),調用Ha(s)轉換為H(z)的子程序,計算出H(z) 的分子和分母多項式的系數,求得IIR濾波器的常系數差分方程。最后,調用遞推方法求解常系數差分方程的子程序,求得IIR濾波器的輸出序列y(n)。借助time/frequency選單觀察輸出序列y(n)的時域波形和頻譜,比較x(n)和y(n) 的時域波形和頻譜,判斷實驗結果的正確性。
References)
[1] 楊智明,俞洋,姜紅蘭.便攜式數字信號處理課程實驗教學平臺設計[J].實驗室研究與探索,2014,33(1):76-80.
[2] Code Composer Studio(CCS)集成開發環境(IDE),http://www.ti.com.cn/tool/cn/CCSTUDIO.
[3] 劉成云,陳振學,孔慧.基于CCS的“信號分析與處理”實驗教學[J].實驗室研究與探索,2010, 29(1l):97-100.
[4] 郝小江,繆志農,黃昆.基于DSP的數字信號處理實驗設計[J].實驗技術與管理,2012,29(2):44-47.
[5] 李波,王冬霞.MATLAB在CCS集成編程環境中應用的研究[J].渤海大學學報:自然科學版,2010,3l(1):84-88.
[6] 謝海霞,孫志雄.IIR濾波器的DSP實現[J].電子器件,2013,36(2):194-196.
[7] 彭啟琮.TI DSP集成化開發環境(CCS)使用手冊[M].北京:清華大學出版社,2007.
[8] 丁玉美,高西全.數字信號處理[M].2版.西安:西安電子科技大學出版社,2001.
[9] 程佩青.數字信號處理教程[M].3版.北京:清華大學出版社,2007.
[10] 奧本海姆 A V,謝弗 R W,巴克 J R.離散時間信號處理[M].劉樹棠,黃建國,譯.2版.陜西:西安交通大學出版社,2001.
Experimental design of IIR filter based on CCS software
Jiang Enhua, Li Suwen, Dou Dezhao, Chen Debao, Shao Fen
(School of Physics and Electronic Information, Huaibei Normal University, Huaibei 235000, China)
The experiment of the IIR filter is designed by using the CCS software, which mainly include the input sequencex(n) design, the program design of solving the system functionH(z) and the program design of solving constant coefficient difference equation. First by designing the input sequencex(n) and the system functionH(z), the value of thex(n) and the coefficient of the difference equation are calculated; secondly, the output sequencey(n) of the IIR filter is calculated by using the program of solving constant coefficient difference equation by the recursive method. The time domain waveform and the spectrum of they(n) are observed by the time/frequency menu.
IIR filter; CCS software; experimental design; constant coefficient difference equation
2015- 01- 09 修改日期:2015- 03- 09
國家自然科學基金項目(41275027);安徽省高等教育振興計劃項目(2014zdjy060);安徽省高等學校省級精品資源共享課程(2013gxk048);安徽省高等學校省級教學研究項目(2014jyxm166);淮北師范大學教學研究項目(jy14107)
姜恩華(1974—),男,安徽碭山,工學碩士,副教授,研究方向為數字信號處理與DSP技術.
E-mail:jianghnhb@126.com
TN911.72
A
1002-4956(2015)8- 0130- 04