基于MATLAB的数字电子琴设计

合集下载

基于MATLAB的音乐电子琴制作

基于MATLAB的音乐电子琴制作

基于MATLAB的音乐电子琴制作简述:电子琴的每个音阶均对应一个特定频率的信号,通过调用数字信号发生器产生一系列指定的频率的声音,从而达到虚拟的电子琴的功能。

本次设计是基于MATLAB GUI 程序实现的一个音乐键盘仿真系统。

1 功能介绍总体设计框图如下图所示,其包括单音键盘发音模块,音效长短的选择模块,包络的选择模块,实现键盘代替鼠标输入模块,双音多频模块,演奏音乐模块,播放歌曲,视频模块包括对文件播放的暂停,停止和复位,多键盘输入对输入后统一播放模块和画图模块。

Matlab的数据采集工具箱(DAT)提供了一系列的函数和命令来实现实时模拟信号的输出, 通过调用这些函数和命令可以直接控制声卡输出虚拟信号。

只需要一台带有普通多媒体声卡并安装了Matlab 软件的计算机就可以满足要求实现虚拟信号的输出, 系统结构简单方便。

交互界面如图1所示:图1 程序的交互界面1)单音键盘发音模块设计一个带参子函数实现键盘的发音功能,当实现需要实现音阶的播放时,只要调用这个子函数,并根据不同音阶、不同音调的频率改变子函数的参数即可。

2) 音效长短的选择模块制作一个button group的组控件分别选择不同的控件实现不同的音效长短,音效的长短是通过改变播放一个音阶的时间长短来实现的。

3)包络的选择模块制作一个button group的组控件分别选择不同的控件实现不同的包络,在模块一的基础上,设置选中不同的控件分别对应不同的包络,x为不同包络(如正弦波、三角波、指数等)的表达形式,将x与模块一中实现单音键盘发音的函数相乘时便可实现不同形式的衰减,实现音型的改变。

4)实现键盘代替鼠标输入模块根据计算机键盘上的不同按键对应不同的ASCII码的值,利用函数get()获取当前所按下的数字键对应的ASCII码的值,根据 ASCII码的值判断对应是按下键盘的值。

并执行相应音阶的功能键。

5)双音多频模块通过设置一个radio button 来实现双音多频的功能,设置一个全局变量,当选中该控件时,全局变量的值改变,即在带参的子函数中增加它的频率分量。

基于matlab的数字电子琴的完全指导手册

基于matlab的数字电子琴的完全指导手册

1.概述伴随计算机软硬件技术旳发展, 越来越多现实物品旳功能可以由计算机实现。

信号发生器原本是模拟电子技术发展旳产物, 到后来旳数字信号发生器也是通过硬件实现旳, 本文将给出旳则是通过计算机软件实现旳数字信号发生器。

目前有许多功能强仿真软件(如LabView、EWB)提功了多种模拟信号发生器旳功能, 从而并没有多少人专门去开发数字信号发生器软件, 虽然是特殊功能旳信号发生器也是基于仿真软件完毕旳, 不过数字信号发生器旳软件模块可以用来开发某些别旳软件, 如数字电子琴。

数字电子琴旳编程实现已经有许多人已经做过了(例如基于BASIC旳模拟电子琴[1]), 也出现了诸多功能较强大旳模拟电子琴软件, 如HappyEO、MidiPiano等。

2.软件设计2.1.软件旳功能软件旳功能由数字信号发生器和数字电子琴两部分构成。

(1)数字信号发生器旳功能可以产生正弦波、方波、三角波等常见旳波形旳数字信号, 并且提供了图形界面用于选择波形、频率、幅值与相位。

可以根据顾客指定旳波形和参数产生对应旳数字信号, 然后将数字信号写入声卡旳缓冲区, 最终由声卡播放出对应旳声音。

(2)数字电子琴旳功能数字电子琴旳功能是基于数字信号发生器旳, 通过调用数字信号发生器产生一系列指定旳频率旳声音, 从而到达虚拟旳电子琴旳功能, 界面中包括A.B.…、O 共15个琴键, 鼠标按下时即发声, 松开时发声停止。

2.2.设计原理数字信号发生器旳功能就是将数字信号通过D/A转换变成所需要旳模拟信号。

由于声卡自身具有D/A转换旳功能, 从而可以运用声卡在计算机了模拟信号发生器。

声卡旳D/A转换机理是定期将声卡缓冲区中旳内容转换成模拟信号并输出, 因此软件所做旳即是向声卡缓冲区中写数据。

以正弦信号为例, 其模拟信号计算公式如下为了实现数字信号旳发生, 在程序中先根据式(2)计算出需要寄存到缓冲区旳数据, 以数组旳形式寄存, 然后将数据放入声卡旳缓冲区。

MATLAB在电子琴制作与编程中的应用指南

MATLAB在电子琴制作与编程中的应用指南

MATLAB在电子琴制作与编程中的应用指南随着科技的不断发展,电子琴已经逐渐成为了一种受欢迎的音乐工具。

由于不限于传统的乐器结构,电子琴不仅可以模拟各种声音,还可以通过编程来实现更多的功能。

在电子琴的制作与编程过程中,MATLAB是一种常用且强大的工具。

本文将探讨MATLAB在电子琴制作与编程中的应用指南。

一、MATLAB简介与基本知识MATLAB是一种矩阵实验室,主要用于数学计算、数据处理、图像处理和建模等领域。

它提供了丰富的函数和工具箱,使得它成为了电子琴制作与编程的理想选择。

在使用MATLAB进行电子琴编程之前,我们需要对MATLAB有一定的了解与掌握。

首先,MATLAB具有强大的计算功能,可以进行各种复杂的数学运算。

这为电子琴的声音合成和信号处理提供了基础。

其次,MATLAB具有友好的图形界面和直观的编程语言,使得编写和调试电子琴的代码变得更加简单和高效。

最后,MATLAB还提供了广泛的工具箱,包括音频信号处理、数字滤波器设计等,这些工具箱可以方便地应用于电子琴的制作中。

二、电子琴声音合成与波形生成在电子琴制作中,声音合成和波形生成是其中的关键步骤。

使用MATLAB,我们可以通过编程来生成各种不同的声音效果。

首先,我们可以利用MATLAB中的信号处理工具箱来设计并生成特定频率的音调。

例如,使用MATLAB的sine函数可以生成正弦波,而使用square函数可以生成方波。

可以根据实际需求自定义音调,并根据自定义的频率生成相应的波形。

这使得我们能够根据不同的琴键来生成不同的音调,从而实现电子琴的声音合成。

此外,通过在波形中引入不同的参数变化,如振幅、频率、相位等,我们还可以模拟琴键按下和弹奏的过程中产生的音效,使得电子琴的音乐更加真实和生动。

这些参数可以根据实际需求进行调整,从而实现不同的音效变化。

三、电子琴控制与界面设计除了声音合成和波形生成,电子琴还需要实现用户与乐器之间的良好交互。

在电子琴的制作中,我们可以通过MATLAB来设计和实现电子琴的控制与界面。

