何其锐,唐普英,吴援明,蒋亚东
(电子科技大学光电信息学院,四川成都610054)
“信号与系统”是一门知识覆盖面大的专业基础课程,其应用领域涵盖了电子、机械、金融、生物、医学、地质等多种专业。因此,在课堂教学中,面对各专业研究不同的物理对象,需要把具体信号抽象为一维的连续时间信号或离散时间信号,把具体的系统抽象为微分方程或差分方程,从而对信号与系统的知识体系进行讲述。同时,由于“信号与系统”是专业基础课程,开课时间较早,在本校是大二第一学期开课,此时,学生对相关专业知识接触较少。因此,在课堂教学中,会有学生提出疑问:“这门课程有什么用?能用在哪些方面?该如何运用这门课程的知识?”面对学生强烈的求知欲望,让学生能把课程中学习的数学公式与实际的应用紧密结合起来,各学校在“信号与系统”这门课程都做了大量的实验教学改革探索[1-4],利用 Matlab、LabVIEW 等软件开设了许多综合实验[5-7]。
本校“信号与系统”课程选用文献[8]作为教材,在讲授完第二章“线性时不变系统”的内容后,学生对卷积的知识有了初步的掌握。因此,选择的综合训练的题目为“回音信号的产生和消除”。要求:
(1)利用声卡录取音频信号;
(2)利用Matlab将该音频信号产生带回音的音频信号;
(3)消除带回音的音频信号中的回音。
回音信号处理综合训练系统框图如图1所示。
图1 回音信号的产生和消除系统框图
声卡录取的音频信号为x[n],通过系统S1产生带回音的音频信号为y[n],y[n]通过系统S2消除回音后的信号为w[n]。系统S1单位冲激响应函数为h1[n],系统 S2单位冲激响应函数为 h2[n]。系统S1要具有可逆性,才能设计出逆系统S2,因此系统S1与系统S2级联后构成的系统应为恒等系统,满足
即系统S2的输出信号w[n]与系统S1的输入信号 x[n]相等。
根据题目要求可知,若要产生m次回音信号,则有
其中,m 为正整数,0<αm<… <α0=1,αk为实数,0=N0<… <Nm,Nk为正整数。αk为回音衰减系数,Nk为回音延迟时间。
调整系数m、ak和Nk则可以调整回音产生的次数、各次回音幅度大小及各次回音间隔时间。
系统S1的差分方程为
在Matlab中,调用conv函数或者直接按式(3)编程对x[n]数据进行处理,可以产生带回音的音频信号 y[n]。
系统S2的差分方程为
当 y[n]=δ[n]时,根据上式,系统 S2 的单位冲激响应函数h2[n]的方程为
整个系统的单位冲激响应函数h[n]为
根据式(5)则有
显然,比较式(1)与式(7),验证了式(4)的差分方程是S2系统方程。在Matlab中,可以设置初始条件 w[n]=0,n<0,根据式(4)进行编程就可以得到消除回音的音频信号w[n]。
利用声卡进行数据采集的时候,会遇到采样频率的设置问题。在采样频率设置过低的情况下,会出现音频质量较差的状况;设置较高采样频率后,音频质量才会较好。由于有这个采样频率设置的经验,在第7章学习采样定理的时候,对采样频率大于2倍信号带宽、实际工程使用中为获得较好效果要求采样频率大于8倍信号带宽知识的理解,学生掌握起来就比较轻松容易。
学生大多都可以设计出式(2)所示h1[n]的单位冲激响应函数,通过Matlab调用conv函数或直接编程,产生带回音的音频信号,对所学卷积知识能获得良好的感性认识。在与学生讨论时,可以让学生对用conv函数计算的结果和直接编程计算的结果做比较,了解conv函数运算过程是如何实现的,并且对直接编程方法的掌握也有利于学生在以后利用嵌入式系统进行数字信号处理的编程。
部分学生会通过各种方式查找相关知识,利用Matlab的filter函数来消除回音。filter函数的使用,是根据Z变换的理论实现的。但在做这个题目时,尚未讲授Z变换的相关知识,因此学生对用filter函数消除回音是知其然而不知其所以然。
对式(3)做Z变换有
对应S1系统函数
对于系统S2,因输入信号为y[n],输出信号为w[n],因此 S2 系统函数
显然有
再次对系统S1与系统S2级联为恒等系统做了验证,filter函数的调用是根据式(10)的系数来对信号进行滤波处理的。
在Z变换章节授课时,将此题目所涉及的这些内容再与学生讲解时,学生会有一种恍然大悟的感觉,这对于学生掌握Z变换的内容,了解数字滤波器的工作原理都有很好的帮助。
对于要求(3),有的学生设计系统S2的差分方程为
根据上式对回音信号处理,学生会得到对衰减系数小及回声次数多的信号滤波效果较好、而当衰减系数大及回声次数少时滤波效果相当差的结论。在与学生讨论时可以指出,要从系统可逆性来验证他们的解决方案是否正确。这样他们会对自己的解决方案提出改进,得到合理的解决方案,并且知道了对设计的系统该如何去验证是否正确的方法。
这个综合训练将采样、卷积、滤波器设计、恒等系统和系统可逆性等相关知识有机的结合在一起,不仅有利于学生对卷积、恒等系统和系统可逆性等已学过的知识加深了理解,对采样、滤波器设计等知识也有了一个先期从实践角度的感性认识,在后续课程的学习中,学生对这些知识的理论学习掌握就会轻松容易。
从学生提交的综合训练报告中可以看到,学生的自学能力是很有潜力的,即使Matlab中的函数使用尚未讲授,他们也能通过各种途径自学来解决综合训练中需要用到的Matlab编程问题。
综合训练的练习,就是让学生进行理论结合实践的学习活动。在完成综合训练题目的过程中,学生既把已学的理论应用到实际中去,也对一些未学的知识有了初步感性认识,对后续内容学习奠定了良好的基础,对启发学生创新性思维起到积极的帮助作用。
[1]毕萍,刘毓.“Matlab工程应用基础”课程新模式的教学改革[J].上海:实验室研究与探索,2012,31(12):145-147.
[2]吴涛,徐春燕,彭宏.基于FPGA的信号与系统实验箱信号源设计[J].上海:实验室研究与探索,2009,28(6):44-47.
[3]王土央,高原.信号与系统分析课程实验教学改革探索[J].北京:实验技术与管理,2011,28(12):11-14.
[4]易昆南,于菲菲.在综合性、设计性实验中培养学生的创新能力[J].北京:实验技术与管理,2007,24(8):8-9,14.
[5]倪振文,聂荣华,沈洪远,等.运用Matlab软件改革信息类实验教学的探讨[J].上海:实验室研究与探索,2001,20(4):19-20.
[6]刘舒帆,张晓虹,任姝婕.虚拟仪器与仿真软件在电路信号实验中的运用[J].上海:实验室研究与探索,2009,28(10):78-81.
[7]杜世民,杨润萍.基于MatlabGUI的“信号与系统”教学仿真平台开发[J].北京:实验技术与管理,2012,29(3):87-90.
[8]Alan V.Oppenheim,Alan S.Willsky,S.Hamid Nawab.Signals and Systems[M].Beijing:Publishing House of Electronics Industry,2009.