姜恩華,楊一軍,陳得寶,周 正,趙慶平(淮北師范大學物理與電子信息學院,安徽淮北235000)
?
基于CCS軟件的數(shù)字信號處理課程實驗設計
姜恩華,楊一軍,陳得寶,周正,趙慶平
(淮北師范大學物理與電子信息學院,安徽淮北235000)
摘要:文章借助TI公司的CCS3.3軟件,完成數(shù)字信號處理課程的實驗設計,主要從線性卷積、FFT算法、IIR濾波器設計和FIR濾波器設計4個方面討論數(shù)字信號處理課程的實驗設計.在CCS集成開發(fā)環(huán)境下,采用C語言編寫程序完成上述實驗設計內(nèi)容.借助CCS軟件提供的軟件模擬器C5402 Device Simulator完成C語言程序的編譯、加載和運行,通過time/frequency菜單觀察序列的波形,完成數(shù)字信號處理的實驗教學,取得良好的實驗教學效果.
關鍵詞:CCS軟件;線性卷積;FFT算法;IIR濾波器設計;FIR濾波器設計
數(shù)字信號處理課程是電子信息、通信工程和信號處理等學科的一門專業(yè)核心課程,針對數(shù)字信號處理的理論教學內(nèi)容開展相應實驗教學,能夠提高數(shù)字信號處理課程的教學效果,如何搭建數(shù)字信號處理的實驗教學環(huán)境是該課程能夠順利開展實驗教學的關鍵.在長期的數(shù)字信號處理課程教學中,采用TI公司的CCS軟件[1]搭建了數(shù)字信號處理的實驗教學環(huán)境,通過C語言編寫實驗教學程序,完成數(shù)字信號處理課程的實驗教學,取得良好的實驗教學效果.
文獻[2-3]探索CCS用于“信號處理”課程的實驗教學,但需要DSP硬件設備的支持.文獻[4-5]探索采用CCS和MATLAB相結合的方法,通過MATLAB程序生成FIR濾波器的單位脈沖響應h(n),供CCS環(huán)境下的FIR程序使用,該方法需要MATLAB軟件的支持.本文探索通過CCS3.3軟件搭建完成數(shù)字信號處理課程的軟件實驗環(huán)境,選擇C5402 Device Simulator作為軟件模擬器,根據(jù)數(shù)字信號處理實驗的數(shù)據(jù)和程序要求編寫CMD存儲器配置文件;使得數(shù)字信號處理課程的實驗教學不需要DSP硬件實驗設備或MATLAB軟件支持就可以順利完成,克服對DSP硬件實驗設備維護的困難.
由于數(shù)字信號處理實驗需要觀察信號的波形和頻譜,所以要熟悉CCS軟件菜單欄中的View菜單中的Graph子菜單中的time/frequency,借助time/frequency菜單觀察信號的波形.
由于借助CCS軟件輔助數(shù)字信號處理課程的實驗教學,主要在CCS集成開發(fā)環(huán)境下,通過C語言編寫程序實現(xiàn),所以必須熟悉CCS軟件以工程文件組織程序文件的方法[6].首先建立一個工程文件,然后把程序文件添加到工程文件中,對工程文件進行編譯,加載到軟件仿真器中,運行,觀察實驗結果.
根據(jù)數(shù)字信號處理課程的理論教學內(nèi)容,制定相應的實驗內(nèi)容.由于數(shù)字信號處理內(nèi)容主要分為兩部分,一部分主要講述序列的傅里葉變換和z變換,另一部分主要講述數(shù)字濾波器網(wǎng)絡結構與設計方法,包括IIR濾波器設計和FIR濾波器設計[7-9].所以制定的實驗內(nèi)容為:序列的線性卷積運算、FFT算法計算序列的頻譜、IIR濾波器設計和FIR濾波器設計,其中IIR濾波器設計采用雙線性變換法設計,F(xiàn)IR濾波器設計采用窗函數(shù)法設計.
根據(jù)數(shù)字信號處理的實驗內(nèi)容,在CCS集成開發(fā)環(huán)境下,采用C語言編寫實現(xiàn)序列的線性卷積運算、FFT算法、雙線性變換法設計IIR濾波器的系統(tǒng)函數(shù)H(z)和窗函數(shù)法設計FIR濾波器的單位脈沖響應h (n)的子程序,組成數(shù)字信號處理實驗教學的程序庫,學生做實驗時,可以參考程序庫中子程序編寫自己的子程序,也可以直接使用程序庫中的子程序.在C語言主函數(shù)main中,設計輸入序列x(n),調(diào)用數(shù)字信號處理實驗函數(shù)庫中的子程序,完成實驗程序設計,對實驗程序進行編譯、加載和運行,借助time/frequen?cy菜單觀察實驗結果.
3.1序列的線性卷積實驗設計
序列的線性卷積是數(shù)字信號處理課程中的一個基本運算,能夠計算輸入序列x(n)通過初始狀態(tài)為零的線性時不變系統(tǒng)的輸出y(n),由于此系統(tǒng)的單位脈沖響應為h(n),線性卷積計算公式如(1)式所示.
序列的線性卷積實驗內(nèi)容主要是圍繞著(1)式展開,步驟如下:
(1)輸入序列x(n)和單位脈沖響應h(n)設計,通常把x(n)和h(n)設計為矩形序列,其長度N=128.
(2)設計線性卷積運算子程序,圍繞著計算線性卷積的4個步驟:翻轉、移位、相乘和求和.由于序列x(n)和h(n)通過C語言的數(shù)組存儲,x(n)序列的翻轉移位序列x(n-m)在m≤n時,能夠用數(shù)組表示,相乘求和可以用累加實現(xiàn),所以線性卷積運算可以用兩重循環(huán)實現(xiàn),外層循環(huán)為移位運算,循環(huán)變量為n,內(nèi)層循環(huán)為相乘求和運算,循環(huán)變量為m,根據(jù)相乘求和的上下限確定內(nèi)層循環(huán)的起始條件和終止條件,根據(jù)相乘求和時序列x(n)和h(n)的邊界確定相乘求和時存放序列x(n)和h(n)數(shù)組的下標.
在CCS集成開發(fā)環(huán)境下,通過C語言編寫實現(xiàn)線性卷積運算的子程序,在主函數(shù)main中,首先設計矩形序列x(n)和h(n),假設矩形序列的長度N=128,x(n)和h(n)的波形如圖1所示,然后調(diào)用線性卷積運算的子程序實現(xiàn)矩形序列x(n)和h(n)的線性卷積運算,實驗結果如圖2所示,可以看出兩個矩形序列的線性卷積為三角序列.
圖1 x(n)和h(n)的時域波形
圖2 y(n)的時域波形
3.2FFT算法計算序列頻譜實驗設計
在數(shù)字信號處理課程中,通過FFT算法計算序列的頻譜X(k),能夠節(jié)省復數(shù)乘法和加法的次數(shù),因此FFT算法常常被用來計算序列的頻譜X(k),F(xiàn)FT算法計算序列頻譜實驗步驟如下:
(1)輸入序列x(n)設計,由于正弦序列的傅里葉變換為單位沖激函數(shù),形狀容易辨認,一般輸入序列采用正弦序列.正弦序列的頻率ω越靠近π,周期N越小,頻率越大,為高頻信號;頻率ω越靠近0,周期N越大,頻率越小,為低頻信號.所以輸入序列x(n)采用低頻的正弦序列和高頻的正弦序列疊加而成,x(n)如(2)式所示,假設輸入序列x(n)的長度N=128.
(2)FFT算法子程序設計,由于FFT算法分為時域抽取FFT算法和頻域抽取FFT算法,設計FFT算法程序,主要是按照FFT算法的運算流圖為編程思路.本文以時域抽取FFT算法為例,其編程思路如下:
首先把輸入序列x(n)以倒位序存放到數(shù)組中;其次由于蝶形運算需要已知旋轉因子Wp
N,通過遞推公式計算出WpN存放到數(shù)組中;然后根據(jù)蝶形運算流圖設計FFT算法程序,由于第一級蝶形運算的旋轉因子W0N=1,所以第一級蝶形運算直接采用單重循環(huán)結構實現(xiàn),從第二級到最后一級蝶形運算采用三重循環(huán)結構實現(xiàn),外層循環(huán)控制蝶形運算流圖中的級數(shù),中層循環(huán)用于控制本級蝶形運算流圖中蝶形運算的分組,內(nèi)層循環(huán)計算每個蝶形運算的分組鐘的蝶形運算.
在CCS集成開發(fā)環(huán)境下,通過C語言編寫實現(xiàn)FFT快速算法的子程序,在主函數(shù)把公式(2)轉換為C語言的語句,計算輸入序列x(n),假設輸入序列的長度N=128,x(n)的波形如圖3所示,頻譜如圖4所示,然后調(diào)用FFT快速算法的子程序計算輸入序列x(n)的頻譜X(k),實驗結果如圖5所示,比較圖5和圖4,判斷FFT程序的正確性,從頻譜X(k)可以明顯地看到截斷效應.
圖3 FFT算法輸入序列x(n)的時域波形
圖4 FFT算法輸入序列x(n)的頻譜
圖5 FFT算法計算的X(k)的波形
3.3IIR濾波器設計
在數(shù)字信號處理課程中,IIR濾波器設計主要通過模擬濾波器設計實現(xiàn),本文以雙線性變換法設計IIR低通濾波器為例,討論IIR濾波器設計的過程,其步驟如下:
(1)輸入序列x(n)設計,若待設計的IIR濾波器為低通濾波器,截止頻率ωc=0.1π,則輸入序列x(n)采用兩個正弦序列相加混合而成,其中一個正弦序列的頻率ω1低于0.1π,另一個正弦序列的頻率ω2高于0.1π,x(n)如(3)式所示,假設輸入序列x(n)的長度N=256.
(2)通過雙線性變換法設計IIR低通濾波器,把待設計的數(shù)字濾波器的邊界頻率ωp=0.1π和ωs=0.5π通過(4)式變換為模擬濾波器的邊界頻率Ωp和Ωs,假設T=2 s.
然后通過模擬濾波器設計(例如巴特沃斯濾波器設計),求得模擬濾波器的階數(shù)N,得到模擬濾波器歸一化的系統(tǒng)函數(shù),對去歸一化,求得系統(tǒng)函數(shù)的一般形式如(5)式所示.
IIR濾波器的系統(tǒng)函數(shù)H(z),如(6)式所示.
(3)由H(z)求出IIR低通濾波器的線性常系數(shù)差分方程,把輸入序列x(n)和初始條件代入差分方程,通過遞推方法求出濾波后的輸出序列y(n),觀察y(n)的波形.
在CCS集成開發(fā)環(huán)境下,通過C語言編寫程序,在C語言的主函數(shù)main中通過公式(3)計算輸入序列x(n);假設的階數(shù)k=2,調(diào)用轉換成H(z)的k=2的子程序,計算H(z)的分子和分母多項式的系數(shù),得到IIR低通濾波器的線性常系數(shù)差分方程;通過遞推方法求解差分方程,求得濾波后的輸出序列y(n),x(n)和y(n)的時域波形如圖6所示.圖6的上幅圖為混疊的正弦序列x(n)的波形,下幅圖為IIR低通濾波器的輸出序列y(n)的波形,x(n)的頻譜如圖7所示,y(n)的頻譜如圖8所示,比較圖8與圖7,可以看出y(n)為x(n)的低頻成分,由圖6的下幅圖可以看出y(n)的周期N為32.
圖6 IIR濾波器的序列x(n)和y(n)的時域波形
圖7 IIR濾波器的輸入序列x(n)的頻譜
圖8 IIR濾波器的輸出序列y(n)的頻譜
3.4FIR濾波器設計
本文以窗函數(shù)法設計FIR低通濾波器為例,討論FIR濾波器設計的過程,其步驟如下:
(1)根據(jù)數(shù)字濾波器的傳輸函數(shù)Hd(ejω),求出hd() n,然后通過窗函數(shù)截短得到h(n),假設截取長度N=128,若設計的FIR濾波器為低通濾波器,則h(n)如(7)式所示.
(2)輸入序列x(n)設計,由(7)式得FIR低通濾波器的截止頻率ωc=0.1π,則輸入序列x(n)采用兩個正弦序列疊加而成,其中一個正弦序列的頻率ω1低于0.1π,另一個正弦序列的頻率ω2高于0.1π,x(n)如(8)式所示,假設輸入序列x(n)的長度N=128.
(3)計算輸入序列x(n)和h(n)的線性卷積,求出濾波后的輸出序列y(n),觀察y(n)的波形.
在CCS集成開發(fā)環(huán)境下,通過C語言編寫程序,在主函數(shù)中,通過公式(7)計算出h(n),通過公式(8)計算輸入序列x(n),x(n)和h(n)的時域波形如圖9所示,圖9的上幅圖為混疊的正弦序列x(n)的時域波形,圖9的下幅圖為FIR低通濾波器的單位脈沖響應序列h(n)的時域波形,x(n)的頻譜如圖10所示,h(n)的頻譜如圖11所示.
圖9 FIR濾波器的序列x(n)和h(n)的時域波形
圖10 FIR濾波器的輸入序列x(n)的頻譜
圖11 FIR濾波器的h(n)的頻譜
調(diào)用線性卷積子程序,計算x(n)和h(n)的線性卷積,得到輸出序列y(n),y(n)的時域波形如圖12所示,頻譜如圖13所示,比較圖13與圖10,可以看出y(n)為x(n)的低頻成分,由圖12可以看出y(n)的周期N為32.
圖12 FIR濾波器輸出序列y(n)的時域波形
圖13 FIR濾波器輸出序列y(n)的頻譜
本文借助TI公司的CCS3.3軟件,搭建數(shù)字信號處理課程的軟件實驗環(huán)境,編寫CMD存儲器配置文件,選擇C5402 Device Simulator作為軟件模擬器.在CCS集成開發(fā)環(huán)境下,采用C語言編寫程序,主要從序列的線性卷積、FFT算法計算序列的頻譜、IIR濾波器設計和FIR濾波器設計4個方面開展數(shù)字信號處理課程的實驗設計,借助C5402 Device Simulator軟件模擬器完成C語言程序的編譯、加載和運行,通過time/frequency菜單觀察信號序列的波形,操作簡單方便,實驗現(xiàn)象明顯,能夠加深學生對數(shù)字信號處理課程理論知識的學習與理解.
參考文獻:
[1]Code Composer Studio(CCS)集成開發(fā)環(huán)境(IDE).http://www.ti.com.cn/tool/cn/CCSTUDIO.
[2]郝小江,繆志農(nóng),黃昆.基于DSP的數(shù)字信號處理實驗設計[J].實驗技術與管理,2012,29(2):44-47.
[3]劉成云,陳振學,孔慧.基于CCS的“信號分析與處理”實驗教學[J].實驗室研究與探索,2010,29(1l):97-100.
[4]李軍,周亞訓.基于MATLAB和DSP的數(shù)字信號處理課程實驗設計[J].實驗室研究與探索,2007,26(1):26-30.
[5]謝海霞,孫志雄.FIR濾波器的DSP實現(xiàn)[J].電子器件,2012,35(5):554-557.
[6]彭啟琮.TI DSP集成化開發(fā)環(huán)境(CCS)使用手冊[M].北京:清華大學出版社,2007.
[7]丁玉美,高西全.數(shù)字信號處理[M].2版.西安:西安電子科技大學出版社,2001.
[8]程佩青.數(shù)字信號處理教程[M].3版.北京:清華大學出版社,2007.
[9]A.V.奧本海姆,R.W.謝弗,J.R.巴克.離散時間信號處理[M].2版.劉樹棠,黃建國,譯.陜西:西安交通大學出版社,2001.
Experimental Design of the Digital Signal Processing Curriculum Based on the CCS Software
JIANG Enhua,YANG Yijun,CHEN Debao,ZHOU Zheng,ZHAO Qingping
(School of Physics and Electronic Information,Huaibei Normal University,235000,Huaibei,Anhui,China)
Abstract:The experimental design of the digital signal processing curriculum is completed by the CCS soft?ware of the TI company.The experimental design content consists mostly of the linear convolution,F(xiàn)FT algo?rithm,IIR filter design and FIR filter design.By the CCS integrated development environment,the experimen?tal design content can be implemented by designing the C program.The C program is compiled,loaded and run by the C5402 Device simulator of the CCS software,and the waveform of the signal sequence is observed by the time/frequency menu.The experiment teaching of the digital signal processing is finished.
Key words:CCS software;linear convolution;FFT algorithm;IIR filter design;FIR filter design
作者簡介:姜恩華(1974-),男,安徽碭山人,副教授,工學碩士,研究方向:數(shù)字信號處理與DSP技術.
基金項目:安徽省高等學校省級教學研究項目(2014jyxm166);安徽省高等教育振興計劃項目(2014zdjy060);安徽省教育廳名師工作室(2015msgzs138);淮北師范大學教學研究項目(jy14107,jy14143,jy15126)
收稿日期:2015-05-04
中圖分類號:TN 911.72
文獻標識碼:C
文章編號:2095-0691(2016)01-0089-05