信息与计算科学专业“数字信号处理”课程教学探讨

(整期优先)网络出版时间:2010-04-14
/ 2

信息与计算科学专业“数字信号处理”课程教学探讨

文凤春,邓小炎

文凤春;邓小炎(华中农业大学理学院,武汉430073)

摘要:“数字信号处理”课程实用性强、理论内容丰富但概念抽象难懂,结合“信息与计算科学专业”培养目标,从实际出发,重视数学原理的教学,重视实践教学环节,发挥MATLAB软件在实验设计中的作用,取得了较好的教学效果。

关键词:数字信号处理;数学变换;算法;频谱分析;滤波器

中图分类号:G642文献标识码:A文章编号:1006-4311(2010)11-0192-02

0引言

数字信号处理是我校“信息与计算科学专业”的一门专业选修课。在几年的教学实践中,我们逐步探索出在进行数字信号处理原理教学的同时加强实践教学,并以MATLAB软件为实践教学平台。提高了课堂教学效果和课程教学质量。

1教学中重视数学理论

数字信号处理的教学内容主要有两大部分,一是傅立叶变换;二是数字滤波器的设计。傅立叶变换是数字信号处理的基本原理,而数字滤波器的设计是根据信号处理物理性能指标设计数字信号处理系统。在本课程中,有一些基本的运算和算法。如卷积和运算,在时域中,系统响应是输入信号与系统单位冲激响应的卷积和;快速傅立叶变换(FFT)算法是实现数字信号处理的一种有效算法。我们根据“信息与计算科学”专业的人才培养目标要求,本课程的教学内容设置。

在教学中,我们重视基本理论、重视各种数学变换原理、重视算法思想的教学。通过数字信号处理原理的教学,使学生认识到数学理论的重要作用,激励学生热爱信息专业,努力学好数学课程。

1.1重视三种数学变换的教学傅立叶变换是分析信号频谱成分的一种重要变换。它是将时间域上的信号变换到频率域中。通过傅立叶变换,我们可以分析信号的频率成分。z-变换是对离散时间序列进行的一种数学变换。离散时间傅立叶变换提供了离散时间信号和线性时不变离散时间系统的频域表示。z-变换允许简单的代数运算,因此,z-变换已成为分析线性时不变离散时间系统问题的重要工具。求逆z—变换要用留数定理,留数是专业课程复变函数中的重要内容。通过z-变换的教学,进一步培养学生研究性的学习方法。双线性变换法是设计数字低通滤波器的一种重要方法。双线性变换法是s域与z域之间的变换。双线性变换是一非线性变换,在设计滤波器时,首先要对关键的边界频率事先进行预畸,用预畸后的关键频率设计模拟原型系统函数Ha(s),再利用双线性变换将模拟原型系统函数Ha(S)转换成所需要的数字滤波器系统函数H(z)。学生只有理解了双线性变换,才能顺利地设计数字滤波器。

1.2重视基2FFT算法的教学离散傅立叶变换(DFT)在信号的频谱分析中有广泛的应用,但是,对一个长度为N的时间信号做DFT时,需要作N2次复数乘法和N(N-1)次复数加法。N越大,复数乘法与加法的运算量也就越大,难以实现“实时性”强的信号处理。快速傅立叶变换(FFT)就是利用离散傅立叶变换中旋转因子的周期性、复共轭对称性等特性,把长的时间信号分解为若干个短的信号进行DFT。基2FFT是最简单的FFT算法。基2FFT算法分时域抽取和频域抽取,要求序列的长度为N=2M。用2FFT算法对N=2M点序列作DFT时所需乘法复数次数为0.5N*(log2N-1),复数加法次数为N*log2N,提高了运算效率。当N很大时,节省计算时间会更明显。

在教学中强调两个算法的设计思想。时域抽取基2FFT算法是将离散时间信号x(n)分成两个等长的奇偶两个子序列x1(r)和x2(r),分别对两个子序列x1(r)和x2(r)进行DFT得到X1(k)和X2(k),再用0.5*N次蝶形运算生成N点DFTX(k)。一个蝶形运算只需要一次复数乘法和两次复数加法。频域基2FFT算法的基本思想是将N=2M离散时间信号x(n)按序号前后对半分开,再利用旋转因子的性质将N点DFTX(k),k=0,1,2,…,N-1,按频域序号的奇偶分成两个N/2点的DFT,每次都按这种方法分解,直到两点DFT为止。同样一个长度为N=2M的序列要经过M-1次分解。每一次分解需要进行N/2次蝶形运算,一个蝶形运算需要一次复数乘法和两次复数加法。这两种运算,输入序列x(n)如果是自然顺序,则DFT输出时序号不是自然顺序,而是X(k)序号二进制的数码倒置顺序。因此,要输出自然序列X(k),只需要将输出序列X(k)的序号的二进制数码倒置,重新排列成自然序列后输出X(k)。基2FFT算法要求序列长度是2的整数次幂,当序列长度N与2的整数次幂相差很远时,用该算法就需会补很多零造成时间和空间的浪费,因此,又出现了比基2FFT算法更好的基4FFT,分裂基FFT,混合基FFT等算法,而基2FFT是最简单的快速DFT算法。通过本部分的教学,培养学生探究性的学习精神和能力。

