Matlab课程设计报告.docx

上传人:b****3 文档编号:1973048 上传时间:2022-10-25 格式:DOCX 页数:16 大小:817.07KB
下载 相关 举报
Matlab课程设计报告.docx_第1页
第1页 / 共16页
Matlab课程设计报告.docx_第2页
第2页 / 共16页
Matlab课程设计报告.docx_第3页
第3页 / 共16页
Matlab课程设计报告.docx_第4页
第4页 / 共16页
Matlab课程设计报告.docx_第5页
第5页 / 共16页
点击查看更多>>
下载资源
资源描述

Matlab课程设计报告.docx

《Matlab课程设计报告.docx》由会员分享,可在线阅读,更多相关《Matlab课程设计报告.docx(16页珍藏版)》请在冰豆网上搜索。

Matlab课程设计报告.docx

Matlab课程设计报告

至诚学院

 

《MATLAB实践》

课程设计

 

学生:

学号:

专业班级:

指导教师:

 

1.设计目的………………………………………………………3

2.题目分析………………………………………………………3

3.总体设计………………………………………………………3

4.具体设计………………………………………………………4

5.小结和心得……………………………………………………7

6.参考文献………………………………………………………8

7.附录………………………………………………………8

 

1、设计目的

运用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,歌曲的添加,这次添加的歌曲通过XX得到小星星的歌谱,然后在通过叠加得到了这首,当然添加其他的也行。

起初,听起来的声音是拉长音,通过更改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=e

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 人文社科 > 法律资料

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1