基于MATLAB数字电子琴的音乐喷泉控制系统设计

基于MATLAB数字电子琴的音乐喷泉控制系统设计

基于MATLAB数字电子琴的音乐喷泉控制系统设计作者:陈禄洪邵群英蔡伟强来源:《魅力中国》2018年第46期摘要:本设计是以MATLAB为出发点,STM32F103系列作为硬件支撑,并且搭载音乐喷泉效果的控制系统,通过软硬件结合,设计出友好的人机交互GUI界面,實现了基于MATLAB数字电子琴的音乐喷泉控制系统。

关键词:MATLAB;数字电子琴;音乐喷泉一、引言电子琴是艺术与现代电子技术融合的产物,是新时代乐器的骄子,它不但可以帮助我们的音乐老师进行传统音乐文化的教育教学工作,而且它又具备现代音乐,特别是电子音乐、电脑音乐的基本结构、特征,因而使我们的教师在音乐教学中更直接、更简便[1],对培养学生的音乐感受力,开发学生的想象力,加深学生对音乐的记忆力及提高学生的听辨力和鉴赏力都有积极作用。

而一部真正好的电子琴,是让学习者能更好融入到电子琴中。

基于此种情况,我们提出了基于MATLAB数字电子琴的音乐喷泉控制系统设计,本设计利用MATLAB的GUI界面来进行信号处理程序设计仿真出电子琴,并结合单片机实现音乐喷泉音响的视觉效果和听觉盛宴,更加激发学习者对学习电子琴的兴趣与耐心。

二、软件设计此部分设计大部分在MATLAB的GUI界面中完成,在界面设计之前弄清楚了不同音阶对应的不同频率的关系(如图1)。

在GUI界面设计中,用画图工具把电子琴的框架设计出来后,在每个琴键的回调函数中添加对应音阶的代码,编译运行后,能实现每个琴键可鼠标控制,且发出对应音阶的声音。

音阶代码如图2(以do为例)三、硬件设计此数字电子琴的音乐喷泉控制系统的硬件部分,主要是实现以硬件也能弹奏和喷泉的功能。

本设计的芯片采用STM32F103系列,外接12个直插轻触按键来模拟对应的琴键,控制12个音符喷头的启动,形成动感喷泉效果。

如图3(一)外接12个直插轻触按键来模拟对应的琴键,形成一个小型的直接按键弹奏的电子琴,来直接控制喷泉的触发。

简易智能电子琴的设计

简易智能电子琴的设计

简易智能电子琴的设计摘要:本文介绍了一种基MCU的智能电子风琴的简单设计。

作为本工作主要控制核心的是STC89C52芯片,14个按键、无源扬声器、单片机复位系统等模块构成本作品的核心主控模块。

其中14个按键为2*7矩阵按键形式对应音符高音、中音的1、2、3、4、5、6、7,利用定时器去调节输出的脉冲频率,让蜂鸣器实现高音、中音的1、2、3、4、5、6、7的发音且与此同时让LED发出亮光。

本文其中硬件原理图是用Altium-designer绘制的,软件的编程是通过KeiluVision4对电子琴所编程,再通过proteus绘制仿真图并进行仿真调试,后将准确无误的程序烧录到STC89C52芯片中。

关键词:STC89C52单片机;简易电子琴;矩阵键盘;蜂鸣器第一章总体方案1.1系统设计要求本系统由两个部分构成,一个是自动演奏音乐,另一个手动按键弹奏音乐。

本作品是用C语言对单片机进行编程,使得扬声器能发出14个所需音阶,利用之中的定时器可实现此功能,再将音符所对应的频率存储在程序定义的表中。

具体要求如下:1.能正常演奏和弹奏音乐。

2.14个按键需对应音乐之中高音、中音的1、2、3、4、5、6、7的发音。

3.设置七个红色的LED指示灯,当按键按发声部件发声时需伴随指示灯的变化。

4.按键要按一定顺序摆放,需要与音阶一一对应.5.能自由切换弹奏功能与演奏功能1.2系统总体框图此系统通过14个按键输入所需要的音符,作为电平信号传达给主控核心,主控核心通过辨认,用特定方法将其转换为输出信号,输入至扬声器使其发出目标声音,就此达到能够弹奏不同音符的目的。

本系统主要由电源电路、最小单片机系统、发声模块、LED显示模块和按键模块等所构成,其中用两个按键去实现弹奏和播放功能切换。

上图为此作品系统框架图,主控模块用的是STC89c51最小单片机系统,用9个I/O口作2*7矩阵式按键的接口,用9个I/O口作LED指示灯的接口,扬声器需占用一个I/O口作接收信号作用。

基于MATLAB的数字电子琴设计

基于MATLAB的数字电子琴设计

*****************实践教学*******************题目:基于MATLAB的数字电子琴设计专业班级:姓名:学号:指导教师:成绩:摘要本次课设的任务是基于MATLAB设计一个数字电子琴,首先实现数字信号发生器的设计。

数字信号发生器是一种基于软硬件实现的波形发生器,可以实现各种基本波形的产生。

在工程的各种复杂信号是由这些基本信号叠加产生,因此它在工程分析和实验教学中有着广泛的应用,可用MATLAB实现。

MATLAB是一个数据分析和处理功能十分强大的工程实用软件,它的数据采集工具箱为实现数据的输入和输出提供了十分方便的函数和命令,在数字信号处理方面方便实用。

本文首先详细介绍了基于MATLAB的数字发生器的设计过程,实现了简单波形(正弦波、方波、三角波、锯齿波、白噪声、脉冲、阶跃)信号的具体实现方法。

其次介绍了利用该数字信号发生器产生的正弦波信号和声卡设计的简易电子琴。

关键词:MATLAB;数字信号发生器;简易电子琴目录前言 (1)一、数字信号发生器 (2)1.1图形用户界面的简介 (2)1.2设计流程 (2)1.3波形实现的基本原理 (3)二、电子琴的实现 (5)2.1简易数字电子琴的简介 (5)2.2实现原理 (5)三、基于MATLAB的仿真及结果分析 (6)3.1 GUI界面 (6)3.2编写M文件 (7)总结 (14)参考文献 (14)附录 (15)致谢 (22)前言MATLAB(矩阵实验室)是Matrix Laboratory的缩写,是一种用于算法开发、数据可视化、数据分析以及数值计算的高级计算机语言和交互式环境。

MATLAB 可以进行矩阵运算、绘制函数图像和数据、实现算法、创建用户界面、连接其他编程语言的程序等,主要应用于工程计算、控制设计、信号处理与通讯、图像处理、信号检测、金融建模设计与分析等领域。

Matlab环境下的图形用户界面(GUI)是由窗口、光标、按键、菜单、文字说明等对象构成的一个用户界面,可在图形用户界面内根据需要搭建图形,并对控件的回调函数进行编写,完成最完整的GUI界面编辑即可运行。

钢琴键设计与实现基于matlab的开题报告

钢琴键设计与实现基于matlab的开题报告

钢琴键设计与实现基于matlab的开题报告钢琴键设计与实现基于Matlab的开题报告一、研究背景钢琴是一种传统音乐乐器,其键盘设计和制造一直是科技和艺术的结合体。

