Matlab音乐合成实验报告.docx

Matlab音乐合成实验报告.docx

ID:49924911

大小:252.67 KB

页数:22页

时间:2020-03-05

Matlab音乐合成实验报告.docx_第1页
Matlab音乐合成实验报告.docx_第2页
Matlab音乐合成实验报告.docx_第3页
Matlab音乐合成实验报告.docx_第4页
Matlab音乐合成实验报告.docx_第5页
资源描述:

《Matlab音乐合成实验报告.docx》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、音乐合成实验目录音乐合成实验1摘要:2第一部分简单的合成音乐21.1合成《东方红》21.2除噪音,加包络31.3改变程序,实现1.2中的音乐升高和降低一个八度91.4在1.2的音乐中加入谐波101.5自选音乐合成——《两只老虎》11第二部分用傅里叶变换分析音乐122.1载入fmt.wav并播放122.2载入文件Guitar.mat,处理原始数据realwave122.3分析wave2proc的基波和谐波142.4自动分析fmt.wav的音调和节拍17第三部分基于傅里叶级数的音乐合成203.1用2.3分析出来的结果重新加谐

2、波203.2通过2.4提取的吉他音调信息弹奏《东方红》20实验收获22摘要:本文共有三大部分:第一部分,简单的音乐合成;第二部分,用傅里叶变换分析音乐;第三部分,基于傅里叶级数的音乐合成。由潜入深,一步一步分析了用MATLAB进行音乐合成的过程。通过本实验达到了加深对傅里叶级数和傅里叶分析的理解,熟悉对MATLAB基本使用的目标。第一部分简单的合成音乐1.1合成《东方红》根据《东方红》第一小节的简谱和十二平均律计算出该小节每个乐音的频率,在MATLAB中生成幅度为1,抽样频率为8kHz的正弦信号表示这些乐音,用sound

3、播放合成的音乐由图可知《东方红》的曲调定为F,即1=F,对应的频率为349.23Hz,据此可以计算出其他乐音的频率,例如5对应的频率为,一次类推计算出第一小节各乐音对应的频率为:乐音55621162频率523.25523.25587.33392349.23349.23293.66392在确定了各乐音的频率之后需要确定每个乐音的持续时间。每小节有两拍,一拍的时间是0.5s,因此各乐音的持续时间为:乐音55621162时间0.50.250.2510.50.250.251而在MATLAB中表示乐音所用的抽样频率为fs=8000

4、Hz,也就是所1s钟内有8000个点,抽样点数的多少就可表示出每个乐音的持续时间的长短。用一个行向量来存储这段音乐对应的抽样点,在用sound函数播放即可。根据以上分析在MATLAB中编写如下程序:sound_1_1.mclear;clc;fs=8000;%抽样频率f=[523.25523.25587.33392349.23349.23293.66392];%各个乐音对应的频率time=fs*[1/2,1/4,1/4,1,1/2,1/4,1/4,1];%各个乐音的抽样点数N=length(time);%这段音乐的总抽样点

5、数east=zeros(1,N);%用east向量来储存抽样点n=1;fornum=1:N%利用循环产生抽样数据,num表示乐音编号t=1/fs:1/fs:time(num)/fs;%产生第num个乐音的抽样点east(n:n+time(num)-1)=sin(2*pi*f(num)*t);%抽样点对应的幅值n=n+time(num);endsound(east,8000);%播放音乐在MATLAB中运行sound_1_1.m,播放出了《东方红》的第一段,但是可以听出效果很不好,只能听出具有《东方红》的调子而已。1.2除

6、噪音,加包络在1.1中听到有“啪”的杂声,下面通过加包络来消噪音。最简单的包络为指数衰减。最简单的指数衰减是对每个音乘以因子,在实验中首先加的是的衰减,这种衰减方法使用的是相同速度的衰减,但是发现噪音并没有完全消除,播放的音乐效果不是很好,感觉音乐起伏性不强。于是采用不同速度的衰减,根据乐音持续时间的长短来确定衰减的快慢,乐音持续时间越长,衰减的越慢,持续时间越短,衰减的越快。在1.1程序的基础上加上包络,编写如下程序:sound_1_21.mclear;clc;fs=8000;%抽样频率f=[523.25523.255

7、87.33392349.23349.23293.66392];%各个乐音对应的频率time=fs*[1/2,1/4,1/4,1,1/2,1/4,1/4,1];%各个乐音的抽样点数N=length(time);%这段音乐的总抽样点数east=zeros(1,N);%用east向量来储存抽样点n=1;fornum=1:N%利用循环产生抽样数据,num表示乐音编号t=1/fs:1/fs:time(num)/fs;%产生第num个乐音的抽样点G=zeros(1,time(num));%G为存储包络数据的向量G(1:time(nu

8、m))=exp(1:(-1/time(num)):1/8000);%产生包络点east(n:n+time(num)-1)=sin(2*pi*f(num)*t).*G(1:time(num));%给第num个乐音加上包络n=n+time(num);endsound(east,8000);%播放plot(east);播放

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。