实验指导书(音乐的分析与合成)

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

《信号与系统实验》指导书(补充材料)音乐的分析与合成李敏张维维大连民族学院机电信息工程学院2009年12月-1-1.实验目的(1)掌握傅里叶变换的物理意义,深刻理解傅里叶变换的内涵;(2)了解乐理和电子音乐的基本知识;(3)熟练运用MATLAB的基本指令及音乐处理指令;(4)学习利用虚拟仿真技术分析音乐信号;(5)加深学生对信号分析工程应用的理解,拓展学生在信号分析领域的应用能力。2.实验内容利用MATLAB编程对一段短时音乐进行分析与合成。首先,找出其每个音调的基波频率及其谐波成份,从而确定该音乐的频带宽度;其次,根据分析的结果,合成出该段音乐;最后,将合成音乐与真实音乐进行比较,做误差分析。3.实验原理(1)乐理知识介绍乐音的基本特征可以用基波频率、谐波频谱和包络波形三个方面来描述。①基波频率每个指定音调的唱名都有它对应固定的基波信号频率。图1所示为钢琴键盘结构,并注明了每个琴键对应的音名和基波频率值。图1钢琴键盘和相应频率所谓唱名是指平日读乐谱唱出的1(do)、2(re)、3(mi)、…。每个唱名并未固定基波频率。当指定乐曲的音调时才知道此时唱名对应的频率值。如指定的乐曲为C调,图1中的“中央C”即为C调的1,基波频率为261.63Hz,而F调1的基波频率为349.23Hz,5的基-2-波频率为523.25Hz。如下的一系列MATLAB指令完成的是播放C调的1、2、3、4、5、6、7的一段音乐。t=0:1/8000:0.5;do=sin(2*pi*261.63*t);re=sin(2*pi*293.66*t);mi=sin(2*pi*329.63*t);fa=sin(2*pi*349.23*t);so=sin(2*pi*392*t);la=sin(2*pi*440*t);xi=sin(2*pi*493.88*t);y=[do,remi,fa,so,la,xi];sound(y)②谐波频谱在音乐领域中称谐波为“泛音”,由谐波产生的作用称为音色变化。当指定音调之后,仅指定了乐音信号的基波频率,谐波情况并未说明。对于各种乐器如钢琴或单簧管都可以发出某一音调下的唱名,而人的听觉会明显感觉两者不同,这是由于谐波成分有所区别,频谱结构各异。例如单簧管的三次、五次谐波成分很强,其他各种乐器都有自己的谐波分布规律。如果只考虑乐音的基波成分,每个唱名对应不同频率的正弦(余弦)波,如上面的MATLAB指令;当引入谐波分量之后,波形不再是简单的正弦函数。③包络波形除了前述的基波频率和谐波频谱表征了乐音特性之外,对于不同类型的乐器,它们的包络形状也不相同。图2所示为钢琴与管乐的波形,可以看出两者包络的区别。图2钢琴和管乐的信号波形在乐音合成实验中,为简化编程描述,通常把复杂的包络函数用少量直线近似。于是,乐音波形的包络呈拆线,如图3所示。有时为了保证在乐音的邻接处信号幅度为零,也可以用指数衰减的包络来表示,这也是最简单的办法。-3-图3乐音的拆线形包络(2)音乐分析傅里叶变换建立了信号频谱的概念。所谓傅里叶分析即分析信号的频谱(频率构成)、频带宽度等。对音乐信号的分析也不例外。通过前面的介绍可知,要想合成出一段音乐,就要了解该段音乐的基波频率、谐波构成等。因此,就必须采用傅里叶变换这一工具。对于连续时间信号)(tf,其傅里叶变换)(F为:dtetfFtj)()(连续时间傅里叶变换特别适合于对时间连续信号的理论分析(如信号与系统课程中的内容),但是,由于其变换两边的函数)(tf和)(F都是连续函数,不适合于计算机处理。虽然MATLAB语言提供了符号函数fourier来实现傅里叶变换,但该函数需要信号的解析表达式。而工程应用中经常需要对抽样数据进行傅里叶分析,这种情况下往往无法得到信号的解析表达式,因而必须采用傅里叶变换的数值计算方法。下面介绍傅里叶变换的数值方法。如果)(tf的主要取值区间为[1t,2t],定义12ttT为区间长度。在该区间内抽样N个点,抽样间隔为NTt,则有:10)(110)(111)()()(NntntjNntntjetntfttetntfF上式可以计算出任意频点的傅里叶变换值,假设)(F的主要取值区间位于[1,2],要计算其间均匀抽样的k个值,则有:10)()(1111)()(NntntkjetntftkF其中,k12为频域抽样间隔。-4-(3)相关的MATLAB函数及其功能为方便使用MATLAB编写程序,在这里介绍几个声音信号分析与处理的MATLAB函数及其功能,如表1所示。表1相关的MATLAB函数及其功能函数功能函数功能wavread读.wav文件resample改变信号的采样率sound将向量转换成声音interp上采样(提高采样率)kron矩阵的张量积(叉乘)decimate下打样(降低采样率)表中各函数的具体调用方法请查询相关的参考资料或在MATLAB命令窗口下使用help命令及相关帮助菜单获得,在此不再详述。(4)注意事项①在对音乐信号进行分析时,要充分考虑所分析的采样数据点数是否为MATLAB软件所能承受。如对音乐信号以8000Hz进行采样,那么在1秒钟的时间范围内,采样的数据点数就有8000个,再对这些数据进行一系列的数学运算,其运行时间很长,此时MATLAB窗口底部的状态条上显示Busy字样,应当使用Ctrl+C迅速中断程序的运行。因此,如果所分析的音乐文件时间达数秒钟,则应将该文件进行时间分割,分成几个小段进行分析,每小段的时间越少,分析速度越快。每小段的时间尽量不超过0.5秒,否则等待的时间太长,造成死机。②在分析音乐时,为防止漏掉基波频率,最好参考该音乐的时域波形,捕捉到每个音的起始时间和持续时间,这样可以减少对音乐的分析时间,以免做无谓的分析。③每个音的起始时间和持续时间在合成音乐的时候也是到至关重要的。因为每个音调都有持续时间,该持续时间就是通常意义上的“拍子”,一拍大约是0.5秒。所以只有了解了每个音的起始时间和持续时间,在音乐合成时才能正确地掌握各基波频率出现的前后顺序及其节拍,以减少失真。④乐音波形包络是描述乐音特性的一个重要因素。已知每个音的起始时间和持续时间,就可以正确地对每个音合理地使用包络,确定每个音包络外形的各个参数。确定参数时,一定要根据时域波形,通过音乐的时域波形可以判断该乐音是否在下一个乐音开始时衰减为零,以减小音乐合成的误差。⑤包络既可用拆线形也可采用指数衰减的方法,不管采用哪一种方法,关键的问题是如何选择衰减系数。采用拆线方法虽然麻烦一些,但拆线的斜率可以根据时域波形来判断;若采用指数衰减方法,如能确定衰减系数,就非常简单。采用指数衰减方法时,衰减系数可根据电容充放电理论,即工程上认为,当3t以后,可认为电路已趋稳定,其中,为RC电路的时间常数,RC。⑥编写程序时,要求程序的可读性要强,要在关键的地方加注释说明。另外,程序不易太长,应尽量编写M函数文件,以便在M程序文件中调用。-5-4.实验任务(1)编制一通用的MATLAB程序,实现对教师提供的某一乐音进行短时分析与合成。具体要求如下:①指出该乐音的基波频率、谐波谱结构,并画出该乐音的频谱图;②在一个图形窗口中比较原乐音与合成乐音的时域波形,指出异同点;③分别播放原乐音和合成乐音,检验合成乐音的效果;④指出合成乐音中出现的误差,并做误差分析。(2)编制一通用的MATLAB程序,实现对教师提供的某一段短时音乐进行分析与合成。具体要求如:①指出该段音乐的基波频率及频带宽度,并画出频谱图;②在一个图形窗口中比较原音乐与合成音乐的时域波形,指出异同点;③分别播放原音乐和合成音乐,检验合成乐音的效果;④指出合成音乐中出现的误差,并做误差分析。5.思考题(1)在合成音乐时,乐音波形包络既可以采用拆线形,也可以采用指数衰减形。针对本实验中给出的音乐,请分别尝试一下哪种波形包络合成出来的音乐更适合。(2)通过本次实验,谈谈对《信号与系统》这门课程或者对“傅里叶变换”这一知识点的理解和认识。-6-参考文献[1]李敏,陈兴文.信号分析与处理的软硬件实现[M].大连:大连海事大学出版,2009.[2]谷源涛等.信号与系统——MATLAB综合实验[M].北京:高等教育出版社,2008.[3]张明照等.应用MATLAB实现信号分析和处理[M].北京:科学出版社,2005.[4]伯晓晨等.MATLAB工具箱应用指南——信息工程篇[M].北京:电子工业出版社,2000.

1 / 8
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功