钢琴键盘由黄铜锤和带有缝隙的木质键盘组成。

钢琴键可以控制琴弦之间的间隔和弦的音高,通过键盘发出声音。

对于钢琴键盘的设计,不仅需要考虑键盘的外形美学,还要确保声学效果的高品质。

因此,设计和制造钢琴键盘需要考虑多种条件,如材料、形状、重量、弹力等,这些因素将直接影响到钢琴的品质和声音。

二、研究目的本项目旨在设计并实现基于Matlab的钢琴键盘。

研究将深入挖掘钢琴键盘的设计和制造方法,借助Matlab软件结合先进的计算和仿真技术来设计和构建高品质的钢琴键盘。

本研究期望实现以下目标:1.分析钢琴键盘的设计和制造要素,确定各种参数的规范范围。

2.结合Matlab的计算机仿真技术,对钢琴键的材料、形状、重量、弹力进行建模和仿真。

3.设计并实现基于Matlab的钢琴键盘,验证仿真结果。

三、研究内容1. 钢琴键盘的设计和制造要素分析通过对钢琴键盘形状、材料、重量、弹力等关键参数进行详尽的分析和研究,确定了钢琴键盘设计和制造的规范范围和要素。

由此,为后续的模拟和仿真提供了依据。

2. 基于Matlab的钢琴键建模和仿真使用Matlab软件进行钢琴键建模,模拟钢琴键弹力、材料、形状等关键参数进行仿真,评估不同参数下的钢琴键的声音品质。

通过建模和仿真,预测键盘的性能表现、调整参数,从而满足音乐家和录音工程师的实际需求。

3. 基于Matlab的钢琴键盘实现在通过建模和仿真分析之后,基于Matlab设计实现钢琴键盘。

并对实现结果进行实验验证和分析。

四、研究意义本研究将结合Matlab的计算机仿真技术和音乐乐器软件系统设计和制造出高品质的钢琴键盘。

此外,本研究的第一阶段将分析键盘设计和制造方面的关键要素,为其他音乐乐器的键盘设计和制造奠定基础。

五、研究计划1.确定钢琴键盘的设计范围。

基于MATLAB的音乐电子琴制作

基于MATLAB的音乐电子琴制作

基于MATLAB的音乐电子琴制作简述:电子琴的每个音阶均对应一个特定频率的信号,通过调用数字信号发生器产生一系列指定的频率的声音,从而达到虚拟的电子琴的功能。

本次设计是基于MATLAB GUI 程序实现的一个音乐键盘仿真系统。

1 功能介绍总体设计框图如下图所示,其包括单音键盘发音模块,音效长短的选择模块,包络的选择模块,实现键盘代替鼠标输入模块,双音多频模块,演奏音乐模块,播放歌曲,视频模块包括对文件播放的暂停,停止和复位,多键盘输入对输入后统一播放模块和画图模块。

Matlab的数据采集工具箱(DAT)提供了一系列的函数和命令来实现实时模拟信号的输出, 通过调用这些函数和命令可以直接控制声卡输出虚拟信号。

只需要一台带有普通多媒体声卡并安装了Matlab 软件的计算机就可以满足要求实现虚拟信号的输出, 系统结构简单方便。

交互界面如图1所示:图1 程序的交互界面1)单音键盘发音模块设计一个带参子函数实现键盘的发音功能,当实现需要实现音阶的播放时,只要调用这个子函数,并根据不同音阶、不同音调的频率改变子函数的参数即可。

2) 音效长短的选择模块制作一个button group的组控件分别选择不同的控件实现不同的音效长短,音效的长短是通过改变播放一个音阶的时间长短来实现的。

3)包络的选择模块制作一个button group的组控件分别选择不同的控件实现不同的包络,在模块一的基础上,设置选中不同的控件分别对应不同的包络,x为不同包络(如正弦波、三角波、指数等)的表达形式,将x与模块一中实现单音键盘发音的函数相乘时便可实现不同形式的衰减,实现音型的改变。

4)实现键盘代替鼠标输入模块根据计算机键盘上的不同按键对应不同的ASCII码的值,利用函数get()获取当前所按下的数字键对应的ASCII码的值,根据 ASCII码的值判断对应是按下键盘的值。

并执行相应音阶的功能键。

5)双音多频模块通过设置一个radio button 来实现双音多频的功能,设置一个全局变量,当选中该控件时,全局变量的值改变,即在带参的子函数中增加它的频率分量。

基于LabVIEW的电子琴设计

基于LabVIEW的电子琴设计

基于LabVIEW的电子琴的设计摘要随着电子计算机的不断发展,以及软件开发技术的日新月异,电子计算机在数据的实时分析和处理,现实存贮等方面的优势与传统仪器相比越来越明显,随着计算机性价比的不断提升,传统仪器价格又高居不下,加上传统仪器的功能单一,发展虚拟仪器已经成为一个不可阻挡的历史潮流。

在20世纪80年代,美国国家仪器公司(NI)最早提出了虚拟仪器的概念,引发了传统仪器领域的一场重大变革,使得计算机网络技术得以长驱直入仪器领域,和仪器技术结合起来,从而开创了“软件即是仪器”的先河。

而虚拟仪器的设计,需要图形化的开发环境LabVIEW。

本文讲解了基于LabVIEW的电子琴的设计,通过对声音的频率设置,以及LabVIEW中的常用编程控件,来实现电子琴发声,本程序能实现电子琴基本演奏功能,还有音乐播放功能。

关键词:虚拟仪器,LabVIEW,电子琴Electric Piano Design Based on LabVIEWAbstractWith the rapid development of computer technology and software development technology, the advantagement of the computer in analyzing, processing, displaying, storing the data becomes more and more obvious. At the same time, developing virtual instrument has become an irresistible trend of history along with high cost performance of computer, high price of traditional instruments and the single function of the traditional instruments. In this environment, the American NI company firstly began to the study of the virtual oscilloscope; and then launched a plat for the LabVIEW.This thesis designs a set of virtual oscilloscope based on the basic structure of the virtual instrument and related knowledge of signal processing in author's procession. It analyzes the definition, structures and trend of development of the virtual instrument. It introduces the basic knowledge related with virtual oscilloscope, which is Fourier transform. Virtual instrument is composed of hardware and software in two parts. This thesis introduces the hardware simply, but studies the software at full length. Based on the study of the two parts of the virtual instrument, the author designs the spectrum analysis module, memory module, display module and measurement module.Key Words: Virtual Instrument, LabVIEW, Electronic piano目录第1章绪论 (1)1.1 电子琴的特色 (1)1.2 电子琴的构成 (1)1.3 电子琴的发展 (1)1.4 产品优势 (2)1.5 电子琴的意义 (2)第2章系统软件的开发平台LabVIEW简介 (2)2.1 LabVIEW的基本概述 (3)2.2 LabVIEW的模板分析 (5)2.2.1工具模板 (5)2.2.2 控件选板 (7)2.2.3 函数选板 (7)第3章电子琴的软件设计 (9)3.1 设计任务 (9)3.2 单按键发声 (9)3.3 电子琴设计 (11)3.4 播放声音文件 (13)第4章打包生安装文件 (16)总结 (25)参考文献 (26)致谢 (27)第1章绪论1.1 电子琴的特色电子琴又称作电子键盘,属于电子乐器,发音音量可以自由调节。

