MATLAB在“数字信号处理”教学中的应用研究
摘要:针对“数字信号处理”课程教学中存在的诸如教学内容抽象、公式推导繁琐和物理意义抽象等现状,本文提出利用MATLAB软件优化教学的改革方案。实践表明教学改革对提高课堂教学效果,提升学生综合能力和素质培养能够起到良好的促进作用,达到了优化教学的目的。
关键词:数字信号处理;课程改革;MATLAB
作者简介:马月红(1979-),女,河北肥乡人,军械工程学院雷达工程教研室,讲师;赵威威(1984-),男,山西阳泉人,军械工程学院雷达工程教研室,助教。(河北 石家庄 050003)
中图分类号:G642.3 文献标识码:A 文章编号:1007-0079(2011)35-0108-02
随着计算机技术和微电子学科的迅速发展,数字信号处理技术(Digital Signal Processing,DSP)被广泛应用于电子、信息、生物医学、控制等各个专业技术领域,[1]数字信号处理课程也已成为各大专院校理工科类的专业基础课程。数字信号处理课程同大多数理工类基础课和专业基础课一样,翻开相关教材,满篇是抽象的数学公式和数学符号。而且其内容涉及范围之广,从高等数学的微分积分,到离散数学差分、求和、插值,再到信号与系统的时域分析、变换域分析、傅里叶分析,以及到数字滤波器的结构分析和设计实现,无不涉及理论推导,公式推理,令初学者望而生畏。因此,如何帮助学生理解与掌握课程中的基本概念、基本原理、基本分析方法以及综合应用所学知识解决实际问题,是本门课程教学所要解决的关键问题。
MATLAB软件是MathWorks公司于1982年推出的一套高性能的数值计算和可视化数学软件。它集数值分析、矩阵运算、信号处理和图形显示于一体,特别是具有的数字信号处理软件包,可以很方便地进行数字信号处理方面的有关运算、系统设计和仿真。MATLAB软件已经成为数字信号处理应用中分析和仿真设计的主要工具,使得“数字信号处理”课程的教学方法有了很大的改进。
一、MATLAB在课堂教学中的应用
“数字信号处理”课程最大特点是概念抽象且公式繁多,许多公式的物理意义不直观且很难理解。传统的课堂教学很难达到理想的效果,如果采用MATLAB软件对信号处理过程进行演示,不但可以帮助学生理解和掌握基本概念,而且可以增加课堂教学的生动性和趣味性,激发学生的求知欲,加深学生对概念的理解和掌握,从而提高教学质量。MATLAB在课堂教学中的应用主要体现在两个方面:一是在课堂上将理论教学与MATLAB图形演示结合起来,使学生在接受枯燥理论知识的同时,可以看到相应知识点的验证演示,从而使课堂教学更加直观、生动和紧凑;二是针对课堂教学中涉及的重点适当布置课后练习,让学生利用MATLAB软件完成平时以书面形式难以完成的作业,加深对所学知识的理解,提高学习兴趣。下面给出几个教学实例。
例1 FFT作频谱分析。
频谱分析是“数字信号处理”课程中最重要且最难的内容之一。离散傅里叶变换是分析信号频谱强有力工具。快速傅里叶算法则是计算离散傅里叶变的快速计算算法。快速傅里叶算法的理解是建立在离散傅里叶变换熟练掌握的基础之上。在课堂公式推导讲解的同时,配以MATLAB实例演示,克服了理论上的空洞讲解,增强了理论的可信性,则可以达到事半功倍的效果。
正弦信号加白噪声经常作为输入信号来检验某个系统的性能(如:滤波、抗干扰等),例如正弦信号x(t)中含有三个频率分量:f1=100Hz,f2=200Hz,f3=300Hz,试用FFT实现对其频谱的分析。利用MATLAB编程软件可以得到信号在时域中表示形式和频域中表示形式如图1所示。x(t)中含有三个频率分量,频率分量分别为100Hz、200Hz和300Hz。
例2离散傅里叶变换(Discrete Fourier Transform——DFT)应用之分辨率。
DFT是对有限长序列频谱分析的强有力工具,[2]频谱分析是DFT的一个重要的应用之一。在DFT的应用中,学生难于理解的概念之一是分辨率。频率分辨率是刻画某种频谱分析方法将信号中两个靠得很近的谱峰保持分开的能力。相当于通过一个频域的窗函数来观察频谱时,所看到的频率的宽度,频域窗越窄,频率分辨率越好。例如,x(t)的最高频率:fc<3Hz,抽样频率:fs=5Hz,信号记录长度T=205s。若信号为x(t)含有三个频谱分量:f1=1Hz,f2=1.02Hz,f3=1.07Hz,问能否将三个谱峰值分开?当N=1024点时,DFT分析信号的频谱如图2所示。
当N=1024点时,频率分辨率为信号记录的长度:,显然,由于和,所以能分辨出信号中由和产生的弦分量。DFT分析信号频谱时,采用记录点数足够长,能够很好地分辨出原信号中所含的频率分量,达到预期的效果。
在“数字信号处理”的课堂教学过程中采用MATLAB软件辅助教学,让抽象的理论变得生动直观且易于理解和掌握,能达到事半功倍的教学效果。
二、MATLAB在设计教学中的应用
滤波器的设计是“数字信号处理”中核心内容之一,是对所有知识点的综合运用。利用MATLAB软件可以快速准确地分析、综合和设计一个系统。尤其是利用MATLAB软件中数字信号处理工具箱,可以使过去很难实现的系统设计快速完成,有助于开拓思路和培养学生的实践动手能力。
例3 IIR滤波器的设计。
一个数字滤波器的抽样频率为2kHz,已知该系统受到频率为200Hz的噪声的干扰,现设计一陷波滤波器Hdbs(s)滤出该噪声。要求3dB的带边频率为195Hz和205Hz,阻带的下边和上边频率分别199Hz和201Hz,阻带衰减不小于14dB。
数字滤波器要借助模拟滤波器设计,具体设计流程如图3所示。
数字带阻滤波器的具体运算步骤不再详述,运用MATLAB编程软件得出陷波滤波器的如图4所示。相应MATLAB程序如下:
fp=[195 205];fs=[199 201];
%wp=[.19*pi 0.21*pi];ws=[.198*pi 0.202*pi];
Fs=2000;
rp=3;rs=14;
wp=fp*2*pi/Fs;ws=fs*2*pi/Fs;
% Directly to design H(z)by butter.m
[n,wn]=buttord(wp/pi,ws/pi,rp,rs);
[b,a]=butter(n,wp/pi,"stop")
[h1,w1]=freqz(b,a,256,Fs);
plot(w1,20*log10(abs(h1)))
xlabel(" f/Hz")
ylabel(" |H(ejw)|")
由图4可以看出设计出的带阻滤波器的幅频响应满足技术要求。在“数字信号处理”中各种常用的滤波器都有成熟的设计方法,在MATLAB中也有相应的函数可以调用,大大简化了设计过程,但是如何应用滤波器完成对含有噪声信号的滤波是对学生学有所用的锻炼。因此,教学过程给出一些综合性的题目,要求学生产生一些含噪声信号,设计出相应去噪滤波器,对噪声信号进行滤波,并对此滤波前后模拟信号进行频谱分析,根据滤波效果最终确定滤波器的形式和设计指标。
三、结束语
“数字信号处理”课程作为一门重要的专业基础课,教学改革任重而道远。实践证明,MATLAB应用于“数字信号处理”课程的理论和实践中,能够有效地提高课堂教学质量,激发学生的学习兴趣,激发学生的求知欲,有利于学生获取和应用新知识的能力培养,为深入研究复杂信号的处理打下坚实的基础。
参考文献:
[1]程佩青.数字信号处理教程[M].北京:清华大学出版社,2007.
[2]胡广书.数字信号处理导论[M].北京:清华大学出版社,2005.
(责任编辑:麻剑飞)