基于GUI 的信号与系统仿真平台设计
2022-02-02赵杰李亚文吴晓云
赵杰,李亚文,吴晓云
(商洛学院 电子信息与电气工程学院,陕西 商洛 726000)
信号与系统课程是电子信息等专业的一门重要的专业基础课,与数字信号处理、数字图像处理、DSP技术等课程紧密相关[1].涉及的内容繁多,而且对微积分、数值分析、复变函数等很多数学方面的内容要求较高,需要学生熟悉信号与系统的基本知识,如连续信号与系统的时域分析、信号与系统的变换域分析等.该课程概念繁杂、数学推导多,较为晦涩难懂,学生在学习时,常常会觉得枯燥乏味,不仅觉得概念抽象,而且对基本理论与分析方法也很难理解与掌握.传统的教学主要依靠教师的课堂讲解,其方法单调枯燥,学生学习兴趣不高[2-4].随着计算机的迅速发展,图形用户界面可以以交互的形式进行辅助教学,应用广泛[5-9].本文利用MATLAB 设计信号与系统GUI 仿真平台,对基本理论知识进行图形化直观演示,同时展示设计案例,有助于学生理论联系实际,加深对基础理论的掌握.
1 总体设计
基于GUI 的信号与系统仿真平台设计的内容主要分为基础信号实验、语音信号实验2大模块.基础信号实验模块包括:连续信号实验和离散信号实验,其中连续信号实验有连续信号的表示、时域运算以及基础连续信号的傅里叶变换、拉普拉斯变换的表示等.时域运算的连续信号有单边指数信号、冲激信号、Sinc函数信号(抽样信号)、矩形脉冲信号和正弦信号,这些信号可以选择实现的运算有平移、尺度变换、折叠和倒相.离散信号实验有离散信号的表示、时域运算、序列相加、序列相乘以及傅里叶变换和Z变换表示等.时域运算的序列有单边序列、阶跃序列、矩形序列、指数序列和正弦序列,这些序列可以选择的运算方式有移位、尺度变换、折叠,还可实现2 个序列的相加和相乘.语音信号实验模块包括:语音合成和语音滤波2个基础性实验,语音合成中有3 段语音链接合成、实现简易版电子琴、合成音乐变声;语音滤波实验中可以给音乐加噪、使用FIR 等波纹法实现滤波.仿真平台基本结构见图1.
图1 系统基本结构
2 基础信号实验
如果选择基础信号实验,则需要在连续信号和离散信号之间选择,若选择连续信号实验则可以实现对常见基础信号的显示、信号基本运算以及傅里叶变换和拉普拉斯变换,其GUI 构建界面见图2a;若选择离散信号,则会显示常见离散序列、基本运算和基本的离散变换,其GUI 构建界面见图2b.部分功能的运行结果见图3.
图2 GUI 构建基础信号实验界面
图3 基础信号实验界面
3 语音信号实验
语音信号实验中展示了语音合成与语音滤波2 个综合实例.
3.1 语音合成实验
该部分可以实现对3 段音乐的串烧,其中增加了变声功能,可以实现男声女声变换和电子琴运行.对应的界面中有3 个播放音乐键、1 个合成音乐键、1 个变声键、1 个坐标轴、9 个白键、6 个黑键以及返回和退出按钮,GUI 构建界面见图4a.
点击相应按键,均可得到其相应的功能界面.将3 个音频信号读入并打开后,可将3 个音频信号在时域进行混合,形成一个新的语音信号(见图4b).还可以对合成声音的频率进行改变,实现男声变为女声(见图4c).基于数字发生器的电子琴设计由不同频率的正弦波信号作为发声及显示波形,由控件对应的回调函数和数字信号发生器结合起来,实现对波形的调用.每个键对应相应的频率,在各个键的回调函数中设置好频率及频谱.由于电子琴运行界面图片过多,此处仅选取其中一个结果呈现(见图4d).
图4 语音合成实验
3.2 语音滤波实验
语音滤波选用了等波纹滤波法,可更改滤波器的参数以及噪音的大小.在播放音乐之后还可以看到相应的时域波形图和频谱图,用来更好地分析语音,GUI 构建界面见图5a.
语音滤波时,噪声信号通常为一随机序列,噪声信号构建命令为noise=C*randn(L,W),C 为常数,再对加噪音信号进行频谱变换得到其频谱图和加噪音后信号时域波形图.滤波器设计、语音加噪及滤波结果界面见图5b~d.其中滤波器的参数可更改,自行设计滤波器,噪声的大小也可修改.
图5 语音滤波实验
4 结语
本文利用MATLAB 设计了针对信号与系统课程的仿真平台,对常见的基础型号、信号的基本代数运算与几何运算、傅里叶变换、拉普拉斯变换、Z变换与离散傅里叶变换等基本内容进行演示.同时提供了语音合成与语音滤波2个综合应用实例,具有一定交互性,操作方便,设计内容丰富,实验项目较多.学生可以在此基础上对界面进行改进,如增加设计信号的功能,添加综合实例等,有利于加深学生对理论知识的掌握,提高学生的编程实践能力.