APP下载

基于CCS软件的数字信号处理课程实验设计

2016-04-01姜恩华杨一军陈得宝赵庆平淮北师范大学物理与电子信息学院安徽淮北235000

姜恩华,杨一军,陈得宝,周 正,赵庆平(淮北师范大学物理与电子信息学院,安徽淮北235000)



基于CCS软件的数字信号处理课程实验设计

姜恩华,杨一军,陈得宝,周正,赵庆平
(淮北师范大学物理与电子信息学院,安徽淮北235000)

摘要:文章借助TI公司的CCS3.3软件,完成数字信号处理课程的实验设计,主要从线性卷积、FFT算法、IIR滤波器设计和FIR滤波器设计4个方面讨论数字信号处理课程的实验设计.在CCS集成开发环境下,采用C语言编写程序完成上述实验设计内容.借助CCS软件提供的软件模拟器C5402 Device Simulator完成C语言程序的编译、加载和运行,通过time/frequency菜单观察序列的波形,完成数字信号处理的实验教学,取得良好的实验教学效果.

关键词:CCS软件;线性卷积;FFT算法;IIR滤波器设计;FIR滤波器设计

数字信号处理课程是电子信息、通信工程和信号处理等学科的一门专业核心课程,针对数字信号处理的理论教学内容开展相应实验教学,能够提高数字信号处理课程的教学效果,如何搭建数字信号处理的实验教学环境是该课程能够顺利开展实验教学的关键.在长期的数字信号处理课程教学中,采用TI公司的CCS软件[1]搭建了数字信号处理的实验教学环境,通过C语言编写实验教学程序,完成数字信号处理课程的实验教学,取得良好的实验教学效果.

1 CCS3.3软件实验教学环境

文献[2-3]探索CCS用于“信号处理”课程的实验教学,但需要DSP硬件设备的支持.文献[4-5]探索采用CCS和MATLAB相结合的方法,通过MATLAB程序生成FIR滤波器的单位脉冲响应h(n),供CCS环境下的FIR程序使用,该方法需要MATLAB软件的支持.本文探索通过CCS3.3软件搭建完成数字信号处理课程的软件实验环境,选择C5402 Device Simulator作为软件模拟器,根据数字信号处理实验的数据和程序要求编写CMD存储器配置文件;使得数字信号处理课程的实验教学不需要DSP硬件实验设备或MATLAB软件支持就可以顺利完成,克服对DSP硬件实验设备维护的困难.

由于数字信号处理实验需要观察信号的波形和频谱,所以要熟悉CCS软件菜单栏中的View菜单中的Graph子菜单中的time/frequency,借助time/frequency菜单观察信号的波形.

由于借助CCS软件辅助数字信号处理课程的实验教学,主要在CCS集成开发环境下,通过C语言编写程序实现,所以必须熟悉CCS软件以工程文件组织程序文件的方法[6].首先建立一个工程文件,然后把程序文件添加到工程文件中,对工程文件进行编译,加载到软件仿真器中,运行,观察实验结果.

2 数字信号处理课程的实验教学内容

根据数字信号处理课程的理论教学内容,制定相应的实验内容.由于数字信号处理内容主要分为两部分,一部分主要讲述序列的傅里叶变换和z变换,另一部分主要讲述数字滤波器网络结构与设计方法,包括IIR滤波器设计和FIR滤波器设计[7-9].所以制定的实验内容为:序列的线性卷积运算、FFT算法计算序列的频谱、IIR滤波器设计和FIR滤波器设计,其中IIR滤波器设计采用双线性变换法设计,FIR滤波器设计采用窗函数法设计.

3 基于CCS软件的数字信号处理实验设计

根据数字信号处理的实验内容,在CCS集成开发环境下,采用C语言编写实现序列的线性卷积运算、FFT算法、双线性变换法设计IIR滤波器的系统函数H(z)和窗函数法设计FIR滤波器的单位脉冲响应h (n)的子程序,组成数字信号处理实验教学的程序库,学生做实验时,可以参考程序库中子程序编写自己的子程序,也可以直接使用程序库中的子程序.在C语言主函数main中,设计输入序列x(n),调用数字信号处理实验函数库中的子程序,完成实验程序设计,对实验程序进行编译、加载和运行,借助time/frequen⁃cy菜单观察实验结果.

3.1序列的线性卷积实验设计

序列的线性卷积是数字信号处理课程中的一个基本运算,能够计算输入序列x(n)通过初始状态为零的线性时不变系统的输出y(n),由于此系统的单位脉冲响应为h(n),线性卷积计算公式如(1)式所示.

序列的线性卷积实验内容主要是围绕着(1)式展开,步骤如下:

(1)输入序列x(n)和单位脉冲响应h(n)设计,通常把x(n)和h(n)设计为矩形序列,其长度N=128.

(2)设计线性卷积运算子程序,围绕着计算线性卷积的4个步骤:翻转、移位、相乘和求和.由于序列x(n)和h(n)通过C语言的数组存储,x(n)序列的翻转移位序列x(n-m)在m≤n时,能够用数组表示,相乘求和可以用累加实现,所以线性卷积运算可以用两重循环实现,外层循环为移位运算,循环变量为n,内层循环为相乘求和运算,循环变量为m,根据相乘求和的上下限确定内层循环的起始条件和终止条件,根据相乘求和时序列x(n)和h(n)的边界确定相乘求和时存放序列x(n)和h(n)数组的下标.

在CCS集成开发环境下,通过C语言编写实现线性卷积运算的子程序,在主函数main中,首先设计矩形序列x(n)和h(n),假设矩形序列的长度N=128,x(n)和h(n)的波形如图1所示,然后调用线性卷积运算的子程序实现矩形序列x(n)和h(n)的线性卷积运算,实验结果如图2所示,可以看出两个矩形序列的线性卷积为三角序列.

