- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
重庆大学通信工程学院信号与系统课程设计
《信号与系统》课题设计
——音乐合成的Matlab实现
学 生:
学 号指导教师:印勇
专 业:11级电子信息实验班
重庆大学通信工程学院
二O一三年06月
摘要:
本文共有三大部分:第一部分,简单的音乐合成;第二部分,用傅里叶变换分析音乐;第三部分,基于傅里叶级数的音乐合成。由潜入深,一步一步分析了用MATLAB进行音乐合成的过程。通过本实验达到了加深对傅里叶级数和傅里叶分析的理解,熟悉对MATLAB基本使用的目标。
第一部分 简单的合成音乐
1.1 合成《茉莉花》
根据《茉莉花》第一小节的简谱和十二平均律计算出该小节每个乐音的频率,在MATLAB中生成幅度为1,抽样频率为8kHz的正弦信号表示这些乐音,用sound播放合成的音乐
由图可知《茉莉花》的曲调定为F,即1=F,对应的频率为349.23Hz,据此可以计算出其他乐音的频率,例如5对应的频率为,一次类推计算出第一小节各乐音对应的频率为:
乐音 3 3 5 6 1 1 6 6 频率 440 440 523.88 587.33 349.23 349.23 587.33 587.33
在确定了各乐音的频率之后需要确定每个乐音的持续时间。每小节有两拍,一拍的时间是0.5s,因此各乐音的持续时间为:
乐音 3 3 5 6 1 1 6 6 时间 0.5 0.25 0.25 0.25 0.25 0.25 0.25 1
而在MATLAB中表示乐音所用的抽样频率为fs=8000Hz,也就是所1s钟内有8000个点,抽样点数的多少就可表示出每个乐音的持续时间的长短。用一个行向量来存储这段音乐对应的抽样点,在用sound函数播放即可。
图1-1未加包络的图像
Matlab中运行Prjoct1to1.m,播放出了《茉莉花》的第一段,但是可以听出效果很不好,只能听出具有《茉莉花》的调子而已。
1.2 除噪音,加包络
在1.1中的结果中,你一定听到乐曲相邻乐音之间有“啪”的杂声,这是由于相位不连续产生了高频分量。这种噪声严重影响合成音乐的质量,丧失真实感。为了消除它,下面通过加包络来消噪音。
最简单的包络为指数衰减。最简单的指数衰减是对每个音乘以因子,在实验中首先加的是的衰减,这种衰减方法使用的是相同速度的衰减,但是发现噪音并没有完全消除,播放的音乐效果不是很好,感觉音乐起伏性不强。于是采用不同速度的衰减,根据乐音持续时间的长短来确定衰减的快慢,乐音持续时间越长,衰减的越慢,持续时间越短,衰减的越快。在1.1程序的基础上加上包络,project1to2to2exp.m
播放后可以听出噪音已经消除,同时因为不同时长的乐音衰减的快慢不一样,音乐听起来更有起伏感,下图是加包络后的wave图像。
图1-2 加指数包络之后的图像
更科学的包络如下图所示,每个乐音都经过冲激、衰减、持续、消失四个阶段。
由上图可以看出这个包络是四段直线段构成的,因此只要确定了每段线段的端点,即可用端点数据写出直线方程,因为直线方程可以用通式写出(我用的是斜截式),因此这段包络可以用简单的循环来完成。例如认为包络线上的数据如下图所示:
据此在MATLAB中编写如下程序:
project1to2to1linear.m
运行得到的图像为:
图1-2-2 加直线包络无重叠之后的图像
下图是两个乐音交接处的局部放大图,可以看到前一个乐音一直衰减到0,后一个乐音从0开始增加,因此消除了噪音。
若不需要每个音都衰减到0,例如只需衰减到持续阶段幅值的15%,对程序做简单的修改即可,将T=[0 1.5 1 1 0]改为T=[0.15 1.5 1 1 0.2]运行得到的结果为:
图1-2-3 加直线包络无重叠之后的图像
由图可见,每个乐音都是衰减到一较小值而不是0,也能消除噪音,同时音乐听起来更加连续。
1.3 改变程序,实现1.2中的音乐升高和降低一个八度
升高一个八度即每个乐音的频率都提高一倍,变为原来的2被;降低一个八度即每个乐音的频率都减小一倍,变为原来的1/2。因此最简单的办法是将存储乐音频率的向量每个元素改变为2或1/2倍。
即将程序中的f=[ 440 440 523.25 587.33 698.46 698.46 587.23 523.25 523.25 587.33 523.25...];改为f=[ 440 440 523.25 587.33 698.46 698.46 587.23 523.25 523.25 587.33 523.25...]*2;或f=[ 440 440 523.25 587.33 698.46 698.46 587.23 523.25 523.25 587.33 523.25...]/2;
(1.06)倍,可以利用resamlpe
文档评论(0)