单音琴键matlab

单音琴键matlab

单音琴键matlab1钢琴的基本结构拥有88个琴键,其中52个白色琴键,36个黑色琴键。

第1号琴键为A2,第88号琴键为c52、第1号琴键A2为最低音,发出乐音的基频为27.5Hz,第88号琴键c5为最高音,发出乐音的基频为4186.01Hz。

3、钢琴上存在着一个国际基准音,为第49号琴键a1,也就是小字一组的第6个白键,其发出乐音的基频为440Hz(也称作标准音)。

4、钢琴是遵循十二平均律制制作的乐器,钢琴上每相邻的两个琴键(包括黑、白琴键)的频率差异称为半音。

半音是十二平均律体系中最小的频率差异距离,即最小的音高距离。

将一个八度音程十二等分为十二个半音,其数学意义为:八度音程指的是从基频至两倍频率的范围。

因此在八度音程中分为十二等分乃是把这个频率范围分为十二个等比级数,其结果就是每个后续音的基频为前一个音的1.059463倍。

2利用matlab模拟钢琴发声的原理声音是一种常见的物理现象。

物体机械振动形成声波,借助空气媒介,传至人类的耳膜,引起神经反射,被人类感知为声音,人脑又对声音信号快速翻译成人类可以理解的语言、音乐和各种已知的声音。

人类能感知的声音在每秒振动数为20-20000次左右,即20 Hz-20000 Hz的频率范围。

音乐中使用的乐音通过长期改良、调整,已形成了固定组合,能够表达作曲者的感情,传递作曲者的思想,形成音乐文化。

考虑到人耳对声波频率的感知能力,音乐乐音被限定在27-4100 Hz的频率范围内,超过这个频率范围,人类不能清晰地感知,对表现塑造音乐形象的意义不大。

乐器的乐音音高特征对应振动频率乐音音长特征对应振动的持续时间长短乐音的音强特征对应振动的振幅乐音的音色特征对应着振动的频谱分布因此乐音特征由振动波的频率、时长、振幅、频谱四种物理量所决定。

乐音四种物理量是乐器具有完美表现与感染效果不可缺失的四大元素,所以对乐音的研究,应首先从物理学入手。

物理学研究发现,声音的音高和声波的振动频率关系密切,琴弦振动时,观察振动的波形图,两个相邻同方向峰值之间的间隔时间称为振荡周期,琴弦振动周期越短,则振动频率越高,表现为产生的声音音高越高。

LABVIEW虚拟钢琴的设计

LABVIEW虚拟钢琴的设计

LABVIEW虚拟实验系统的设计期末大作业报告题目:简易虚拟钢琴的制作学院:信息与通信工程学院班级:##########姓名: $$$$$$学号:########序号:##2012年12月25日一、基本介绍:此次期末大作业我做的是简易虚拟钢琴,所实现的功能主要是高中低21个音的弹奏,弹奏方式上实现了鼠标点按弹奏和用电脑键盘弹奏。

以下是程序的主界面:二、程序基本框图:三、程序的关键设计点:1、程序界面:背景和文字:使用Photoshop制作。

如下图:●琴键:使用LABVIEW确定按键,自定义颜色形状形成。

2、发音原理:由于我已经准备好各个音符的声音文件,所以可以直接使用播放声音文件VI直接播放声音。

播放声音文件VI声音输出清零VI具体使用方式如下:说明:向播放声音文件VI输入声音文件绝对路径,然后再在后面接上声音输出清零VI,其作用是使设备停止播放音频,清空缓存,任务返回至默认状态,并清除与任务相关的资源。

简单来说就是为了使每个音符的发声时间长度一致。

实验中我是把以上整个发音结构作为一个基本单元使用的,以下用到这个结构的地方,我简称它为发音程序。

3、鼠标点按弹奏功能:●琴键设置:琴键采用的是确定按钮,白键的属性设置:黑键的属性设置:它们的机械动作均为保持转换直到释放。

● 琴键布局完成后,将它们与程序框图相关联:如右图,建立一个事件结构:其作用:包括一个或多个子程序框图或事件分支,结构执行时,仅有一个子程序框图或分支在执行。

事件结构可等待直至事件发生,并执行相应条件分支,处理该事件。

假如琴键名为C ,那么在事件结构里添加C 的鼠标按下事件,一旦C 按下,就发出对应音乐,实现弹奏。

●将以上方法应用到每个按键,就实现了所有音符的弹奏。

C 音的发音程序4、键盘弹奏功能:还是以上的事件结构,再添加一个“键按下”的事件:当键盘上任意键按下时就启动事件框内的程序,程序负责查找哪个按键被按下,然后确定按下的琴键,并播放按键音。

matlab电子琴说明书

matlab电子琴说明书

m a t l a b电子琴说明书-CAL-FENGHAI.-(YICAI)-Company One1基于MATLAB的数字电子琴设计日期:2011-3-25姓名:王之海、郑俊超、张楠、杜坤组号:第一组1.目标与范围随着计算机软硬件技术的发展,越来越多现实物品的功能能够由计算机实现。

也就是我们经常所说的将硬件设备软件化,这样做的好处很多,比如说将成本降低,易于实现,修改容易并且可以进行仿真。

现在比较成熟的这类软件有很多,比如说LABVIEW。

基于这样的考虑我们进行了数字电子琴的模拟仿真实验。

这样一个实验的进行会为以后的学习工作中奠定一定的基础。

2.信号处理原理数字信号发生器的功能就是将数字信号通过D/A转换变成所需要的模拟信号。

由于声卡本身具有D/A转换的功能,从而可以利用声卡在计算机了模拟信号发生器。

声卡的D/A转换机理是定时将声卡缓冲区中的内容转换成模拟信号并输出,所以软件所做的即是向声卡缓冲区中写数据。

以正弦信号为例,其模拟信号计算工时如下为实现数字信号的发生,在程序中先根据公式计算出需要存放到缓冲区的数据,以数组的形式存放,然后将数据存放入声卡的缓冲区。

对于方波,y=sign(sin(2*pi*f*t+p))对于其它波形,可以用类似方法实现。

软件的流程图如图所示数字电子琴的流程图3.系统的功能分析软件的功能由数字信号发生器和数字电子琴两部分组成。

(1)数字信号发生器的功能能够产生正弦波、方波、三角波等常见的波形的数字信号,并且提供了图形界面用于选择波形、频率、幅值与相位。

能够根据用户指定的波形和参数产生相应的数字信号,然后将数字信号写入声卡的缓冲区,最后由声卡播放出相应的声音。

(2)数字电子琴的功能1)数字电子琴的功能是基于数字信号发生器的,通过条用数字信号发生器产生一系列指定的频率的声音,从而达到虚拟的电子琴的功能,界面中包含do/rai/mi…共16个琴键,鼠标按下时即时发声秒;并可通过键盘敲击按键进行琴音播放。

