“数字信号处理”课程的Matlab教学研究
2010-08-23郭建涛
郭建涛
(信阳师范学院物理电子工程学院,河南信阳 464000)
“数字信号处理”是电气信息类专业的基础课程。我们将Matlab引入课堂教学中,将抽象的数学和技术理论以易于理解的可视化形式加以演示,结合课后习题和实验教学的模式,使学生真正理解数字信号处理的基本概念,掌握数字信号处理的基本方法,提高分析问题和解决问题的能力[1-3]。
1 Matlab在课堂教学中的应用
Matlab应用软件以矩阵运算为基础,通过简单的函数调用,可以实现复杂的数字信号处理功能,易学易用。特别是其具有的数字信号处理工具箱,涵盖了经典信号处理理论的大部分内容,很多常用的算法都有对应的函数,如扫频的频率余弦发生器函数chirp、线性调频z变换函数czt、快速傅里叶变换函数fft、基于窗函数的FIR滤波器设计函数firl、多采样率信号处理的信号抽取函数downsample等,可以方便地进行数字信号处理的相关运算,完成从概念设计到芯片实现的整个流程。
Matlab在课堂教学中的应用主要体现在三个方面,一是教师在讲解公式推导的同时,可以利用Matlab的实例演示相应知识点的对应结果,能够更加生动直观地揭示出公式所包含的物理含义;二是让学生利用Matlab软件完成以书面形式难以完成的作业;三是能够开设综合性和设计性的实验,充分发挥学生动手实践的主动性和创造性。
本文以采用DFT做连续信号的频谱分析为教学实例,对Matlab在“数字信号处理”课程中的应用加以探讨[4]。DFT作为时域和频域离散化序列的一种变换,在数字信号处理领域里得到了广泛应用。
应用DFT对连续信号进行频谱分析时,熟练掌握计算方法,理解计算过程中出现的各种现象和解决办法显得尤为重要。笔者采用Matlab仿真将频谱分析现象利用图形加以演示,并讲解产生现象的原因和解决问题的办法,从而达到事半功倍的教学效果。
1)混叠现象
考虑连续时间信号 xa(t)=e-0.1t(t≥0),用DFT进行频谱分析。这里取数据长度L=10s。在不同采样周期 T情况下,对采样信号由DF T计算频谱。图1中给出了在T=2s,1s,0.5s时信号的幅度谱,横坐标表示角频率,单位是弧度。此时,相应的奈奎斯特边界角频率分别为 ±π/2,±π,±10π。从图1可以看出,随着采样频率的增加,信号频谱更加集中在低频附近,产生混叠的可能性越小。进一步可用奈奎斯特频率处的幅度值来评价混叠的严重程度:随着采样频率的增加,边界频率的幅度不断减小,由 1.0997※0.5250※0.0318,与相应最大值相比,相对误差由10%※5%※0.5%。可见,当T=0.1s时,由时域采样引起的频率混叠可以忽略不计。
图1 不同采样率N下的频谱混叠
2)截断效应
选定采用周期 T以后,下面分析改变L的效果。随着采样点数(L=100,200,400)即数据长度的增加,信号频谱的扩展程度依次减小,说明截断效应相当明显,尽管都没有混叠现象。如果进一步增加数据长度,例如L=800,可以进一步了解到,两者之间的误差已经很难分辨,说明,在L取400时已经足以避免截断效应的影响。
3)栅栏效应
图1(a)在T=2s时所显示的角频率应该达到1.57,但是由于采样点数N仅仅为5,频率抽样间隔是1.25,所以不能显示边界频率。现将图1(a)重画于图2(a)。但在序列尾部补零至100点(程序中的N改为100,相当于频率抽样间隔变为0.0314)后,获取的频谱如图2(b)所示。由此不仅可以显示到边界频率附近,而且频谱细节,即图中波动部分也完全显示出来。因此,补零可以改善频谱的视在分辨率,减小栅栏效应。
图2 补零前后的信号频谱
4)分辨率
尽管补零可以改善信号的视在分辨率,使得被“栅栏”挡住的频谱峰点或谷点暴漏出来,但是补零并不能提高DFT的频率分辨率。现考虑信号为
选择合适的采样周期:取T=0.15s。通过改变信号长度,等价地改变信号采样点数 N,考察影响频率分辨率的因素。分别取N=256,2048,图3给出了采样点为256的信号在频率在(0,3)范围内的频谱。图3(b)给出了采样点为2048的信号频谱。比较图3(a)和图3(b),可以看出,前者不能分辨出两个谐振峰,而后者能够分出两个谐振峰的位置及其幅度,说明增加数据有效长度,可以提高DFT的频率分辨率。但是,在数据长度为256的情况下,采用2048点的DFT变换,尽管频谱视在分辨率有所提高(表现为波动现象),但是实际分辨率没有改善,见图3(c)。
图3 有效数据长度和补零情况下的信号分辨率
2 Matlab在实验教学中的应用
在课堂理论教学中引入Matlab仿真,可以使学生易于理解数字信号处理的基本理论。该教学过程可以进一步延伸至理论课外,即课后习题的处理以及实验课教学的过程中,Matlab能够起到类似的作用,只是运用的主体转移为学生。例如,利用信号分析和滤波器设计的理论知识,开发基于Matlab软件平台的数字信号处理软件,进行谱分析和滤波器设计等实验,从而在实践中加深对基本概念的理解,更好地掌握数字信号处理理论。
3 结语
我们通过具体的实例仿真,以图形化的方式将抽象的物理现象具体化可视化,使学生对物理现象产生的原因、具体现象及其解决办法有了更深入的理解。同时,Matlab简单易学,有助于学生在有限的时间内,将公式及其物理意义有机结合,迅速掌握相关理论知识。在此基础上,课后布置的仿真练习和实验教学中使用Matlab,能够使学生加深对教学内容的进一步理解,锻炼学生的动手能力,从而掌握数字信号处理知识的灵活运用。
[1] 徐红梅,宋正勋,胡贞.Matlab在电子信息类专业基础课中的应用[J].长春:长春光学精密机械学院学报,2001,9(1):24-26
[2] 方益明.提高“数字信号处理”课程教学效果的研究[J].南京:电气电子教学学报,2009,31(3):15-16
[3] 伯晓晨等编.Matlab工具箱应用指南—信息工程篇.北京:电子工业出版社(第一版),2000
[4] 吴镇扬.数字信号处理[M].北京:高等教育出版社,2004