推荐星级:
- 1
- 2
- 3
- 4
- 5
应用Python改进信号处理类实验教学
资料介绍
信号处理类课程具有概念抽象、推导复杂、内容枯燥等教学难题,实验课程的设置尤为重要,软硬件实验配套理论课程的方式已经被广泛应用。而随着新工科建设的需求,Python在信号处理类实践应用教学方面应当引起关注。分析信号处理类实验课程的发展,给出Python信号处理类实验教学案例,希望能促进此类课程的改进,做好新工科学科建设,增强学生应用设计能力。
部分文件列表
文件名 | 大小 |
应用Python改进信号处理类实验教学.pdf | 2M |
部分页面预览
(完整内容请下载后查看)教学园地
文章编号:1007-1423(2019)04-0049-04
DOI:10.3969/j.issn.1007-1423.2019.04.010
应用 Python 改进信号处理类实验教学
高志斌,林和志,冯超
(厦门大学信息科学与技术学院,厦门 361005)
摘要:
信号处理类课程具有概念抽象、推导复杂、内容枯燥等教学难题,实验课程的设置尤为重要,软硬件实验配套理论课
程的方式已经被广泛应用。而随着新工科建设的需求,Python 在信号处理类实践应用教学方面应当引起关注。分析
信号处理类实验课程的发展,给出 Python 信号处理类实验教学案例,希望能促进此类课程的改进,做好新工科学科
建设,增强学生应用设计能力。
关键词:
信号处理;新工科;Python
从跳线实验箱到 FPGA、DSP 芯片应用设计,到嵌入式
0
引言
系统设计的发展,给出了在硬件实验教育方面的清晰
路线;而软件实验方面,验证式和简单模仿式的,把教
师给的例子做参数调整的教学模式,不再适用于新工
科背景下的教学任务,单纯地调整课程内容对教学效
果依旧很差。这种教学模式迫切需要改革。
本文认为引入 Python 可以在信号处理类,克服单
纯软件仿真难以结合开放式嵌入式系统等硬件开发,
达到芯片应用与算法设计实践方面的进一步结合和
发展。
信息与通信工程一级学科下设通信与信息系统、
信号与信息处理、电子与通信工程等硕士点,通信工
程、电子信息工程、信息安全等本科二级专业。该学科
涉及电磁场、信号处理、无线通信等高技术领域,要求
学生掌握信息传输、信息采集和信息处理等基础知识,
具备信号检测与估计、信号分析与处理、系统分析与设
计等方面的专业知识和技能[1]。其中,信息处理类课程
在学生培养中起到至关重要的作用。
大部分高校的信息与通信工程学科的信息处理类
课程,包括《信号与系统》、《数字信号处理》、《随机信号
分析》、《数字图像处理》和《多媒体技术》等本科课程,
《现代信号处理》、《语音信号处理》、《机器视觉》等研究
生阶段的课程,向外延伸至《信息论与编码》、《通信原
理》、《DSP 原理与应用》、《无线通信工程》、《嵌入式系
1
信息处理类课程与实验特点
信息反映了一个物理系统的状态或特性,是以各
种物理量的性质、数量及其相互函数关系或信号来表
达的。信号是传载信息的物理量,是信息的表现形
式。信号处理就是运用数学或物理的方法对信号进行
各种加工或变换,其目的是滤除混杂在信号中的噪声
和干扰,将信号变换成易于识别的形式,便于提取它的
特征参数。信号处理的本质是信息的变换和提取。目
前信号处理已经成为了现代科学技术的支柱之一,已
广泛应用于人类生产和生活的各个方面[4]。
统设计》或《嵌入式项目开发》等相关课程[2-3]
。
早期引入实验对信号处理类课程起到极大的推动
作用,从这类课程的繁重的数学公式推导和枯燥的理
论概念理解,到具有直观信号呈现的实验箱操作,到可
以进行相关理论辅助推导、仿真、设计、验证的 MAT⁃
LAB 软件编程,起到很好的教学质量提升。但随着新
工科建设的推进,随着人才培养要求的提升,硬件方面
针对信号处理类课程,起点较高、公式繁多、推导
ꢀ
现代计算机 2019.02 上
教学园地
复杂、概念抽象、难度较大,导致学生兴趣不高的问题,
言引起大家的重视,应用 Python 进行信号处理类编程
实践,并结合 FPGA 和嵌入式系统开发的技术,大大优
化了软硬件协同综合设计的效率。而随着“新工科”建
设理念,在国内高校里引起的广泛重视,结合信息处理
技术,改造老学科,推动新兴的学科门类发展、不同学
科交叉的新生学科迫切需要我们考虑培养具备电子技
术及信息系统的基础知识,从事各类电子设备和信息
系统研究、设计、制造、应用和开发的工程技术人才[2]。
早期的教学方式改革主要围绕教学内容的调整,如强
化物理意义,优化数学推导,增加课外材料,调动学生
积极性。随着信息化技术的引入,采取多媒体与板书
结合,将信号处理实验箱和 MATLAB、LabVIEW 等软
件引入课堂教学,充分调动学生听觉、视觉、触觉等多
种感官共同参与[5],二十多年来在中国高校对激发学生
兴趣、提高学习效率加强课程理解起到很积极的作用。
当前信号处理类课程的设计均包含理论和实验部
分,国际国内大部分高校都考虑理论和实验实践的充
分结合。但现有的实验设计上,还存在如下问题:
(1)重视理论,轻视实验。理论课程的课时重,内
容繁多,实验课时少,只是对理论理解的辅助。
(2)实验环节简单,验证型项目居多。目前信号处
理类课程,如信号与系统、数字信号处理,在实验方面,
一般采取实验箱跳线验证,或者 MATLAB 作为软件仿
真工具,做简单验证和模仿实例。
3
Python信号处理教学案例参考
在信号处理类配套实验课程中,完全可以逐步加
入 Python 的仿真编程。这里给出一个经典的滤波器设
计和实现场景。设有一个信号,包含 5Hz 和 50Hz 两个
正弦波的叠加,以 500Hz 采样率对该信号进行采样,记
录时长为 1s,设计两个 3 阶巴特沃斯滤波器,分别采用
低通滤波器获得低频部分,高通滤波器获得高频部分。
我们将 Python 2.7 编程设计和实验结果与基于
MATLAB 2015b 的编程进行比较。
(3)实验环节停留在对理论课程的理解而缺乏应
用实践类的项目设计。如基于 MATLAB 做信号与系
统分析或者滤波器设计,而具体的滤波器应用却要在
其他带有硬件处理器的课程完成,造成实践类项目设
计与课程稍有脱节。
MATLAB 是 MathWorks 公司的商用软件,有一个
统一的集成开发环境(IDE),包含编辑器、命令窗口等,
很方便运行和调试。这里采用 butter 函数和 filter 函数
进行滤波器设计和处理,用 figure 和 plot 进行图形的
绘制。
2
Python科学计算
Python 的 IDE 则有很多选择,笔者认为 JetBrains
公司的 PyCharm 界面友好,对教育界提供免费的专业
试用版本,也具备运行和调试功能。在其中采用 scipy
包中的 signal.butter( )和 signal.filtfilt( )函数进行数据处
理,采用 Matpoltlib 进行图形的绘制。如图 1 所示,可
以看出在编程和可视化呈现方面,Python 与 MATLAB
差别不大。
2006 年卡内基·梅隆大学 Jeannette M. Wing 教授
提出并阐释了“计算思维”概念,信息类学生在信号处
理类课程的教学中培养计算思维能力也应该是很重要
的内容。高度概括和理论总结的信号处理理论,在传
授学科知识上应该注重应用能力的训练。MATLAB 类
的软件在分析设计方面能起到很好的作用,在应用方
面还未提供友好的接口。
MATLAB 的在线帮助(help)功能强大且方便查
阅。而 PyCharm 点击菜单 quick documentation,同样可
以调出 help 窗口,给出详细的帮助说明,如图 2 所示。
Python 能查看 filtfilt 函数的定义,也就是对源代码
的查阅和分析。但 MATLAB 的 filter 作为内建函数
(Built-in function),是看不到源代码的。对学生而言,
MATLAB 隐藏了部分内建函数的源代码,Python 却具
备开源代码的容易学习的好处。因此对教学而言,Py⁃
thon 在理解算法和教学上具有较强的优势。
Python 语言于 1991 年发布第一个版本,现已发展
到 3.x。它是一种解释型、面向对象、动态的高级程序
设计语言,具有简洁、易读以及可扩展性强的特点,且
因为越来越多的科研工作者选择 Python 作为开发语
言,贡献了众多的开源科学计算软件包,或者提供 Py⁃
thon 语言的调用接口,如用于科学计算的 NumPy、
SciPy、Sympy 和 Matplotlib 等功能强大的函数包,提供
了快速数组处理、数值运算和绘图的功能。Python 语
言及其众多的扩展库构成的开发环境非常适合工程技
术和科研人员处理实验数据,开发应用程序[4]。
此外,Python 可以在 Linux 嵌入式系统上运行,如
FPGA 板卡 Digilent PYNQ-Z1,设计用于与来自 Xilinx
的 PYNQ 项目合作,支持 Python 语言及库,可以直接使
近年来,随着人工智能的发展,Python 这种胶水语
ꢂ
现代计算机 2019.02 上
全部评论(0)