论文部分内容阅读
【摘要】本文结合“数字信号处理”课程教学现状,提出在教学中引入Matlab软件,从课堂教学、课程设计两个方面阐明Matlab软件的引入激发了学生学习兴趣、培养了学生的动手能力、显著增强了教学效果。
【关键词】数字信号处理 Matlab 教学改革
【中图分类号】TN911.72;G642.0 【文献标识码】A 【文章编号】1009-9646(2009)02(a)-0039-02
Digital Signal Processing Teaching Reform Based on Matlab
Abstract:Combined with the teaching practice of “Digital Signal Processing” ,the paper introduces the software Matlab.Based on two aspects :classroom teaching and Curriculum design to explain that the introduction of the software inspired the interest of students in learning as well as cultivated their practical ability. Our teaching effects has been improved significantly by this way.
Keywords:Digital Signal Processing;Matlab;Teaching Reform
1 引言
随着计算机和信息技术的飞速发展,“数字信号处理”技术日益成为一门成熟的学科,在各工程领域,尤其是通信、信号处理领域获得了越来越广泛的应用。
“数字信号处理”课程是电子信息工程、通信工程专业本科生的必修课,通过该课程的学习,使学生掌握数字信号处理的基本理论、基本分析方法和基本实现方法,为进一步学习后续课程打下必要的理论基础。课程由二大部分组成:数字信号处理的基础理论部分,包括时域离散信号和时域离散系统的理论知识以及三个重要的数学变换工具(FT、ZT、DFT);数字滤波器的基本理论和设计方法部分,包括IIR、FIR和几种特殊数字滤波器,以及网络结构和状态分析法。
Matlab是当今科技领域内应用最广泛,最具活力的软件之一。它源于矩阵运算,并已经发展成为一种高度集成的计算机语言。它提供了强大的科学运算、灵活的程序设计流程、高质量的图形可视化与界面设计、便捷地与其他程序和语言接口等功能,被广泛应用于数字和符号计算、工程与科学绘图、控制系统的设计与仿真、数字图形处理、数字信号处理、通信系统设计与仿真等领域。
2 当前教学现状
由于“数字信号处理”课程对学生的数学基础要求比较高,例如课程中将要学习到的傅里叶变换,拉普拉斯变换等等,而另外还有不少知识比较抽象,例如对循环卷积、频谱泄露的理解等等。如果单凭教师在有限时间内的课堂讲授,最容易出现的现象就是教师用了大量的时间和精力来解释、说明课本知识,但学生仍然不能透彻的理解,并因此出现怕学、厌学的现象,这对于学习知识容量较大的数字信号处理课程来说是十分不利的。
因此在教学中,我们需要一个软件来提供示例和仿真功能来提高学生学习兴趣、增强教学效果,但我们所关注的当然是“数字信号处理”的理论知识,而不在于提高学生的软件编程能力,Matlab不需要复杂的编程技巧,易于掌握,同时它所具有的强大的计算仿真功能和方便易用的图形绘制能力,可以把课本中抽象繁杂的数学公式变成非常直观的图形显示给学生看,既大大便于学生理解,也增强了学生学习的兴趣。
3 Matlab在教学中的具体应用
结合我校电信学院“数字信号处理”课程的教学情况和教师们在该课程教学中的心得体会,我们对于Matlab的具体应用主要包括如下两个方面:
3.1 在课堂教学与实验教学中的应用
例如在讲解DFT是对频域的抽样时,我们通过matlab程序随意构造一个序列,然后通过matlab的fft、stem等函数便捷的画出该序列的频谱图,通过比较不同点数的fft,可以非常直观的让学生看到DFT的频域抽样效果。
构造序列为
通过Matlab绘出其16点fft及32点fft图形如图1、图2。
附matlab程序如下:
x=[1 2 3 4 4 3 2 1];
N=input('请选择FFT变换区间的长度N:16 or 32\n');%输入FFT的点数
f=fft(x,N);%作傅里叶变换
i=i+1;
figure(i)
printf(x,abs(f),abs(N),abs(b)); %printf为单独编写的绘图函数, %包括绘制序列图和频谱图
在DFT这一章的实验课中,我们另外安排了7个不同的信号供学生分析,很好的帮助学生巩固了课堂上的理论知识。
3.2 Matlab在课程设计中的应用
作为“数字信号处理”一学期的学习成果,在课堂教学结束以后,我们安排学生用两周的时间,自己通过Matlab独立编程完成设计任务。
结合教材和学生学习情况,我们制定课程设计题目如下,:
一、利用wavread函数对一段不超过5秒的语音信号进行采样;画出采样后语音信号的时域波形和频谱图;给定滤波器的性能指标,采用窗函数法和双线性变换法设计滤波器,并画出滤波器的频率响应;然后用自己设计的滤波器对采集的信号进行滤波,画出滤波后信号的时域波形和频谱,并对滤波前后的信号进行对比,分析信号的变化;回放语音信号;最后,设计一个信号处理系统界面。限于篇幅,本文仅给出低通滤波前后的语音信号及其频谱图并给出关键代码。
图3 课程设计:语音信号处理
附代码:
[Y,FS,NBITS]=wavread('C:\Documents and Settings\administrator\桌面\sound1.wav');
%利用wavread函数读取语音信号sound1.wav
subplot(2,2,1);
plot(Y);%画出语音信号
title('原始语音信号');
sound(Y,FS,NBITS);%回放语音信号
FY1=fft(Y); %求原始语音信号的频谱
subplot(2,2,2);
plot(abs(FY1)); %画出原始语音信号频谱
title('原始语音信号的频谱');
w=0.25*pi;N=64; %低通滤波器参数
hd=ideal(w,N);%理想低通滤波器
B=kaiser(N);%凯泽窗
h=hd.*B'; %经凯泽窗截短的低通滤波器
Y2=conv(Y,h); %对原始语音信号作低通滤波器
subplot(2,2,3);
plot(Y2); %画出经低通滤波以后的语音信号
wavwrite(Y2,'sound2.wav') %将滤波结果存入文件sound2.wav
title('滤波后语音信号');
sound(Y2,FS,NBITS); %回放经滤波的语音信号
FY2=fft(Y2);%求滤波后语音信号频谱
subplot(2,2,4);
plot(abs(FY2)); %画出滤波后语音信号的频谱
title('滤波后语音信号的频谱');
理想低通滤波器函数ideal如下:
function hd=ideal(w,N);
alpha=(N-1)/2;
n=[0:(N-1)];
m=n-alpha+eps;
hd=sin(w*m)./(pi*m);
实际上该函数不过是对课本中低通滤波器时域公式的实现。很明显如果要实现高通滤波器,学生也可以将课本中高通滤波器公式用matlab的语句类似实现。
以上仅为用FIR方法设计低通滤波器对信号进行滤波,当然设计题目可以要求学生做出高通、带通滤波,以及用IIR方法进行滤波,滤波器的参数则根据设计要求进行变动。
在该课程设计题目中,学生在“数字信号处理”课程中所学习到的频谱、卷积、IIR滤波、FIR滤波基本上全部都用到了,是对学生所学知识的一次比较全面的考核;同时,该题目有明显的图形显示,又有滤波前后声音的明显变化,使学生对所学知识有了一次非常直接的体会,大大提高了学习兴趣。
4 小结
实践证明,Matlab不需要复杂的编程技巧,将其引入“数字信号处理”课程教学中,能够将枯燥难懂的理论推导变的生动、直观、有趣,显著提高了教学效果,同时还大大增强了学生自己动手解决实际问题的能力。
参考文献
[1] 张晓光等.Matlab在“数字信号处理”课程教学中的应用.南京:电气电子教学学报,2004(10),第26卷第5期.
[2] 丁玉美等.数字信号处理(第二版).西安:西安电子科技大学出版社,2001.
[3] 程佩青.数字信号处理教程(第三版).北京:清华大学出版社,2008.
[4] 张航.精通Matlab 6.北京:清华大学出版社,2002.
注:“本文中所涉及到的图表、注解、公式等内容请以PDF格式阅读原文。”
【关键词】数字信号处理 Matlab 教学改革
【中图分类号】TN911.72;G642.0 【文献标识码】A 【文章编号】1009-9646(2009)02(a)-0039-02
Digital Signal Processing Teaching Reform Based on Matlab
Abstract:Combined with the teaching practice of “Digital Signal Processing” ,the paper introduces the software Matlab.Based on two aspects :classroom teaching and Curriculum design to explain that the introduction of the software inspired the interest of students in learning as well as cultivated their practical ability. Our teaching effects has been improved significantly by this way.
Keywords:Digital Signal Processing;Matlab;Teaching Reform
1 引言
随着计算机和信息技术的飞速发展,“数字信号处理”技术日益成为一门成熟的学科,在各工程领域,尤其是通信、信号处理领域获得了越来越广泛的应用。
“数字信号处理”课程是电子信息工程、通信工程专业本科生的必修课,通过该课程的学习,使学生掌握数字信号处理的基本理论、基本分析方法和基本实现方法,为进一步学习后续课程打下必要的理论基础。课程由二大部分组成:数字信号处理的基础理论部分,包括时域离散信号和时域离散系统的理论知识以及三个重要的数学变换工具(FT、ZT、DFT);数字滤波器的基本理论和设计方法部分,包括IIR、FIR和几种特殊数字滤波器,以及网络结构和状态分析法。
Matlab是当今科技领域内应用最广泛,最具活力的软件之一。它源于矩阵运算,并已经发展成为一种高度集成的计算机语言。它提供了强大的科学运算、灵活的程序设计流程、高质量的图形可视化与界面设计、便捷地与其他程序和语言接口等功能,被广泛应用于数字和符号计算、工程与科学绘图、控制系统的设计与仿真、数字图形处理、数字信号处理、通信系统设计与仿真等领域。
2 当前教学现状
由于“数字信号处理”课程对学生的数学基础要求比较高,例如课程中将要学习到的傅里叶变换,拉普拉斯变换等等,而另外还有不少知识比较抽象,例如对循环卷积、频谱泄露的理解等等。如果单凭教师在有限时间内的课堂讲授,最容易出现的现象就是教师用了大量的时间和精力来解释、说明课本知识,但学生仍然不能透彻的理解,并因此出现怕学、厌学的现象,这对于学习知识容量较大的数字信号处理课程来说是十分不利的。
因此在教学中,我们需要一个软件来提供示例和仿真功能来提高学生学习兴趣、增强教学效果,但我们所关注的当然是“数字信号处理”的理论知识,而不在于提高学生的软件编程能力,Matlab不需要复杂的编程技巧,易于掌握,同时它所具有的强大的计算仿真功能和方便易用的图形绘制能力,可以把课本中抽象繁杂的数学公式变成非常直观的图形显示给学生看,既大大便于学生理解,也增强了学生学习的兴趣。
3 Matlab在教学中的具体应用
结合我校电信学院“数字信号处理”课程的教学情况和教师们在该课程教学中的心得体会,我们对于Matlab的具体应用主要包括如下两个方面:
3.1 在课堂教学与实验教学中的应用
例如在讲解DFT是对频域的抽样时,我们通过matlab程序随意构造一个序列,然后通过matlab的fft、stem等函数便捷的画出该序列的频谱图,通过比较不同点数的fft,可以非常直观的让学生看到DFT的频域抽样效果。
构造序列为
通过Matlab绘出其16点fft及32点fft图形如图1、图2。
附matlab程序如下:
x=[1 2 3 4 4 3 2 1];
N=input('请选择FFT变换区间的长度N:16 or 32\n');%输入FFT的点数
f=fft(x,N);%作傅里叶变换
i=i+1;
figure(i)
printf(x,abs(f),abs(N),abs(b)); %printf为单独编写的绘图函数, %包括绘制序列图和频谱图
在DFT这一章的实验课中,我们另外安排了7个不同的信号供学生分析,很好的帮助学生巩固了课堂上的理论知识。
3.2 Matlab在课程设计中的应用
作为“数字信号处理”一学期的学习成果,在课堂教学结束以后,我们安排学生用两周的时间,自己通过Matlab独立编程完成设计任务。
结合教材和学生学习情况,我们制定课程设计题目如下,:
一、利用wavread函数对一段不超过5秒的语音信号进行采样;画出采样后语音信号的时域波形和频谱图;给定滤波器的性能指标,采用窗函数法和双线性变换法设计滤波器,并画出滤波器的频率响应;然后用自己设计的滤波器对采集的信号进行滤波,画出滤波后信号的时域波形和频谱,并对滤波前后的信号进行对比,分析信号的变化;回放语音信号;最后,设计一个信号处理系统界面。限于篇幅,本文仅给出低通滤波前后的语音信号及其频谱图并给出关键代码。
图3 课程设计:语音信号处理
附代码:
[Y,FS,NBITS]=wavread('C:\Documents and Settings\administrator\桌面\sound1.wav');
%利用wavread函数读取语音信号sound1.wav
subplot(2,2,1);
plot(Y);%画出语音信号
title('原始语音信号');
sound(Y,FS,NBITS);%回放语音信号
FY1=fft(Y); %求原始语音信号的频谱
subplot(2,2,2);
plot(abs(FY1)); %画出原始语音信号频谱
title('原始语音信号的频谱');
w=0.25*pi;N=64; %低通滤波器参数
hd=ideal(w,N);%理想低通滤波器
B=kaiser(N);%凯泽窗
h=hd.*B'; %经凯泽窗截短的低通滤波器
Y2=conv(Y,h); %对原始语音信号作低通滤波器
subplot(2,2,3);
plot(Y2); %画出经低通滤波以后的语音信号
wavwrite(Y2,'sound2.wav') %将滤波结果存入文件sound2.wav
title('滤波后语音信号');
sound(Y2,FS,NBITS); %回放经滤波的语音信号
FY2=fft(Y2);%求滤波后语音信号频谱
subplot(2,2,4);
plot(abs(FY2)); %画出滤波后语音信号的频谱
title('滤波后语音信号的频谱');
理想低通滤波器函数ideal如下:
function hd=ideal(w,N);
alpha=(N-1)/2;
n=[0:(N-1)];
m=n-alpha+eps;
hd=sin(w*m)./(pi*m);
实际上该函数不过是对课本中低通滤波器时域公式的实现。很明显如果要实现高通滤波器,学生也可以将课本中高通滤波器公式用matlab的语句类似实现。
以上仅为用FIR方法设计低通滤波器对信号进行滤波,当然设计题目可以要求学生做出高通、带通滤波,以及用IIR方法进行滤波,滤波器的参数则根据设计要求进行变动。
在该课程设计题目中,学生在“数字信号处理”课程中所学习到的频谱、卷积、IIR滤波、FIR滤波基本上全部都用到了,是对学生所学知识的一次比较全面的考核;同时,该题目有明显的图形显示,又有滤波前后声音的明显变化,使学生对所学知识有了一次非常直接的体会,大大提高了学习兴趣。
4 小结
实践证明,Matlab不需要复杂的编程技巧,将其引入“数字信号处理”课程教学中,能够将枯燥难懂的理论推导变的生动、直观、有趣,显著提高了教学效果,同时还大大增强了学生自己动手解决实际问题的能力。
参考文献
[1] 张晓光等.Matlab在“数字信号处理”课程教学中的应用.南京:电气电子教学学报,2004(10),第26卷第5期.
[2] 丁玉美等.数字信号处理(第二版).西安:西安电子科技大学出版社,2001.
[3] 程佩青.数字信号处理教程(第三版).北京:清华大学出版社,2008.
[4] 张航.精通Matlab 6.北京:清华大学出版社,2002.
注:“本文中所涉及到的图表、注解、公式等内容请以PDF格式阅读原文。”