图1 x(n)和h(n)的时域波形 

图2 y(n)的时域波形

3.2FFT算法计算序列频谱实验设计

在数字信号处理课程中,通过FFT算法计算序列的频谱X(k),能够节省复数乘法和加法的次数,因此FFT算法常常被用来计算序列的频谱X(k),FFT算法计算序列频谱实验步骤如下:

(1)输入序列x(n)设计,由于正弦序列的傅里叶变换为单位冲激函数,形状容易辨认,一般输入序列采用正弦序列.正弦序列的频率ω越靠近π,周期N越小,频率越大,为高频信号;频率ω越靠近0,周期N越大,频率越小,为低频信号.所以输入序列x(n)采用低频的正弦序列和高频的正弦序列叠加而成,x(n)如(2)式所示,假设输入序列x(n)的长度N=128.

(2)FFT算法子程序设计,由于FFT算法分为时域抽取FFT算法和频域抽取FFT算法,设计FFT算法程序,主要是按照FFT算法的运算流图为编程思路.本文以时域抽取FFT算法为例,其编程思路如下:

首先把输入序列x(n)以倒位序存放到数组中;其次由于蝶形运算需要已知旋转因子Wp

N,通过递推公式计算出WpN存放到数组中;然后根据蝶形运算流图设计FFT算法程序,由于第一级蝶形运算的旋转因子W0N=1,所以第一级蝶形运算直接采用单重循环结构实现,从第二级到最后一级蝶形运算采用三重循环结构实现,外层循环控制蝶形运算流图中的级数,中层循环用于控制本级蝶形运算流图中蝶形运算的分组,内层循环计算每个蝶形运算的分组钟的蝶形运算.

在CCS集成开发环境下,通过C语言编写实现FFT快速算法的子程序,在主函数把公式(2)转换为C语言的语句,计算输入序列x(n),假设输入序列的长度N=128,x(n)的波形如图3所示,频谱如图4所示,然后调用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滤波器设计

在数字信号处理课程中,IIR滤波器设计主要通过模拟滤波器设计实现,本文以双线性变换法设计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低通滤波器,把待设计的数字滤波器的边界频率ωp=0.1π和ωs=0.5π通过(4)式变换为模拟滤波器的边界频率Ωp和Ωs,假设T=2 s.

然后通过模拟滤波器设计(例如巴特沃斯滤波器设计),求得模拟滤波器的阶数N,得到模拟滤波器归一化的系统函数,对去归一化,求得系统函数的一般形式如(5)式所示.

IIR滤波器的系统函数H(z),如(6)式所示.

(3)由H(z)求出IIR低通滤波器的线性常系数差分方程,把输入序列x(n)和初始条件代入差分方程,通过递推方法求出滤波后的输出序列y(n),观察y(n)的波形.

在CCS集成开发环境下,通过C语言编写程序,在C语言的主函数main中通过公式(3)计算输入序列x(n);假设的阶数k=2,调用转换成H(z)的k=2的子程序,计算H(z)的分子和分母多项式的系数,得到IIR低通滤波器的线性常系数差分方程;通过递推方法求解差分方程,求得滤波后的输出序列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滤波器设计

本文以窗函数法设计FIR低通滤波器为例,讨论FIR滤波器设计的过程,其步骤如下:

(1)根据数字滤波器的传输函数Hd(ejω),求出hd() n,然后通过窗函数截短得到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集成开发环境下,通过C语言编写程序,在主函数中,通过公式(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)的频谱

调用线性卷积子程序,计算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)的频谱

4 结束语

本文借助TI公司的CCS3.3软件,搭建数字信号处理课程的软件实验环境,编写CMD存储器配置文件,选择C5402 Device Simulator作为软件模拟器.在CCS集成开发环境下,采用C语言编写程序,主要从序列的线性卷积、FFT算法计算序列的频谱、IIR滤波器设计和FIR滤波器设计4个方面开展数字信号处理课程的实验设计,借助C5402 Device Simulator软件模拟器完成C语言程序的编译、加载和运行,通过time/frequency菜单观察信号序列的波形,操作简单方便,实验现象明显,能够加深学生对数字信号处理课程理论知识的学习与理解.

参考文献:

[1]Code Composer Studio(CCS)集成开发环境(IDE).http://www.ti.com.cn/tool/cn/CCSTUDIO.

[2]郝小江,缪志农,黄昆.基于DSP的数字信号处理实验设计[J].实验技术与管理,2012,29(2):44-47.

[3]刘成云,陈振学,孔慧.基于CCS的“信号分析与处理”实验教学[J].实验室研究与探索,2010,29(1l):97-100.

[4]李军,周亚训.基于MATLAB和DSP的数字信号处理课程实验设计[J].实验室研究与探索,2007,26(1):26-30.

[5]谢海霞,孙志雄.FIR滤波器的DSP实现[J].电子器件,2012,35(5):554-557.

[6]彭启琮.TI DSP集成化开发环境(CCS)使用手册[M].北京:清华大学出版社,2007.

[7]丁玉美,高西全.数字信号处理[M].2版.西安:西安电子科技大学出版社,2001.

[8]程佩青.数字信号处理教程[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,FFT 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-),男,安徽砀山人,副教授,工学硕士,研究方向:数字信号处理与DSP技术.

基金项目:安徽省高等学校省级教学研究项目(2014jyxm166);安徽省高等教育振兴计划项目(2014zdjy060);安徽省教育厅名师工作室(2015msgzs138);淮北师范大学教学研究项目(jy14107,jy14143,jy15126)

收稿日期:2015-05-04

中图分类号:TN 911.72

文献标识码:C

文章编号:2095-0691(2016)01-0089-05