Matlab课程设计报告.docx

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

Matlab课程设计报告.docx

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

Matlab课程设计报告.docx

Matlab课程设计报告

(9)、()十分()。

又说又笑又高又大又香又甜

1、写自己想说的话,写想像中的事物,写出自己对周围事物的认识和感想。

原(草原)(平原)(高原)(原来)(原因)

走之底:

这、边、远、进、过、道、选、连、送

zh?

ng(长高)lè(快乐)zhī(一只)kòng(有空)

百花齐放百鸟争鸣春风拂面春暖花开五颜六色百花盛开

一(块)稻田一(面)队旗一(场)球赛一(把)铜号

门字框:

问、间、闭

和气语气话语笑话蚂蚁凉快快乐赶快就是成名有名

至诚学院

 

《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=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乐音的谐波

乐音谐波(泛音)的作用是改变乐音的音色。

无论是钢琴的弦和人生的振动,都不是纯净的基音,从基音的泛音开始,纯八度纯五度的各度紧随其后,每个乐器都有各自的谐波分布规律,如单簧管的三次五次谐波成分很强。

我们把按顺序排列起来的泛音,称为泛音列。

不同的物体可以具有不同数量的泛音列,这些泛音列几乎无限的排列组合构成物体的个数音质。

如果只考虑乐音的基波成分,每个音名对应不同频率的正弦/余弦波,当引入谐波后,波形不再是简单的正弦函数,可能成为锯齿波或三角波等。

7.2.3音乐包络

乐音包络是描述乐音特征的一个重要因素,不同类型的乐器演奏的音符,是类似通信系统中的调制,即

形式的信号。

寻找不同乐器演奏不同音符,可以进行较逼真的电子音乐合成。

7.2.4乐音的持续时间

音调的持续时间取决于它是全音符,二分之一音符还是八分之一音符。

很明显,1/4音符的持续时间是1/8音符的两倍。

而每个音符之后的停顿时间相同,在乐谱中,更长的停顿时间要用休止符来表示。

7.2.5音符的重叠

音乐演奏中相邻的音符有时会有重迭,就是当一个音调还没有消失时,另一个已经开始演奏,称“音符的叠接”。

数学表示为:

  ,

是演奏的前后音符。

这样听起来会更连续,较少断音。

叠接时两个信号的幅度差别要大,以保证被区分开来。

多声部音乐中,按一定的音程关系(主要为三度)叠置起来的三个或三个以上的音同时或先后发声成为和弦。

主要包括三和弦(三个音),七和弦(四个音),变和弦 (包含变音)几种类型 。

 

7.3MATLAB乐音模拟

音频操作函数:

通用音频操作函数

audioplayer

创建声音播放对象

audiorecorder

麦克风端口实时声音获取

lin2mu

线形音频转为μ律压扩音频

mu2lin

μ律压扩音频转为线形音频

sound

把向量转化为声音对象播放

soundsc

数据被自动校正幅度和除直流后播放

beep

SPARC工作站声音文件管理

auread

读取.au类型文件

auwrite

写入.au类型文件

wavplay

播放.wav文件

wavread

读取.wav文件

wavrecord

从音频输入接口录音

wavwrite

写入.wav文件

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

当前位置:首页 > 求职职场 > 简历

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

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