matlab课程设计钢琴键

matlab课程设计钢琴键

matlab课程设计钢琴键一、教学目标本节课的教学目标是让学生掌握MATLAB软件的基本操作,能够利用MATLAB绘制钢琴键图案。

具体来说,知识目标包括了解MATLAB的基本功能和语法,掌握绘图的基本命令;技能目标包括能够独立操作MATLAB软件,绘制简单的图形;情感态度价值观目标包括培养学生对计算机辅助设计的兴趣,提高学生解决问题的能力。

二、教学内容本节课的教学内容主要包括MATLAB软件的基本操作、绘图命令及钢琴键图案的绘制。

首先,介绍MATLAB软件的界面和基本功能,让学生熟悉软件的操作环境。

然后,讲解MATLAB的绘图命令,如plot、hold、axis等,让学生了解如何控制图形的大小、颜色等属性。

最后,通过案例教学,引导学生利用MATLAB绘制钢琴键图案,巩固所学知识。

三、教学方法为了达到本节课的教学目标,采用多种教学方法相结合的方式进行教学。

首先,采用讲授法,向学生讲解MATLAB的基本功能和绘图命令。

其次,通过案例分析法,让学生动手实践,绘制钢琴键图案。

此外,还采用讨论法,鼓励学生提问、交流,解决学生在操作过程中遇到的问题。

最后,运用实验法,让学生在计算机上操作MATLAB软件,增强实践能力。

四、教学资源为了支持本节课的教学内容和教学方法的实施,准备以下教学资源:教材《MATLAB教程》、参考书《MATLAB编程与应用》、多媒体资料(包括PPT、视频教程等)、计算机实验室(配备MATLAB软件)。

这些教学资源将有助于丰富学生的学习体验,提高学习效果。

五、教学评估本节课的教学评估将采取多元化的评价方式,以全面、客观、公正地评价学生的学习成果。

评估主要包括以下几个方面:1.平时表现:通过观察学生在课堂上的参与程度、提问回答、小组讨论等活动,评价学生的学习态度和课堂表现。

2.作业:布置相关的编程作业,让学生独立完成,通过作业的完成质量评估学生的掌握程度。

3.实验报告:学生在实验室的操作和实验报告撰写,以评估学生的实践能力和动手操作能力。

基于Matlab的数字电子琴的设计与实现

基于Matlab的数字电子琴的设计与实现

工程数字信号处理算法与实践之基于Matlab的数字电子琴的设计与实现学生:吕柳燕班级:机硕0701学号:200770438指导教师:何岭松日期:2007-9-28基于Matlab的数字电子琴的设计与实现电子琴发展概况电子琴是随着电子技术的广泛应用而产生。

1959年,世界上第一台全晶体管双排键电子琴在日本诞生。

从此,电子琴技术不断发展成熟,电子琴的普及也越来越广。

电子琴在中国的推广始于20世纪八十年代,至今在音色、音质、演奏的便利性等方面都达到了相当成熟的地步,而且随着集成电路技术的发展,其升级换代可以在保持原有结构不变的情况下,通过简单的芯片更换实现。

但是,电子琴也有明显的不足之处:与非电子乐器,如钢琴、管弦乐器等的协奏问题,限制了电子琴在重要音乐场所的使用,这极大的影响了电子琴的应用和推广。

协调电子琴与非电子乐器的协奏,是当前音乐界人士和电子琴开发商的当务之急。

电子琴发音原理物体振动时会发出声音,振动的频率不同,声音的音调就不同。

在电子琴里,虽然没有振动的弦、簧、管等物体,却有许多特殊的电装置,每个电装置一工作,就会使喇叭发出一定频率的声音。

当按动某个琴键时,就会使与它对应的电装置工作,从而使喇叭发出某种音调的声音。

电子琴的音量控制器,实质上是一个可调电阻器。

当转动音量控制器旋扭时,可调电阻器的电阻就随着变化。

电阻大小的变化,又会引起喇叭声音强弱的变化。

所以转动音量控制旋扭时,电子琴发声的响度就随之变化。

当乐器发声时,除了发出某一频率的声音──基音以外,还会发出响度较小、频率加倍的辅助音──谐音。

我们听到的乐器的声音是它发出的基音和谐音混合而成的。

不同的乐器发出同一基音时,不仅谐音的数目不同,而且各谐音的响度也不同。

因而使不同的乐器具有不同的音品。

在电子琴里,除了有与基音对应的电装置外,还有与许多谐音对应的电装置,适当地选择不同的谐音电装置,就可以模仿出不同乐器的声音来。

基于 Matlab的数字电子琴实现原理振动频率不同,音调就不同。

matlab数字信号发生器和电子琴设计

matlab数字信号发生器和电子琴设计

matlab数字信号发⽣器和电⼦琴设计数字信号发⽣器和数字电⼦琴摘要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 数字信号发⽣器流程图在此基础上,将产⽣的数字信号写⼊声卡,即可播放出相应⾳阶的声⾳,实现电⼦琴的功能。

matlab模拟钢琴课程设计

matlab模拟钢琴课程设计

matlab模拟钢琴课程设计一、课程目标知识目标:1. 理解Matlab软件的基本操作,掌握运用其进行音频信号处理的方法。

2. 学习钢琴基础知识,了解钢琴音色、音域和键盘布局。

3. 掌握通过Matlab编程模拟钢琴音色的基本技巧。

技能目标:1. 能够运用Matlab软件进行音频信号的读取、处理和输出。

2. 能够自主编写简单的Matlab程序,模拟钢琴音色,实现基本演奏功能。

3. 能够运用所学的知识,对钢琴音乐作品进行简单的分析、改编和创新。

情感态度价值观目标:1. 培养学生对音乐和计算机编程的兴趣,激发创新思维和动手实践能力。

2. 增强团队协作意识,学会与他人分享、交流学习心得。

3. 提高学生对传统文化的认识,培养审美情趣。

课程性质:本课程为选修课,旨在让学生在实践中掌握Matlab编程技能,同时了解钢琴音乐知识,培养学生的音乐素养和计算机应用能力。

学生特点:学生为高中年级,具备一定的计算机操作基础和音乐素养,对新鲜事物充满好奇,喜欢动手实践。

教学要求:注重理论与实践相结合,强调学生的动手实践能力,充分调动学生的主观能动性,引导他们自主探索、创新实践。

通过课程学习,使学生能够将所学知识应用于实际生活和音乐创作中。

二、教学内容1. Matlab软件基本操作与音频信号处理- 熟悉Matlab软件界面,掌握基本命令与操作。

- 学习音频文件的读取、播放、录制与保存。

- 了解音频信号的基本概念,如采样率、量化精度等。

2. 钢琴基础知识- 了解钢琴的音域、音色特点及键盘布局。

- 学习钢琴演奏的基本技巧,如五线谱识读、音阶、和弦等。

3. Matlab模拟钢琴音色编程- 掌握运用Matlab生成、处理音频信号的方法。