2重视实验教学,发挥MATLAB软件的作用

数字信号处理是一门实践性很强的课程,只有通过实践教学环节才能加强学生对数字信号处理原理的理解和应用,并通过实践教学培养学生分析能力和综合设计能力。在实践教学中,我们选用MATLAB软件作为平台。该软件是一种先进的计算软件,功能强大、简单易学、编程效率高,且具有信号分析工具箱,不需很强的编程能力,就可以很方便地进行信号分析、处理和设计,是一种有力的实验教学工具。在本课程中,我们安排了20学时的实验教学,分5个教学单元。在实验课上,学生将课程中比较抽象、也较难理解概念、原理如离散线性卷积、循环卷积、抽样定理,频谱分析、数字滤波器设计等用MATLAB语言通过图形建模使之可视化,增强了数学原理的可读性与可观性。在实验项目的按排上,我们安排了三个基础性实验和两个综合设计性实验。基础性实验主要是用信号处理工具箱中的命令完成。综合设计性实验是用FFT对信号进行频谱分析和设计滤波器,实现对污染信号进行处理。下面是两个综合设计性实验实例。

2.1用FFT对信号进行频谱分析观察衰减正弦序列的时域和频域特性,a=0.1,f=0.0625,绘出幅频特性曲线,改变f,使f=0.4375和f=0.5625,观察两种情况下,频谱的形状和谱峰出现位置,有无混叠和泄漏现象?说明原因。

MATLAB程序:

a=0.1;f=0.0625;f1=0.4375;f2=0.5625;

n=0:1:15;

x=exp(-1*a*n).*sin(2*pi*f*n);

x1=exp(-1*a*n).*sin(2*pi*f1*n);

x2=exp(-1*a*n).*sin(2*pi*f2*n);

subplot(3,2,1);stem(n,x);title('f=0.0625时域信号');

subplot(3,2,2);stem(n,abs(fft(x,16)));title('f=0.0625频谱');

subplot(3,2,3);stem(n,x1);title('f=0.4375时域信号');

subplot(3,2,4);stem(n,abs(fft(x1)));title('f=0.4375频谱');

subplot(3,2,5);stem(n,x2);title('f=0.5625时域信号');

subplot(3,2,6);stem(n,abs(fft(x2)));title('f=0.5625频谱');

从上可以看出MATLAB程序简单,只要几条语句就能计算出频谱结果,进行频谱分析。

2.2数字滤波器的设计数字滤波器的设计是本课程的一个重要内容,设计IIR数字滤波器方法有直接法和间接法两种,设计FIR数字滤波器的方法有窗函数法和频率采样法,但公式很多,计算很繁琐,得到的都是数值解,频率特性不直观。MATLAB工具箱为设计IIR数字滤波器和设计FIR数字滤波器都提供了丰富而简便的方法。下面是一个设计IIR低通数字滤波器的实例。已知带加性干扰的信号用,式中是有用的信号,是一个的带限信号。是一个干扰信号,其频谱分布在以上。要求设计一个滤波器对信号进行滤波。要求在0.2处幅度的衰减不大于1dB,在噪声所在以上的频带内滤波器幅度衰减大于40的dB。用该滤波器对受干扰的信号进行处理,并恢复有用信号。

MATLAB程序如下:

wp=0.2;ws=0.3;rp=1;sp=40;%输入归一化通带和阻带截止频率和衰减;

[N,Wn]=buttord(wp,ws,rp,sp);%设计最小阶N的巴特沃斯滤波器,Wn是3dB截止频率;

[b,a]=butter(N,Wn);%设计3dB截止频率是Wn的N阶数字滤波器;

freqz(b,a)%画出滤波器的频率响应

用所设计的12阶巴特沃斯数字滤波器,对干扰信号的128个样本值进行处理。

通过上述实例可以看出,在MATLAB软件上进行实验,简单易学、编程效率高,运行结果图直观,增强了数字信号处理理论的可信性,激发了学生的学习兴趣和热情。

3小结

从2005年来,本人承担“信息与计算科学”专业的数字信号处理课程的教学。在教学中,我从学生的实际出发,合理地运用教材安排教学内容、恰当地运用教学手段、精心设计实验项目。在教学中,重视数学原理的教学,重视实验教学。并通过数学原理的教学,使学生认识到数学理论在数字信号处理中的作用和地位,激发他们热爱专业学习,热爱数学学习。通过数学实验教学,增强数学原理的可读性与可观性,一幅幅直观、内容丰富的信号分析图带给学生美的享受,使学生感觉到学习的乐趣,从而使学生热爱“数字信号处理”这门课程,努力学习,为将来从事信号处理工作打好坚实的理论基础。

参考文献:

[1]林川,陈绍林.数字信号处理[M]武汉:武汉大学出版社2004,8.

[2]程佩青.数字信号处理(第三版)[M].北京:清华大学出版社,2007.

[3]薛年喜.MATLAB在数字信号处理中的应用[M].北京:清华大学出版社,2004,8.

[4]叶永凯,王玉德.“数字信号处理”课程的教学方案设计[J].中国电力教育CEPE,2009年7月上,总第140期.