您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 综合/其它 > 基于Matlab的数字电子琴的设计与实现
工程数字信号处理算法与实践之基于Matlab的数字电子琴的设计与实现学生:吕柳燕班级:机硕0701学号:200770438指导教师:何岭松日期:2007-9-28基于Matlab的数字电子琴的设计与实现学生:吕柳燕第页共3页1基于Matlab的数字电子琴的设计与实现电子琴发展概况电子琴是随着电子技术的广泛应用而产生。1959年,世界上第一台全晶体管双排键电子琴在日本诞生。从此,电子琴技术不断发展成熟,电子琴的普及也越来越广。电子琴在中国的推广始于20世纪八十年代,至今在音色、音质、演奏的便利性等方面都达到了相当成熟的地步,而且随着集成电路技术的发展,其升级换代可以在保持原有结构不变的情况下,通过简单的芯片更换实现。但是,电子琴也有明显的不足之处:与非电子乐器,如钢琴、管弦乐器等的协奏问题,限制了电子琴在重要音乐场所的使用,这极大的影响了电子琴的应用和推广。协调电子琴与非电子乐器的协奏,是当前音乐界人士和电子琴开发商的当务之急。电子琴发音原理物体振动时会发出声音,振动的频率不同,声音的音调就不同。在电子琴里,虽然没有振动的弦、簧、管等物体,却有许多特殊的电装置,每个电装置一工作,就会使喇叭发出一定频率的声音。当按动某个琴键时,就会使与它对应的电装置工作,从而使喇叭发出某种音调的声音。电子琴的音量控制器,实质上是一个可调电阻器。当转动音量控制器旋扭时,可调电阻器的电阻就随着变化。电阻大小的变化,又会引起喇叭声音强弱的变化。所以转动音量控制旋扭时,电子琴发声的响度就随之变化。当乐器发声时,除了发出某一频率的声音──基音以外,还会发出响度较小、频率加倍的辅助音──谐音。我们听到的乐器的声音是它发出的基音和谐音混合而成的。不同的乐器发出同一基音时,不仅谐音的数目不同,而且各谐音的响度也不同。因而使不同的乐器具有不同的音品。在电子琴里,除了有与基音对应的电装置外,还有与许多谐音对应的电装置,适当地选择不同的谐音电装置,就可以模仿出不同乐器的声音来。基于Matlab的数字电子琴实现原理振动频率不同,音调就不同。电子琴的每一按键对应一个频率不同的正弦波,按下按键,产生正弦波,播放波形即可听到对应按键的基音。基于Matlab的数字电子琴的实现在Matlab环境下,设置如图-1所示的数字电子琴界面,编程实现按键A基于Matlab的数字电子琴的设计与实现学生:吕柳燕第页共3页2至O的消息映射即可。实现要点(1)按键A至O对应的正弦波频率(HZ)依次为:131、147、165、175、196、220、247、262、294、330、349、392、440、494、523(2)按键对应正弦波频率的数字显示下面是按键A对应的消息映射:,其余按键代码相同,只是频率f值不同图-1数字电子琴交互界面%映射函数functionpushbutton3_Callback(hObject,eventdata,handles)%映射代码:由设计者编写A=1;%正弦波幅度f=131;%正弦波频率Fs=11025;%PC声卡抽样频率P=60;%正弦波初始相位%数字正弦波产生代码T=1.0/f;dt=T/Fs;N=T/dt;t=linspace(0,1,N);y=A*sin(2*pi*f*t+P);Phandel=findobj('Tag','edit1');基于Matlab的数字电子琴的设计与实现学生:吕柳燕第页共3页3set(Phandel,'String',f,'FontSize',15.0);%显示正弦波频率plot(t,y,'r');%显示正弦波波形grid;axis([0,0.1,-1.5,1.5]);wavplay(y,11025);%按键发音(基音)pause(1);cla;%波形显示1秒后消失设计尚需完善之处(1)实际上,当按下电子琴的某一键,电子琴除了发出某一频率的声音──基音以外,还会发出响度较小、频率加倍的辅助音──谐音。我们听到的乐器的声音是它发出的基音和谐音混合而成的。需要对映射代码稍加修改,添加谐音成分,使发音更加逼近电子琴实体。(2)设计的电子琴界面中,琴键由鼠标操控;若能实现PC键盘上的A至O键与电子琴琴键A至O的对应关系,即按下键盘A键与用鼠标按下琴键A等价,则电子琴交互界面更加友好。(3)设计的电子琴无法实现音量控制。参考文献:伊泽明,丁春利,《精通Matlab6》,清华大学出版社=181=3017
本文标题:基于Matlab的数字电子琴的设计与实现
链接地址:https://www.777doc.com/doc-2570687 .html