- 学习编写程序,模拟钢琴音色,实现基本演奏功能。

4. 钢琴音乐作品分析与创作- 分析经典钢琴音乐作品的结构、风格和演奏技巧。

- 尝试对钢琴音乐作品进行改编和创新,运用Matlab实现演奏。

教学大纲安排:第一周:Matlab软件基本操作与音频信号处理第二周:钢琴基础知识与演奏技巧第三周:Matlab模拟钢琴音色编程(一)第四周:Matlab模拟钢琴音色编程(二)第五周:钢琴音乐作品分析与创作教学内容关联教材章节:《音乐与计算机》第三章:音频信号处理《音乐与计算机》第四章:Matlab在音乐中的应用《钢琴基础教程》全章节:钢琴基础知识与演奏技巧三、教学方法1. 讲授法:- 在讲解Matlab软件基本操作、音频信号处理原理及钢琴基础知识等理论性较强的内容时,采用讲授法,使学生在短时间内快速掌握基本概念和理论。

计算机仿真电子琴课程设计

计算机仿真电子琴课程设计

计算机仿真电子琴一、课程设计的目的与要求1、设计目的本课程的课程设计是自动化专业学生学习完《微机原理及应用》课程后,进行的一次以汇编语言为主,硬件设计为辅的综合训练。

本课程设计的目的在于加深对微机原理基本知识的理解,掌握汇编语言程序设计的基本方法;掌握运用微机原理开发系统的基本方法。

2、设计要求从课程设计的目的出发,通过设计工作的各个环节,达到以下要求:1)掌握汇编语言程序设计的基本方法。

2)进一步理解各种接口电路的应用。

例如8255并行接口,8253定时器等。

3)掌握利用PC机扬声器发出不同频率声音的方法。

3、主要技术指标编写程序1)在程序运行时使PC即成为一架可弹奏的电子琴。

当按下数字键1-8时,依次发出1,2,3,4,5,6,7,I这八个音调。

按下回车则退出电子琴状态。

2)在程序运行时使PC自动按要求提示演奏乐曲。

二、课程设计课题的分析图1.扬声器工作原理图示图2.主程序工作流程图图3.乐曲演奏子程序工作流程图 图4.电子琴子程序工作流程图图5.扬声器工作流程图三、课程设计的结果1、实验代码DATA SEGMENTINFO1 DB 0AH, 0DH, 'WELCOME YOU TO COME HERE!$'DB 0AH, 0DH, 'THIS IS A MUSIC PROGRAM!$'DB 0AH, 0DH, 'PLEASE SELECLT!$'INFO2 DB 0AH, 0DH, 'INPUT ERROR!$'INFO3 DB 0AH, 0DH, 'PLEASE INPUT AGAIN!$'MUSLIST DB 0AH, 0DH, '========================='DB 0AH, 0DH, 'Press1 HuanLeSong'DB 0AH, 0DH, 'Press2 SCALE PLAY 'DB 0AH, 0DH, 'Press3 or ctrl+C EXIT'DB 0AH, 0DH, '========================='DB 0AH, 0DH, '$'MUS_FRQ1 DW 330, 330, 350, 393, 393, 350, 330, 294DW 262, 262, 294, 330, 330, 294, 294DW 330, 330, 350, 393, 393, 350, 330, 294DW 262, 262, 294, 330, 294, 262, 262DW 294, 294, 330, 262, 294, 330, 350, 330, 262DW 294, 330, 350, 330, 262, 262, 294, 393DW 330, 330, 350, 393, 393, 350, 330, 294DW 262, 262, 294, 330, 294, 262, 262, -1MUS_TIM1 DW 8 DUP(100)DW 7 DUP(100),200DW 8 DUP(100)DW 7 DUP(100),200DW 5 DUP(100),50,50,2 DUP(100)DW 100,50,50,4 DUP(100),200DW 8 DUP(100)DW 7 DUP(100),200TABLE DW 262, 294, 330, 349, 392, 440, 494, 525 NUMB DB 0AH, 0DH, 'Keyboard number 1~8 keys play notes of the scale' DB 0AH, 0DH, 'Enter to exit'DB 0AH, 0DH, '$'DATA ENDSSTACK SEGMENT PARA STACK 'STACK'STA DB 200 DUP('STACK')STACK ENDSCODE SEGMENTASSUME DS: DATA, SS: STACK, CS: CODE, ES: DATASTART: MOV AX, DATAMOV DS, AXMOV ES, AXMOV AX, STACKMOV SS, AXSHOW MACRO BMOV DX, OFFSET BMOV AH, 09HINT 21HENDMSHOW INFO1LOP: SHOW MUSLISTMOV AH, 01HINT 21HCMP AL, 33HJZ RETUCMP AL, 31HJNZ B0CALL MUSIC1JMP EXIT1B0: CMP AL, 32HJNZ EXITSHOW NUMBCALL MUSIC2EXIT1: SHOW INFO3 JMP LOPEXIT: SHOW INFO2 SHOW INFO3 JMP LOPRETU: MOV AX, 4C00HINT 21HMUSIC1 PROCLEA SI, MUS_FRQ1LEA BP,DS: MUS_TIM1FREQ1: MOV DI, [SI]CMP DI,-1JE END_MUS1MOV BX, DS: [BP]CALL GENSOUNDADD SI,2ADD BP,2JMP FREQ1END_MUS1:RETMUSIC1 ENDPMUSIC2 PROC NEARPUSH AXPUSH BXPUSH CXLOP1: MOV AH, 01HINT 21H CMP AL, 0DH JE EXIT2CMP AL, 31H JB LOP1CMP AL, 38HJA LOP1AND AX, 0FH SHL AX, 1 SUB AX, 2 MOV SI, AXMOV BX, OFFSET TABLEMOV DI, [BX][SI] MOV BX, 100CALL GENSOUNDJMP LOP1EXIT2: POP CXPOP BXPOP AXRETMUSIC2 ENDPGENSOUND PROCPUSH AXPUSH BXPUSH CXPUSH DXPUSH DIMOV AL, 0B6H OUT 43H, ALMOV DX, 12HMOV AX, 533H*896DIV DIOUT 42H, ALMOV AL, AHOUT 42H, ALIN AL, 61HMOV AH, ALOR AL, 3OUT 61H, ALPUSH AXWAIT1: MOV CX, 1200 DELA1: IN AL, 61H AND AL, 10HCMP AL, AHJE DELA1MOV AH,ALLOOP DELA1DEC BXJNZ WAIT1POP AXMOV AL, AHOUT 61H, AL POP DIPOP DXPOP CXPOP BXPOP AXRETGENSOUND ENDPCODE ENDSEND START2、实验现象1. 进入DOS后在DOS界面(图6)进行汇编链接并生成可执行文件.exe2.双击可执行文件KS.exe(这里我把程序取名为KS)进入操作界面如图7所示图7.操作界面初始界面图8.按数字键2后进入电子琴界面图9.按回车后退出电子琴界面3.在进行操作的时候只要在键盘上按1这数字键就可以听取歌曲1,按数字键2时进入电子琴界面,这时候1-8分别表示音乐CDEFGABC这几个音符。

