至诚matlab实验报告.docx

上传人:b****3 文档编号:3091315 上传时间:2022-11-17 格式:DOCX 页数:15 大小:194.19KB
下载 相关 举报
至诚matlab实验报告.docx_第1页
第1页 / 共15页
至诚matlab实验报告.docx_第2页
第2页 / 共15页
至诚matlab实验报告.docx_第3页
第3页 / 共15页
至诚matlab实验报告.docx_第4页
第4页 / 共15页
至诚matlab实验报告.docx_第5页
第5页 / 共15页
点击查看更多>>
下载资源
资源描述

至诚matlab实验报告.docx

《至诚matlab实验报告.docx》由会员分享,可在线阅读,更多相关《至诚matlab实验报告.docx(15页珍藏版)》请在冰豆网上搜索。

至诚matlab实验报告.docx

至诚matlab实验报告

至诚学院

 

《MATLAB实践》

课程设计

 

学生姓名:

学号:

专业班级:

指导教师:

二○一二年四月十四日

 

目录

 

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

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

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

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

5.心得体会…………………………………………………14

6.参考书目…………………………………………………15

 

1、设计目的

(1)通过MATLAB实践设计的训练,提高学生对已学相关专业知识的掌握和应用水平

(2)培养学生将已学课程基础理论与实践环节实际相结合。

(3)运用MATLAB实现MATLAB的GUI程序设计。

(4)培养学生合理安排实现设计的基本程序流程,利用强大的仿真功能与丰富的工具箱来制作、调试、评价自己设计的作品。

(5)培养学生的工程实践能力,增强学生程序设计能力和解决实际问题的能力。

提高学生实践动手能力,为日后参加工作奠定一定的实践基础。

2、题目分析

学习MATLABGUI程序设计,设计和实现一个音乐键盘仿真系统。

要求:

按照软件工程方法,根据需求进行程序的功能分析和界面设计,给出设计详细说明。

然后按照自己拟定的功能要求进行程序设计和调试。

以下几点是程序的功能,供参考。

1)设计音乐键盘GUI界面,实现单音键盘的发声。

2)实现键盘的双音多频,即每个键盘对应低音频组的一个频率和高音频组的一个频率,实现按键的发出双音。

3)能改变音乐包络形式,实现音型的改变。

4)能够演奏一段音乐。

 

3、总体设计

4、具体设计

4.1GUI界面设计

(1)Pushbutton36个:

钢琴键盘的仿真设置;

Pushbutton1个:

音区包络复位。

(2)Axes17个:

背景图

(3)EditText1个:

标题

(4)Pop-upMenu1个:

音乐播放区

(5)MenuEditor:

功能模块的选择

设计界面如下:

4.2钢琴键盘

原理:

从小字组到小字一组之间共12键,7个白键,5个黑键,按规定每相邻半音的频率比值为12√2=1.059463,根据这规定,就可以得出钢琴上每一个琴键音的频率。

如与a1右边相邻#a1的频率是440×1.059463=466.16372Hz;再往上,b1的频率是493.088321Hz;c2的频率是523.25099......同理,与a1左边相邻的#g1的频率是440÷1.059463=415.030473Hz。

用CDEFGAG来表示不同的音名,一次唱成do,re,mi,sol,la,si(简谱:

1234567)又称唱名(syllablenames)。

每个唱名并未固定基波频率,当指定乐曲的音调时才知道此时对应的音名,亦即确定了对应的频率值。

使用组建Pushbutton,并且运用其回调函数Callback。

函数代码如下:

k=2.^(1/12);

t00=220.*(k.^0);

n=0:

1/8000:

0.3;

globala0b0c0

o=isempty(a0);

p=isempty(b0);

if(o==1||p==1)

msgbox('请选择音区、包络','oh,MyGod!

','warn')

else

switchb0

case1

x=exp(-2*n);

case2

x=sawtooth(1*pi*n);

otherwise

x=square(1*pi*n);

end

end

if(c0==1)

t0000=x.*sin(t00*2*pi*n);

else

t0000=x.*(sin(t00*2*pi*n)+0.5*sin(t00*4*pi*n)+0.3*sin(t00*6*pi*n));

end

soundsc(t0000)

根据原理回调每个键的程序。

4.3选音区

使用全局变量定义a0,设置在菜单中,根据不同的值设置低音,中音,高音。

functionUntitled_5_Callback(hObject,eventdata,handles)

%hObjecthandletoUntitled_5(seeGCBO)

%eventdatareserved-tobedefinedinafutureversionofMATLAB

%handlesstructurewithhandlesanduserdata(seeGUIDATA)

globala0

a0=50;(低音)

……

globala0

a0=110;(中音)

……

globala0

a0=440;(高音)

菜单中选择如下:

4.4包络选择区

使用全局变量定义b0,设置在菜单中,根据不同的值设置指数包络、三角包络、方波包络。

functionUntitled_9_Callback(hObject,eventdata,handles)

%hObjecthandletoUntitled_9(seeGCBO)

%eventdatareserved-tobedefinedinafutureversionofMATLAB

%handlesstructurewithhandlesanduserdata(seeGUIDATA)

globalb0

b0=1;(指数包络)

……

globalb0

b0=2;(三角包络)

……

globalb0

b0=3;(方波包络)

菜单中选择如下:

当取得b0的之后,进入switch循环判断选择哪个包络。

switchb0

case1

x=exp(-2*t);

case2

x=sawtooth(1*pi*t);

case3

x=square(1*pi*t);

end

4.5音频选择区

使用全局变量定义c0,设置在菜单中,根据不同的值设置单音单频和双音多频。

functionUntitled_13_Callback(hObject,eventdata,handles)

%hObjecthandletoUntitled_13(seeGCBO)

%eventdatareserved-tobedefinedinafutureversionofMATLAB

%handlesstructurewithhandlesanduserdata(seeGUIDATA)

globalc0

c0=1;(单音单频)

……

globalc0

c0=2;(双音多频)

菜单中选择如下:

4.6音乐播放区

利用Pop-upMenu回调函数,播放一闪一闪亮晶晶

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

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

当前位置:首页 > PPT模板 > 动物植物

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

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