




已阅读5页,还剩12页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
数字信号发生器和数字电子琴摘要 Matlab是一个具有数值分析、矩阵计算、科学数据可视化以及非线性动态系统的建模和仿真等功能的工程实用软件。其易于使用的视窗环境,在很大程度上摆脱了传统非交互式程序设计语言(如C、Fortran)的编辑模式。本文介绍了一种使用GUI工具箱,用Matlab实现虚拟数字信号发生器的设计。关键词 Matlab;信号发生器;数字电子琴1概述MATLAB是矩阵实验室(Matrix Laboratory)的简称,是美国MathWorks公司出品的商业数学软件。可以进行矩阵运算、绘制函数和数据、实现算法、创建用户界面、连接其他编程语言的程序等,主要应用于工程计算、控制设计、信号处理与通讯、图像处理、信号检测、金融建模设计与分析等领域。图形用户界面(Graphical User Interface,简称GUI,又称图形用户接口)是指采用图形方式显示的计算机操作用户界面。与早期计算机使用的命令行界面相比,图形界面对于用户来说在视觉上更易于接受。Matlab自带了强大的GUl工具1。在本文中,将利用Matlab的GUI工具,设计出数字信号发生器和数字电子琴。信号发生器又称信号源或振荡器,是一种能提供各种频率、波形和输出电平电信号,常用作测试的信号源或激励源的设备,在生产实践和科技领域中有着广泛的应用。按信号波形可分为正弦信号、函数(波形)信号、脉冲信号和随机信号发生器等四大类2。各种波形曲线均可以用三角函数方程式来表示。能够产生多种波形,如三角波、锯齿波、矩形波(含方波)、正弦波的电路被称为函数信号发生器。本文设计了一种可以产生正弦波、余弦波、方波、三角波、锯齿波、白噪声的虚拟数字信号发生器。2技术路线虚拟数字信号发生器设计的流程图如图2.1:开始产生数字信号检测并接收用户输入:波形、幅值、频率、初始相位初始化显示波形图2.1 数字信号发生器流程图在此基础上,将产生的数字信号写入声卡,即可播放出相应音阶的声音,实现电子琴的功能。3实现方法3.1数字信号发生器3.1.1搭建GUI界面图形用户界面(Graphical User Interface,简称 GUI,又称图形用户接口)是指采用图形方式显示的计算机操作用户界面。与早期计算机使用的命令行界面相比,图形界面对于用户来说在视觉上更易于接受。Matlab凭借其强大的计算能力,系统集成能力以及图形处理能力,其图形用户接口(GUI)也日趋成熟。Matlab GUI的控件丰富,调用方便,可视化效果美观。GUI可以使得参数的输入和结果的输出可视化更高,操作更加方便。本次设计使用GUI搭建的界面如图3.1所示。图3.1 数字信号发生器界面3.1.2编写M文件搭建好界面后保存,系统将自动生成M文件与Fig文件,并且M文件内部已经按照GUI界面中组件的类别,自动生成了相应的模块调用函数。根据需要,我们对生成的各个函数进行补充,完成函数功能的实现及各个函数的调用关系。本次实验主要对控件的回调函数(callback)下写入相应的程序。下面这段程序(部分程序)实现了函数根据用户的输入生成不同的正弦波、余弦波、三角波、方波等,最终将波形显示在坐标轴1上。其中,sliderA ,editA输入幅值,当用户在输入一个新的幅值时,A为对应幅值变量,发生相应改变,并判断选择的是何种波型,然后对相应的波型的幅值进行修改,最终通过绘图函数的调用将新波形显示在图上。同理,当我们逐渐改变频率和相位时,波形也会对应发生变化,在此不再赘述。幅值滚动条的回调函数如下:function sliderA_Callback(hObject, eventdata, handles)a=get(hObject,value);set(handles.editA,string,a);幅值可变文本的回调函数如下:function editA_Callback(hObject, eventdata, handles)val=get(hObject,string);a=str2num(val);if isempty(a)&(val=0&val=20) set(handles.sliderA,value,a)end下拉菜单回调函数如下:function popupmenu1_Callback(hObject, eventdata, handles)A=str2num(get(handles.editA,string);f=str2num(get(handles.editF,string);d=str2num(get(handles.editD,string); fs=5000; T=0.05; dt=1.0/fs; N=T/dt; t=linspace(0,T,N);s=get(hObject,value); switch s case 1 y=A*sin(2*pi*f*t+d); axes(handles.axes1); plot(t,y); case 2 y=A*cos(2*pi*f*t+d); axes(handles.axes1); plot(t,y); case 3 y=A*square(2*pi*f*t+d) axes(handles.axes1); plot(t,y); case 4 y=A*sawtooth(2*pi*f*t+d,0.5); axes(handles.axes1); plot(t,y); case 5 y=A*sawtooth(2*pi*f*t+d,1); axes(handles.axes1); plot(t,y); case 6 y=sqrt(1)*randn(1,N) axes(handles.axes1); plot(t,y); end3.1.3设计结果通过数字信号发生器,产生需要的信号,如下图所示:图3.2 正弦波1图3.3 正弦波2图3.4 余弦波图3.5 方波图3.6 三角波图3.7 锯齿波图3.8 白噪声3.2 数字电子琴3.2.1搭建GUI界面电子琴GUI界面搭建如图3.9所示:图3.9 数字电子琴3.2.2编写M文件波形选择回调函数:a=get(hObject,value);音量大小通过波形的幅值反映,按键对应的波形的回调函数(以按键1为例)如下,其中edit2,slider2为音量控制:function pushbutton1_Callback(hObject, eventdata, handles)global a;axes(handles.axes1);a=get(handles. popupmenu1,value) Fs = 44100; strA=get(handles.edit2,string); A=str2double(strA); str=get(handles.slider2,Value); set(handles.edit2,string,str); dt = 1.0/Fs; t = 0:dt:0.1;if a=1 y = A*sin(2*pi*131*t); plot(t,y); wavplay(y,Fs); axis(0 0.1 -100 100);end if a=2 y = A*cos(2*pi*131*t); plot(t,y); wavplay(y,Fs); axis(0 0.1 -100 100); end if a=3 y = A*square(2*pi*131*t); plot(t,y); wavplay(y,Fs); axis(0 0.1 -100 100); endif a=4 y=A*sawtooth(2*pi*131*t,0.5); plot(t,y); wavplay(y,Fs); axis(0 0.1 -100 100);endif a=5 % y=A*sawtooth(2*pi*131*t,1); plot(t,y); wavplay(y,Fs); axis(0 0.1 -100 100);end 3.2.3设计结果通过鼠标,分别点击按键1-7,产生的波形如下所示。调节音量,可改变信号幅值。图3.10 电子琴1图3.11 电子琴2图3.12 电子琴3图3.13 电子琴4图3.14 电子琴5图3.15 电子琴6图3.16 电子琴74存在的问题本次设计虽然基本实现了信号发生器和电子琴的要求,但是还是存在一些不足。比如信号发
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 锰矿矿石矿化特征与勘探方法考核试卷
- 港口物流绩效评估考核试卷
- 金属丝绳在高温环境中的应用与特性考核试卷
- 胶合板在运动器材制造中的应用考核试卷
- 口腔科引流管护理
- 生活不合理设计与系统化改善
- 儿科心血管疾病诊疗与管理
- 小儿发热疾病防治要点解析
- Sodium-deuteroxide-D-99-5-basicity-30-Sodium-hydroxide-d-D-99-5-basicity-30-生命科学试剂-MCE
- Arcitumomab-生命科学试剂-MCE
- 2024年湖南省初中学业水平考试地理试卷含答案
- 急性肺栓塞的急救护理
- GB/T 32124-2024磷石膏的处理处置规范
- 奶茶供货合作协议书范文范本
- 明清家具完整版本
- GB/T 15822.2-2024无损检测磁粉检测第2部分:检测介质
- 2024年河南省现场流行病学调查职业技能竞赛理论考试题库-中(多选题部分)
- 学术诚信讲座
- 2024新人教版七年级上册英语单词表衡水体字帖
- 2024-2025学年全国中学生天文知识竞赛考试题库(含答案)
- 子宫颈机能不全临床诊治中国专家共识(2024年版)解读1
评论
0/150
提交评论