基于MATLAB的数字信号发生器及简易电子琴设计

基于MATLAB的数字信号发生器及简易电子琴设计

基于MATLAB的数字信号发生器及简易电子琴设计摘要数字信号发生器是一种基于软硬件结合实现的函数波形产生仪器。

在工程实践中需要检测和分析的各种复杂信号均可分解成各种简单信号之和,而这些简单信号皆可由数字信号发生器模拟产生,因此它在工程分析和实验教学中有着广泛的应用。

MATLAB是一个数据分析和处理功能十分强大的工程实用软件,它的数据采集工具箱为实现数据的输入和输出提供了十分方便的函数和命令,在数字信号处理方面方便实用。

本文介绍了一种使用MATLAB建立一个简单数字信号发生器的基本流程,并详细叙述了简单波形(正弦波、方波、三角波、锯齿波、白噪声、脉冲、阶跃、斜坡)信号的具体实现方法。

最后,利用简单的正弦波信号和PC的声卡设计了一个简易电子琴。

关键字:MATLAB,数字信号发生器,简易电子琴1概述随着计算机技术和测试技术的不断发展,传统的测试仪器正向虚拟化方向发展,特别是在试验教学领域。

虚拟仪器作为现代仪器技术和计算机技术深层次结合的产物,更是得到了广泛应用。

信号发生器原本是模拟电子技术发展的产物,但本文设计出的数字信号发生器是基于计算机软硬件实现的数字信号发生器,是一种虚拟仪器。

2 设计原理常用的数字信号发生器一般可产生正弦信号、方波信号、三角波信号、锯齿波信号、白噪声信号、脉冲信号、阶跃信号、斜坡信号等。

此时的数字信号又可称为离散信号,即时间为离散变量的信号。

它只在离散时间上给出函数值,是时间上不连续的“序列”。

离散时间的间隔是均匀的,以t ∆表示。

t ∆的值由信号的采样频率fs 决定。

为保证采样后信号能真实地保留原始模拟信号信息,信号采样频率必须至少为原信号中最高频率成分的2倍。

这是采样的基本法则,称为采样定理。

本文为了使产生的数字信号更接近原始的模拟信号,采用的采样频率为原始信号频率的30倍。

MATLAB 程序提供了常用的各种基本信号的生成函数。

本设计需模拟的八种信号大部分都直接使用了MATLAB 提供的函数,只有少数几个信号没有调用函数,直接编写的。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

*****************实践教学*******************题目:基于MATLAB的数字电子琴设计专业班级:姓名:学号:指导教师:成绩:摘要本次课设的任务是基于MATLAB设计一个数字电子琴,首先实现数字信号发生器的设计。

数字信号发生器是一种基于软硬件实现的波形发生器,可以实现各种基本波形的产生。

在工程的各种复杂信号是由这些基本信号叠加产生,因此它在工程分析和实验教学中有着广泛的应用,可用MATLAB实现。

MATLAB是一个数据分析和处理功能十分强大的工程实用软件,它的数据采集工具箱为实现数据的输入和输出提供了十分方便的函数和命令,在数字信号处理方面方便实用。

本文首先详细介绍了基于MATLAB的数字发生器的设计过程,实现了简单波形(正弦波、方波、三角波、锯齿波、白噪声、脉冲、阶跃)信号的具体实现方法。

其次介绍了利用该数字信号发生器产生的正弦波信号和声卡设计的简易电子琴。

关键词:MATLAB;数字信号发生器;简易电子琴目录前言 (1)一、数字信号发生器 (2)1.1图形用户界面的简介 (2)1.2设计流程 (2)1.3波形实现的基本原理 (3)二、电子琴的实现 (5)2.1简易数字电子琴的简介 (5)2.2实现原理 (5)三、基于MATLAB的仿真及结果分析 (6)3.1 GUI界面 (6)3.2编写M文件 (7)总结 (14)参考文献 (14)附录 (15)致谢 (22)前言MATLAB(矩阵实验室)是Matrix Laboratory的缩写,是一种用于算法开发、数据可视化、数据分析以及数值计算的高级计算机语言和交互式环境。

MATLAB 可以进行矩阵运算、绘制函数图像和数据、实现算法、创建用户界面、连接其他编程语言的程序等,主要应用于工程计算、控制设计、信号处理与通讯、图像处理、信号检测、金融建模设计与分析等领域。

Matlab环境下的图形用户界面(GUI)是由窗口、光标、按键、菜单、文字说明等对象构成的一个用户界面,可在图形用户界面内根据需要搭建图形,并对控件的回调函数进行编写,完成最完整的GUI界面编辑即可运行。

本文主要利用MATLAB的图形用户界面设计数字信号发生器,在数字信号发生的基础上实现简易电子琴的设计。

信号发生器又称信号源或振荡器,是一种能提供各种频率、波形和输出电平电信号的仪器,数字信号发生器只是信号发生器的一种,在生产实践和科技领域中有着广泛的应用。

信号发生器按信号波形可分为正弦信号、函数(波形)信号、脉冲信号和随机信号发生器等四大类。

能够产生多种波形,如正弦波、三角波、锯齿波、矩形波(含方波)、阶跃信号、脉冲信号的电路被称为函数信号发生器。

本文设计了一种基于MATLAB图形用户界面的可以产生正弦波、方波、三角波、锯齿波、白噪声、脉冲信号、阶跃信号的虚拟数字信号发生器。

一、数字信号发生器1.1图形用户界面的简介图形用户界面即Graphical User Interface,简称GUI,又称图形用户接口。

Matlab环境下的图形用户界面(GUI)是由窗口、光标、按键、菜单、文字说明等对象构成的一个用户界面。

用户通过一定的方法(如鼠标或键盘)选择、激活这些图形对象,使计算机产生某种动作或变化,比如实现计算、绘图等。

MATLAB的用户,在指令窗中运行demo 打开那图形界面后,只要用鼠标进行选择和点击,就可产生丰富的内容。

对图形用户界面的操作一般有两个部分,首先按照设计的原理、要求,根据需要选择适当的图形对象搭建合理的GUI界面;然后对每个控件的回调函数在M文件内进行编写,使搭建的GUI界面能够运行。

数字信号发生器的设计所使用的工具即GUI界面,用到的图形对象有pushbutton、Aexs、Slider、Static Text、Edit Text。

模拟了七种信号:正弦波、方波、三角波、阶跃信号、斜波信号、锯齿波以及白噪声信号。

具体的实现原理如下。

1.2设计流程根据设计的要求分析出数字信号发生器的GUI界面构图,然后在MATLAB 的workplace界面中输入guide,打开GUI界面。

在GUI界面中搭建好具体的数字信号发生器的界面,并对每个控件的回调函数进行编写、保存M文件。

运行,若结果正确,再同一个GUI界面中搭建好电子琴的GUI界面,利用数字信号发生器产生的正弦波,对电子琴每个控件的回调函数进行编写、保存M文件。

运行,观察仿真结果。

若数字信号发生器的仿真结果不正确,检查控件的回调函数,修改并保存M文件,再次运行观察仿真结果。

