Matlab课程设计报告资料整理_第1页
Matlab课程设计报告资料整理_第2页
Matlab课程设计报告资料整理_第3页
Matlab课程设计报告资料整理_第4页
Matlab课程设计报告资料整理_第5页
已阅读5页,还剩16页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

PAGEPAGE7《MATLAB实践》课程设计学生姓名:学号:专业班级:指导教师:目录1.设计目的………32.题目分析………33.总体设计………34.具体设计………45.小结和心得……………………76.参考文献………87.附录………81、设计目的运用MATLAB实现MATLAB的GUI程序设计。培养学生的工程实践能力,增强学生的程序设计能力和解决实际问题的能力。通过MATLAB实践设计的训练,提高学生对已学相关专业知识的掌握和应用水平。通过学习侧重培养学生树立如何运用所学的专业基础课程来选择设计题目,并培养学生合理安排实现设计的基本程序流程,利用强大的仿真功能与丰富的工具箱来制作、调试、评价自己设计的作品。通过课程实践教学,培养学生将已学课程基础理论与实践环节实际相结合。提高学生实践动手能力,为日后参加工作奠定一定的实践基础。也让我们明白了程序设计和MATLAB软件的应用。2、题目分析学习MATLABGUI程序设计,设计和实现一个音乐键盘仿真系统。要求:按照软件工程方法,根据需求进行程序的功能分析和界面设计,给出设计详细说明。然后按照自己拟定的功能要求进行程序设计和调试。以下几点是程序的功能:(1)设计音乐键盘GUI界面,实现单音键盘的发声。(2)实现键盘的双音多频,即每个键盘对应低音频组的一个频率和高音频组的一个频率,实现按键的发出双音。(3)能改变音乐包络形式,实现音型的改变。(4)能够演奏一段音乐。(5)能够显示集成音乐的曲谱,并且将之播放。(6)能够在动态框输入想要的曲谱,并且将之播放。(7)能够读取电脑键盘的相应,发出与钢琴键盘对应的声音3、总体设计3.1功能模块(1)钢琴键盘:先选择音高和包络,点击钢琴键盘即可发音。(2)电脑键盘:先选择音高和包络,点击相应电脑键盘即可发音。(3)音高和包络的选择:从菜单栏选择。(4)自主输入曲谱和播放:从动态框输入曲谱并播放。(5)集成曲目的选择和播放:从菜单栏选择并播放。(6)使用指南、关于软件、退出:从菜单栏选择。3.2软件设计思路4、具体设计4.1总体界面设置通过这次的设计,总共实现了以下五个功能模块,其中包括:1.音乐键盘GUI界面的设置,包括界面画面的设置。2.这次总共用了实现单音键盘的发声。3.实现键盘的双音多频,即每个键盘对应低音频组的一个频率和高音频组的一个频率,实现按键的发出双音。4.实现音型的改变,能改变音乐包络形式。5.能够演奏一段音乐,音乐的名字是小星星。4.2,各个功能模块实现第一点,界面的设置:这次共用了12个键盘。及其七个图相框,其中键盘一组之间共12键,7个白键,5个黑键,按规定每相邻半音的频率比值为12√2=1.059463,还有一个静态文档,一个文本框组成。图片采用以下图片和及其应用程序。第二点,实现单音的发音。单音的发音主要是老师给的一个程序,通过更改n的值可以改变音的长短,改变f00的频率就可以改变音质,f0000=sin(f00*2*pi*n);是一个主音频率,soundsc(f0000);是播放声音。k=2.^(1/12);f00=220;n=0:1/8000:1;f0000=sin(f00*2*pi*n);soundsc(f0000);第三点,实现键盘的双音多频。通过在单音的基础上加上一个谐波或者多个谐波,让主音频率出现叠加。这个不仅可以让音质得到根本上的提高,也可以调节声音让其变的更加悦耳。k=2.^(1/12);f00=220.*(k.^12);n=0:1/8000:0.3;f0000=(sin(f00*2*pi*n)+0.5*sin(f00*4*pi*n));soundsc(f0000);第四点,实现音型的改变,能改变音乐包络形式。这个主要是在f0000的单音或者多音的基础上加上一个包络,可以用方波,锯齿波,三角波等函数和它相乘第五点,能够演奏一段音乐,音乐的名字是小星星。这个原理主要是通过根据谱来使得一个个音来拼凑而成,在改变一下它的播音时间,就可以较为连贯的播出。具体程序参见附录。4.3各模块的调试结果。4.3.1,能够通过单音播放音乐,根据老师所给的单音,可以让键盘播出一个拉长的音,通过更改n的间隔范围或者取值范围可以让音变得拉长或者变短。本题通过把0到0.3之间取值范围为8000份。经过调试可以成功。4.3.2,多音多频的调节主要是在于主函数加上的其他谐波函数,这次是加上0.5.*sin(f00*4*pi*n),当然也可以加上更多的谐波,让音质得到一定的变更,此次调试也得到了成功。4.3.3,包络的添加及其改变主要还是通过包络函数,本次采用的是e指数的衰减函数,当然可以添加其他的包络,这样的添加效果可以改变音质,听出来的感觉与没有加包络的感觉是不一样的。同理其他包络也是一样。起初添加的包络和函数没有匹配,导致演奏不出来,经过检查得到了改正。4.3.4,歌曲的添加,这次添加的歌曲通过百度得到小星星的歌谱,然后在通过叠加得到了这首,当然添加其他的也行。起初,听起来的声音是拉长音,通过更改n的值得以连贯。5、小结和心得通过这次实践,让我学到了很多,明白了很多。首先在第一节课郑老师讲的MATLAB的GUI界面设置包括各个键的功能以及回调函数的应用和通过课后的练习,让我对这次实践有了进一步的理论和实践基础。在写下MATLAB设计任务安排的时候,期间的进度由于事先没有写详细以至于在安排的进度上出现了小差错,导致做出来的作品不够完善。在摸索的道路上慢慢前行,在第一周的时候做出了单音,在通过问老师,同学和上网查找资料的基础上,慢慢加上了包络,和双音双频等,经过这次的亲自实践熟悉和掌握MATLAB程序设计方法,掌握了最基础的MATLABGUI程序设计,学习了音乐合成基本知识。当然这次实验也存在着不足,虽然懂的添加文本选择框,但是却没有正确的回调函数让其运行,使得能够添加更多的功能和演奏项目。虽然用了ifelse但是还是不行,通过老师的指导用swithcase但是中途中还是出现了不足之处,系统提示出现错误,所以经过这次的实践也让自己明白了一个人的力量是有限了,需要和同学们进行商量与讨论。经过这次MATLAB实践课,充分的让自己尝试的结果得到体验与能力得到体现。相信不仅仅通过这门课让自己在毕业前得到了一次很好的锻炼,更是希望能够引以为鉴,争取在程序中得到加强,在其他设计方面得到进一步突破,让自己不断积累经验。通过这个也让我明白了这门课的有趣与神奇。以下是经过整改和修正后的最终图片,功能在过程中在添加文本中失败,以及程序最终没能够成功,以至于用简单的程序完成此次的实践,虽然这门课程结束了,但是也希望自己能够在接下来中更加的出色。6、参考书目:[1]《MATLAB实用教程》郑阿奇电子工业出版社[2]《信号系统-MATLAB综合实验》谷源涛高等教育出版社[3]基MATLAB的信号与系统试教程徐利民舒军编著清华大学出版社[4]信号与系统—MATLAB综合实验谷源涛高等教育出版社7、附录7.1一闪一闪亮晶晶歌曲程序附录k=2.^(1/12);f00=220.*(k.^3);n=0:1/8000:0.3;x=exp(-2*n);f0000=x.*(sin(f00*2*pi*n)+0.5*sin(f00*4*pi*n));soundsc(f0000);k=2.^(1/12);f00=220.*(k.^3);n=0:1/8000:0.3;x=exp(-2*n);f0000=x.*(sin(f00*2*pi*n)+0.5*sin(f00*4*pi*n));soundsc(f0000);k=2.^(1/12);f00=220.*(k.^10);n=0:1/8000:0.3;x=exp(-2*n);f0000=x.*(sin(f00*2*pi*n)+0.5*sin(f00*4*pi*n));soundsc(f0000);k=2.^(1/12);f00=220.*(k.^10);n=0:1/8000:0.3;x=exp(-2*n);f0000=x.*(sin(f00*2*pi*n)+0.5*sin(f00*4*pi*n));soundsc(f0000);k=2.^(1/12);f00=220.*(k.^12);n=0:1/8000:0.3;x=exp(-2*n);f0000=x.*(sin(f00*2*pi*n)+0.5*sin(f00*4*pi*n));soundsc(f0000);k=2.^(1/12);f00=220.*(k.^12);n=0:1/8000:0.3;x=exp(-2*n);f0000=x.*(sin(f00*2*pi*n)+0.5*sin(f00*4*pi*n));soundsc(f0000);k=2.^(1/12);f00=220.*(k.^10);n=0:1/8000:1;x=exp(-2*n);f0000=x.*(sin(f00*2*pi*n)+0.5*sin(f00*4*pi*n));soundsc(f0000);k=2.^(1/12);f00=220.*(k.^8);n=0:1/8000:0.3;x=exp(-2*n);f0000=x.*(sin(f00*2*pi*n)+0.5*sin(f00*4*pi*n));soundsc(f0000);k=2.^(1/12);f00=220.*(k.^8);n=0:1/8000:0.3;x=exp(-2*n);f0000=x.*(sin(f00*2*pi*n)+0.5*sin(f00*4*pi*n));soundsc(f0000);k=2.^(1/12);f00=220.*(k.^7);n=0:1/8000:0.3;x=exp(-2*n);f0000=x.*(sin(f00*2*pi*n)+0.5*sin(f00*4*pi*n));soundsc(f0000);k=2.^(1/12);f00=220.*(k.^7);n=0:1/8000:0.3;x=exp(-2*n);f0000=x.*(sin(f00*2*pi*n)+0.5*sin(f00*4*pi*n));soundsc(f0000);k=2.^(1/12);f00=220.*(k.^5);n=0:1/8000:0.3;x=exp(-2*n);f0000=x.*(sin(f00*2*pi*n)+0.5*sin(f00*4*pi*n));soundsc(f0000);k=2.^(1/12);f00=220.*(k.^5);n=0:1/8000:0.3;x=exp(-2*n);f0000=x.*(sin(f00*2*pi*n)+0.5*sin(f00*4*pi*n));soundsc(f0000);k=2.^(1/12);f00=220.*(k.^3);n=0:1/8000:1;x=exp(-2*n);f0000=x.*(sin(f00*2*pi*n)+0.5*sin(f00*4*pi*n));soundsc(f0000);k=2.^(1/12);f00=220.*(k.^10);n=0:1/8000:0.3;x=exp(-2*n);f0000=x.*(sin(f00*2*pi*n)+0.5*sin(f00*4*pi*n));soundsc(f0000);k=2.^(1/12);f00=220.*(k.^10);n=0:1/8000:0.3;x=exp(-2*n);f0000=x.*(sin(f00*2*pi*n)+0.5*sin(f00*4*pi*n));soundsc(f0000);k=2.^(1/12);f00=220.*(k.^8);n=0:1/8000:0.3;x=exp(-2*n);f0000=x.*(sin(f00*2*pi*n)+0.5*sin(f00*4*pi*n));soundsc(f0000);k=2.^(1/12);f00=220.*(k.^8);n=0:1/8000:0.3;x=exp(-2*n);f0000=x.*(sin(f00*2*pi*n)+0.5*sin(f00*4*pi*n));soundsc(f0000);k=2.^(1/12);f00=220.*(k.^7);n=0:1/8000:0.3;x=exp(-2*n);f0000=x.*(sin(f00*2*pi*n)+0.5*sin(f00*4*pi*n));soundsc(f0000);k=2.^(1/12);f00=220.*(k.^7);n=0:1/8000:0.3;x=exp(-2*n);f0000=x.*(sin(f00*2*pi*n)+0.5*sin(f00*4*pi*n));soundsc(f0000);k=2.^(1/12);f00=220.*(k.^5);n=0:1/8000:1;x=exp(-2*n);f0000=x.*(sin(f00*2*pi*n)+0.5*sin(f00*4*pi*n));soundsc(f0000);k=2.^(1/12);f00=220.*(k.^10);n=0:1/8000:0.3;x=exp(-2*n);f0000=x.*(sin(f00*2*pi*n)+0.5*sin(f00*4*pi*n));soundsc(f0000);k=2.^(1/12);f00=220.*(k.^10);n=0:1/8000:0.3;x=exp(-2*n);f0000=x.*(sin(f00*2*pi*n)+0.5*sin(f00*4*pi*n));soundsc(f0000);k=2.^(1/12);f00=220.*(k.^8);n=0:1/8000:0.3;x=exp(-2*n);f0000=x.*(sin(f00*2*pi*n)+0.5*sin(f00*4*pi*n));soundsc(f0000);k=2.^(1/12);f00=220.*(k.^8);n=0:1/8000:0.3;x=exp(-2*n);f0000=x.*(sin(f00*2*pi*n)+0.5*sin(f00*4*pi*n));soundsc(f0000);k=2.^(1/12);f00=220.*(k.^7);n=0:1/8000:0.3;x=exp(-2*n);f0000=x.*(sin(f00*2*pi*n)+0.5*sin(f00*4*pi*n));soundsc(f0000);k=2.^(1/12);f00=220.*(k.^7);n=0:1/8000:0.3;x=exp(-2*n);f0000=x.*(sin(f00*2*pi*n)+0.5*sin(f00*4*pi*n));soundsc(f0000);k=2.^(1/12);f00=220.*(k.^5);n=0:1/8000:1;x=exp(-2*n);f0000=x.*(sin(f00*2*pi*n)+0.5*sin(f00*4*pi*n));soundsc(f0000);7.2乐音基本知识声音是由物体振动(如声带琴弦等)产生的波,人类能听到的声音频率范围集中在10-20kHZ,低于该范围的声波称次声波,高于该范围的称为超声波。声音的强弱由振幅决定人耳听力范围为0-120dB左右。声音的频率和振幅会随着时间的改变而改变,并最终趋于静止,一般把声音的发展过程分为四个阶段,分别为触发,衰减,保持和消失,这四个阶段称为“包络”,包络时间就是一个声音的长短。音乐是乐音随时间流动而形成的艺术。从信号系统的角度看,音乐就是周期信号频率随着时间变化的一种表述,乐谱上的每个音符表达了此时此刻规定出现的信号频率和持续时间。[1]音乐曲调由音阶组成,音阶由音组成。不同的音有不同的振动频率,声音振动的频率决定了的音符的音高(pitch)。人们选取一定频率的音符来形成音乐体系所需要的音高。不同音高的乐音,用CDEFGAB表示的,这七个拉丁字母就是乐音的音名(PitchName)。音名对应固定的基波信号频率,如每秒振动440次的声音是目前国际通用的标准音A。物体振动发音往往包含复杂的频谱结构,如小提琴,A弦振动时,除了产生主要的基音频率(440HZ)还产生基音的1/2,1/3,1/4频率的泛音。如果过一个物体振动所发出的泛音为基音的整数倍,这个音具有清晰可辨的音高,而噪音通常不具备该条件。我们把这些按顺序排列的泛音称为泛音列,由于不同物体有不同特征的泛音列,这些泛音列的排列也就构成了声音的特性:音质。因此,乐音的基本特征可以用基波频率,谐波频率和包络波形三方面描述。7.2.1乐音的基波十二平均律(十二等程律)是将8度的音程(2倍频程)按频率等比率地分成十二等分,每一等份称为一个半音即小二度。一个大二度(即全音)则是两等份。半音是十二平均律组织中最小的音高距离。升高半音用“#”符号表示,降低半音用“b”符号表示。十二平均律在交响乐队和键盘乐器中得到广泛使用,现在的钢琴即是根据十二平均律来定音的。如:小字组a(对应钢琴键是37)的频率值小字1组a1(对应钢琴键是49A)的频率值从小字组到小字一组之间共12键,7个白键,5个黑键,按规定每相邻半音的频率比值为12√2=1.059463,根据这规定,就可以得出钢琴上每一个琴键音的频率。用CDEFGAG来表示不同的音名,一次唱成do,re,mi,sol,la,si(简谱:1234567)又称唱名(syllablenames)。每个唱名并未固定基波频率,当指定乐曲的音调时才知道此时对应的音名,亦即确定了对应的频率值。例如,若指定乐曲为C调,此时唱名与音名的对应关系如下图所示:可见,1音对应频率261.63Hz。还可以看出,34和7i唱名之间对应半音,其余唱名之间对应全音。如果改为F调,唱名和音名的对应关系如下图所示其中,它的1对应F,频率值为349.23Hz,为了保持34之间的半音规律,4对应bB。7.2.2乐音的谐波乐音谐波(泛音)的作用是改变乐音的音色。无论是钢琴的弦

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论