“统计信号处理”的案例研讨式本科教学研究
2018-10-26蒋忠进张在琛
蒋忠进, 孟 桥, 钱 进, 张在琛
(东南大学 信息科学与工程学院, 江苏 南京 210096)
0 引言
案例研讨式教学模式起源于17世纪的德国大学,当时有力地促进了德国大学的发展,现在已经成为发达国家高校中的一种普遍采用的教学模式[1~3]。该教学模式也是研究型教学的一种重要模式,其特点是以学生为主体,教师为主导,在教学过程中强调探索和研究,激发学生的求知欲、好奇心和学习兴趣[4]。在教学方法上强调师生互动,突出教学与训练方法的科学研究特色,培养学生的批判精神和探索精神[5~6]。
“统计信号处理”是以随机过程、信号与系统为基础发展起来的一门课程,需要数学分析和矩阵论等数学基础的支持。其特点是内容宽广且与应用接轨,在通信、探测、语音、控制、医疗等很多工程领域得到广泛应用。该课程也是某些硕士研究生甚至博士研究生的必修课程,所以又具有相当的深度。对本科生来说,这门课程是一门引导课程,如何将学生引入到这个“宽”而且“深”的领域,切身感受到它的应用价值,懂得它与工程实践的联系,并锻炼出一定的理论解决实际问题的能力,是该课程教学的重要目的。
本文讨论了针对本科生的“统计信号处理”课程的案例研讨式教学方法,通过研讨式案例分析和编程实验,引导学生利用统计信号处理的知识去解决实际应用中的信号处理问题。教学实践证明,该教学方法明显激发了学生对“统计信号处理”课程的兴趣,增强了学生解决实际问题的信心和能力。整个案例研讨式教学方法的实施过程,主要包括案例设计、案例研讨、课后评估等几个方面的问题,这些将在下文进行详细讨论。
1 案例设计
教学案例设计就是以解决工程实际问题为核心,从工程实际问题中提炼出若干信号处理方面的问题,作为教学案例。鉴于统计信号处理与工程应用联系紧密,很容易找到适合于本科教学的案例。
在信号检测方面,可以使用工程中Chirp回波信号检测、伪随机宽带信号检测、图像二维目标检测等作为教学案例,让学生学习如何判断某种测量信号中是否包含需要的特定信息。
在参数估计方面,可以使用目标运动参数估计(如速度、加速度等)和位置参数估计等作为案例。对于学习能力强的学生,甚至可以扩展到功率谱估计和阵列信号处理的范围,让学生使用MUSIC和ESPRIT之类的算法进行功率谱参数估计和空间谱参数估计。
在波形估计方面,可以使用雷达目标跟踪、地探信号消噪等作为案例,让学生学习如何采用状态空间法进行数学建模,并从带有强度不同的噪声中恢复有用信息的真实波形。
在自适应滤波方面,可以使用有源噪声抵消、通信载波提取、医学胎心检测、系统辨识等作为案例,让学生学习如何使用自适应迭代的方法实现有用信号和干扰信号的分离。
在教学案例设计中,所选的案例一定要形象具体和便于理解,在编程实现过程中涉及到的结果具有良好的演示性。比如信号检测类的扫频回波信号检测案例,其涉及到的信号如图1所示,就能准确地展示回波检测中各个环节里信号的特征,从而清晰描述回波检测这个信号处理问题。
2 案例研讨
案例研讨包括编程实验前课堂研讨、Matlab实验编程、编程实验后课堂研讨三个步骤。编程实验课前和编程实验课后的案例研讨的目的是不同的。
(a)发射信号
(b)无噪声多回波接收信号
(c)带噪声多回波接收信号
(d)信号检测结果
图1 扫频回波信号检测案例
实验课前进行研讨,目的在于学习和理解案例;实验课后进行研讨,目的在于总结经验和教训,对案例相关知识和技能进行再认识。
2.1 实验前课堂案例研讨
实验前案例研讨应该将理论知识和应用举例结合,不能单一地推导数学公式,把学生的视野限制在数学层面。对每一个实验案例,教师讲授的思路应该是:应用背景介绍、数学公式及其应用、求解技术路线,然后让学生进行课堂讨论以及课后调研。
(1)应用背景介绍:首先要介绍该案例的应用背景,以扫频信号检测为例,介绍该案例在雷达探测、声呐跟踪或无损探伤等各类工程中的应用,让学生形象地感受扫频信号检测的实用价值。
(2)数学公式及其应用:给出案例相关的数学公式,详细介绍公式所描述的信号处理问题,如何应用公式解算工程问题,并解释公式中每一个因式、常量和变量的意义。
(3)求解技术路线:讨论案例求解的技术路线,从数学建模、参数求解,到结果误差分析和性能评估,为学生进行后续的Matlab编程奠定算法基础。
(4)课堂讨论和课后调研:在案例讲解完毕后,应该留有较多的时间,给学生发表看法的机会。包括学生对案例知识点的理解、对解决问题的想法和思路等,师生互动交流,深化和完善学生的解决方案。学生在下课后,应该有一个调研的过程,通过查询资料,加深对案例的理解,细化案例求解的原理和步骤,为后续的实验编程奠定基础。
2.2 Matlab编程实践
Matlab实验编程主要是锻炼学生动手解决问题的能力,深入理解案例求解的理论和方法,对统计信号处理产生感性的理解和认识,变抽象为形象。因此,编程实践要求学生不仅要能正确地进行问题解算,也要培养良好的编程习惯,比如,强调模块化编程、变量命名规则、行文格式、添加注释等;注重增强代码的可读性和易维护性;强调解算结果的显示界面设计,体现代码的界面友好性。
对每一个学生选作的实验案例,教师都应该事先准备一个自己编程实现的Matlab源代码范本。在实验编程课上,教师可将自己的源代码与学生的源代码进行比较,从中指出需要学生加以改进之处,帮助学生完善自己的工作。
编程之后,学生需要撰写实验报告,包括案例背景、理论方法、求解思路、计算结果,展示自己对整个案例的理解和分析。
2.3 实验后课堂案例分析
在学生完成实验编程后,再次进行课堂案例研讨,教师可以先展示自己的编程代码和运行效果,作为一个示范让学生与自己的工作进行对比。并分析解剖学生的实验报告,指出其中的问题。与学生讨论如何才能更好的利用编程去描述和求解案例,加深学生对案例相关知识的理解,并通过后续代码改进来提高编程能力。
3 教学效果评估
我们通过几年的教学实践发现,案例研讨式教学在本科“统计信号处理”课程教学上发挥了明显的效果。从学生的实验编程运行结果和实验报告来看,他们对统计信号处理知识的理解有明显的加深,而且独立解决问题的能力也得到增强。很多学生在案例研讨课程后能提出很多问题,其中不乏有较高水平的问题。案例研讨式教学能将学生引入到科研实践的高度,而不仅仅停留在学习信号处理理论和数学公式上。
学生对这种教学方式很欢迎,据统计满意度可达到95%以上。因为他们有思考问题和发表看法的机会,有些意见甚至给教师的讲授提供了有益的启示。这是一种双向的探讨,不再是教师讲学生听的“单向填鸭”。学生可以从众多的案例中选择自己感兴趣的案例进行调研、分析和编程,教师则根据学生的问题和意见完善自己的研讨案例。
4 结语
“统计信号处理”课程的案例研讨式本科教学将理论知识和实际应用结合,积极采用理论知识去解决实际问题,通过案例研讨、编程实践能让学生印象深刻地理解该课程的实用性,并对其产生兴趣。
案例研讨式教学也对教师提出了更高的要求,教师不仅要具备深厚的理论基础,还要积极参与到科学研究和技术开发的实践中,善于适时地总结和提炼,将科研问题和研究成果及时地转化为教学案例,给学生创造更多用理论解决实际问题的机会[7]。