具体的设计流程图如下:1.3波形实现的基本原理1.3.1正弦波的实现正弦信号的数学表达式如下:)2sin()sin(ϕπϕ+=+=ft A wt A y (1.1)其中:A 为幅值;f 为频率;φ为相位。

在MATLAB 中,由于处理对象均是离散的数字信号,将时间变量离散化并构造成一个一维数组用0.1:/1:0s f t = 其中:fs 为采样频率。

但s f 的值不能太大,否则波形显示会很慢。

相应的正弦波信号的数字信号表达式为)2sin()(ϕπ+∆=∆t fn A t n y (1.2)幅值、频率、相位参数可以由用户界面上的滑动条或编辑框输入。

在分别得到t 与y 的离散值后,用plot 作图函数即可获得相应波形显示。

1.3.2方波信号的实现方波信号的数学表达式为),(duty t square y = (1.3)该式可直接生成一个周期为2π,峰值为1±,占空比为duty 的方波信号,duty 的默认值为50%。

在MATLAB 中可得到幅值、频率、相位可调的方波信号函数)2(ϕπ+=ft Asquare y (1.4)1.3.3三角波信号的实现在MATLAB 中,可以用函数sawtooth 直接生成一个三角波信号,该函数可生成一个周期为2π,峰值为1±,最大值出现在2width π⨯位置的三角波。

利用该函数,可得到幅值、频率、相位可调的三角波信号函数)2(ϕπ+=ft Asawtooth y (1.5)1.3.4锯齿波信号的实现由于锯齿波信号与三角波信号相似,所以将sawtooth 函数中的width 参数值设为1,可得到锯齿波。

该函数得到的幅值、频率、相位可调的锯齿波信号函数)1,2ϕπ+=ft Asawtooth y ( (1.6)1.3.5脉冲信号的实现由于脉冲信号与方波信号波形相似,用方波信号函数square 函数为基础,将其函数值加1,可得到最大值为2,最小值为0的脉冲波形,原函数的duty 参数可用来调节脉冲的宽度。

用该函数,得到幅值、频率、相位可调的脉冲信号函数2/)1)1,2(++=ϕπft square A y (。

(1.7)1.3.6阶跃信号的实现由于阶跃信号比较特殊,可用函数直接表示,其函数表达式为)}()(0{00t t A t t y >+<= (1.8)1.3.7白噪声信号的实现白噪声信号是指功率谱密度在整个频域内均匀分布的噪声。

白噪声的实现可借助于MATLAB 中的randn 函数,它的功能是产生一个均值为0,标准差为1的随机数列或矩阵函数,可得到一个均值为0,标准差为a 的fs 维的随机矩阵。

二、电子琴的实现2.1简易数字电子琴的简介在设计界面中包含A、B、C、D、E、F、G共7个琴键,由于低音频率区分不是很明显,此次课设选择的是中音频率,其中每个按键对应一个频率的正弦波信号,各按键对应的信号频率分别为392、440、494、523、587、659、698、784Hz。

当用鼠标按下相应的键时发声,松开时发声停止,然后将数字信号写入声卡的缓冲区,由声卡播放出相应的声音。

当用鼠标按下对应的键时即可发出相应频率的声音。

2.2实现原理电子琴的实现基于之前设计的数字信号发生器,选择数字发生器产生的正弦波信号作为发声及显示波形,由回调函数和数字信号发生器结合起来,实现对波形的调用。

每个键对应一定的频率,在各个键的回调函数中设置好频率及频谱显示,实现每个键有自己特定频率的功能,为了使最终仿真结果更好,选择音阶中音调高的频率作为调试频率。

当键按下的时候,首先由相应的键和数字信号关联起来,随后将数字信号写入声卡的缓冲区,由声卡发出相应频率的声音,并显示波形及对应频率的频谱图,当键松开时声音即停止。

此次电子琴的设计实现了正弦波显示、频谱显示以及发声的功能,从而实现虚拟电子琴的模仿功能。

具体的实现流程图如下:开始打开MATLAB搭建电子琴的GUI界面执行并观察仿真结果结束图2.1 电子琴的实现流程图三、基于MATLAB的仿真及结果分析3.1 GUI界面3.1.1搭建数字信号发生器的GUI界面搭建的GUI界面如下图3.1:图3.1 数字信号发生器的GUI界面3.1.2电子琴的GUI界面。

搭建的数字电子琴GUI界面如图3.2所示:图3.2 数字电子琴的GUI界面G该界面主要由琴键组成,每个按键对应一定的频率,模拟电子琴的发声功能,它的波形显示及频谱图在数字信号发生器中。

3.2编写M文件3.2.1数字信号发生器的M文件(1)正弦信号的实现由正弦信号的数学表达式可知在程序中用到的具体表达式为ftpia=(3.1)y+*q*sin())/360*2(将时间变量离散化并构造成一个一维数组,要求采样频率不能太大,否则波形显示会很慢(2)方波信号的实现用square函数直接生成一个方波信号,程序中使用的具体函数为)50,***2*t f pi square A y (= (3.2) (3)三角波的实现函数sawtooth 直接生成一个三角波信号,程序中用到的具体实现函数为)5.0,***2(*t f pi sawtooth A y = (3.3) (4)锯齿波信号的实现具体的函数实现形式为)1,***2(*t f pi sawtooth A y = (3.4) (5)脉冲信号的实现抽样频率为8000,时间范围为[0,1],坐标抽为[0,a+1]。

得到的幅值、频率、相位可调的脉冲信号函数。

具体的函数2/)11),360/*(**2(*++=q t f pi square a y ( (3.5)(6)阶跃信号的实现0t 取1,A 取1,t 取[0,2π],时间间隔为π/100。

阶跃信号的函数表达式为)}()(0{00t t A t t y >+<= (3.6)(7)白噪声信号的实现白噪声是指功率谱密度在整个频域内均匀分布的噪声。

白噪声的实现可借于MATLAB 中的randn 函数,产生一个均值为0,标准差为1的随机数列或矩阵该函数可得到一个均值为0,标准差为a 的fs 维的随机矩阵。

)5.0,***2(*t f pi sawtooth A y = (3.7)3.3仿真结果数字信号发生器的仿真结果如下: (1)正弦波的仿真结果图3.3 数字信号发生器的正弦波波形(2)方波信号的仿真结果图3.4 方波信号的波形(3)三角波信号仿真结果图3.5 三角波信号的波形(4)阶跃信号仿真结果图3.6 阶跃信号的仿真结果(5)斜波信号图3.7 斜波信号的仿真结果(6)锯齿波信号的仿真结果图3.8 阶跃信号的仿真结果(7)白噪声仿真结果(1)按键A的仿真结果图3.10 按下A键,电子琴演奏时的效果(2)按键B的仿真结果图3.11 按下B键,电子琴演奏时的效果(3)按键C的仿真结果图3.12 按下C键,电子琴演奏时的效果总结本次的课程设计的任务是基于MATLAB设计一个数字电子琴,首先设计一个数字信号发生器。

相关文档
最新文档