 
                                音乐合成综合实验实验报告.docx
11页音乐合成综合报告电信 08-10804020102张伟、实验名称:音乐合成综合实验二、 实验目的:应用《信号与系统——MATLAB综合实验》(高 等教育出版社)第一章中所讲的MATLAB编程技术,在电子 音乐合成领域做一些练习通过本实验,熟练运用 MATLAB 基本指令,以及加强对傅里叶级数、变换的理解三、 实验设备仪器及材料:《信号与系统一一MATLAB综合实 验》(高等教育出版社)、搭载windows xp操作系统的pc — 台、MATLAB 7.0四、 试验方法及步骤(根据《信号与系统一一MATLAB综合实 验》第六章第二节要求所作)6.2.1简单的合成音乐 (1)请根据《东方红》片断的简谱和“十二平均律”计算出 该片断中各个乐音的频率,在MATLAB中生成幅度为1、抽 样频率为8kHz的正弦信号表示这些乐音请用sound函数 播放每个乐音,听一听音调是否正确最后用这一系列乐音 信号拼出《东方红》片断,注意控制每个乐音持续的时间要 符合节拍,用sound播放你合成的音乐,听起来感觉如何? 音调正确根据图6.1和图6.2,得出相应频率:“5”——“C”:523.25Hz“6”——“D”:587.33Hz“1”——“F”:349.23Hz“2”——“G”:392Hz“6 (低音)”频率是“6”的一半:93.66Hz用所给正弦信号生成各个乐音,拼出《东方红》片段,乐感不强,听 起来感觉不出好坏,但通过与后面修改的所比较,还是能听出有区别 源代码:f=8000;t=[0:1/f:4-1/f];t1=t(1:0.5*f);t2=t(0.5*f+1:0.75*f);t3=t(0.75*f+1:1*f);t4=t(1*f+1:2*f);t5=t(2*f+1:2.5*f);t6=t(2.5*f+1:2.75*f);t7=t(2.75*f+1:3*f);t8=t(3*f+1:4*f);voiceice1=sin(2*pi*523.25*t1);voiceice2=sin(2*pi*523.25*t2);voiceice3=sin(2*pi*587.33*t3);voiceice4=sin(2*pi*392*t4);voiceice5=sin(2*pi*349.23*t5);voiceice6=sin(2*pi*349.23*t6);voiceice7=sin(2*pi*293.66*t7);voiceice8=sin(2*pi*392*t8);• • r • • zi • • r ・・r ・・l • • l •voiceice=[voiceice1,voiceice2,voiceice3,voiceice4,voiceice5,voiceice6,voiceice7,voiceice8];sound(voiceice);2)你一定注意到 (1)的乐曲中相邻乐音之间有“啪”的杂声,这 是由于相位不连续产生了高频分量。
这种噪声严重影响合成音乐的质 量,丧失真实感为了消除它,我们可以用图 6.5所示包络修正每 个乐音,以保证在乐音的邻接处信号幅度为零此外建议用指数衰减 的包络来表示我采用指数衰减来处理此问题给每个乐音加一个指数衰减的包络: 保持每个语音的第一个采样点的值不变,最后一个采样点的值衰减至 原来的l/e2,处理后有效使“啪啪”声音变小源代码:f=8000;t=[0:1/f:4-1/f];t1=t(1:0.5*f); t2=t(0.5*f+1:0.75*f);t3=t(0.75*f+1:1*f);t4=t(1*f+1:2*f);t5=t(2*f+1:2.5*f);t6=t(2.5*f+1:2.75*f);t7=t(2.75*f+1:3*f);t8=t(3*f+1:4*f);voice1=exp(-2*t1).*sin(2*pi*523.25*t1);voice2=exp(4*(0.5-t2)).*sin(2*pi*523.25*t2);voice3=exp(4*(0.75-t3)).*sin(2*pi*587.33*t3);voice4=exp(1*(1-t4)).*sin(2*pi*392*t4);voice5=exp(2*(2-t5)).*sin(2*pi*349.23*t5);voice6=exp(4*(2.5-t6)).*sin(2*pi*349.23*t6);voice7=exp(4*(2.75-t7)).*sin(2*pi*293.66*t7);voice8=exp(1*(3-t8)).*sin(2*pi*392*t8);voice=[voice1,voice2,voice3,voice4,voice5,voice6,voice7,voice8];sound(voice);(3)请用最简单的方法将 (2)中的音乐分别升高和降低一个八度。
提示:音乐播放的时间可以变化)再难一些,请用resample函数 (也可以用interp和decimate函数)将上述音乐升高半个音阶间隔八度的音的频率是2倍关系,在合成声音时,在正弦信号内添加系数改变其频率,这样可到升高和降低八度的音乐升高半个音阶: 用resample函数本采样频率源代码:升高八度f=8000;t=[0:1/f:4-1/f];t1=t(1:0.5*f);t2=t(0.5*f+1:0.75*f);t3=t(0.75*f+1:1*f);t4=t(1*f+1:2*f);t5=t(2*f+1:2.5*f);t6=t(2.5*f+1:2.75*f);t7=t(2.75*f+1:3*f);t8=t(3*f+1:4*f);voiceice1=exp(-4*t1).*sin(4*pi*523.25*t1);voiceice2=exp(8*(0.5-t2)).*sin(4*pi*523.25*t2);voiceice3=exp(8*(0.75-t3)).*sin(4*pi*587.33*t3); voiceice4=exp(2*(1-t4)).*sin(4*pi*392*t4); voiceice5=exp(4*(2-t5)).*sin(4*pi*349.23*t5); voiceice6=exp(8*(2.5-t6)).*sin(4*pi*349.23*t6);voiceice7=exp(8*(2.75-t7)).*sin(4*pi*293.66*t7);voiceice8=exp(2*(3-t8)).*sin(4*pi*392*t8);• • r • • • • r ・・r ・・l • • l •voiceice=[voiceice1,voiceice2,voiceice3,voiceice4,voiceice5,voiceice6,voi ceice7,voiceice8];sound(voiceice);降低八度f=8000;t=[0:1/f:4-1/f];t1=t(1:0.5*f);t2=t(0.5*f+1:0.75*f);t3=t(0.75*f+1:1*f);t4=t(1*f+1:2*f);t5=t(2*f+1:2.5*f);t6=t(2.5*f+1:2.75*f);t7=t(2.75*f+1:3*f);t8=t(3*f+1:4*f);voiceice1=exp(-4*t1).*sin(pi*523.25*t1);voiceice2=exp(8*(0.5-t2)).*sin(pi*523.25*t2);voiceice3=exp(8*(0.75-t3)).*sin(pi*587.33*t3); voiceice4=exp(2*(1-t4)).*sin(pi*392*t4); voiceice5=exp(4*(2-t5)).*sin(pi*349.23*t5); voiceice6=exp(8*(2.5-t6)).*sin(pi*349.23*t6);voiceice7=exp(8*(2.75-t7)).*sin(pi*293.66*t7);voiceice8=exp(2*(3-t8)).*sin(pi*392*t8);• • r • • zi • • r ・・r ・・l • • l •voiceice=[voiceice1,voiceice2,voiceice3,voiceice4,voiceice5,voiceice6,voi ceice7,voiceice8];sound(voiceice);4)试着在(2)的音乐中增加一些谐波分量,听一听音乐是否更有厚度”了?注意谐波分量的能量要小,否则掩盖住基音反而听不清 音调了。
如果选择基波幅度为 1 ,二次谐波幅度0.2,三次谐波幅 度0.3,听起来像不像风琴?) 没有听过单独听过风琴,所以不太清楚像不像风琴f=8000;t=[0:1/f:4-1/f];t1=t(1:0.5*f);t2=t(0.5*f+1:0.75*f);t3=t(0.75*f+1:1*f);t4=t(1*f+1:2*f);t5=t(2*f+1:2.5*f); t6=t(2.5*f+1:2.75*f);t7=t(2.75*f+1:3*f);t8=t(3*f+1:4*f);p1=523.25;p2=523.25;p3=587.33;p4=392;p5=349.23;p6=349.23;p7=293.66;p8=392;voiceice1=exp(-4*t1).*(sin(2*pi*p1*t1)+0.2*sin(4*pi*p1*t1)+0.3*sin(6* pi*p1*t1));voiceice2=exp(8*(0.5-t2)).*(sin(2*pi*p2*t2)+0.2*sin(4*pi*p2*t2)+0.3*si n(6*pi*p2*t2));voiceice3=exp(8*(0.75-t3)).*(sin(2*pi*p3*t3)+0.2*sin(4*pi*p3*t3)+0.3*s in(6*pi*p3*t3));voiceice4=exp(2*(1-t4)).*(sin(2*pi*p4*t4)+0.2*sin(4*pi*p4*t4)+0.3*sin( 6*pi*p4*t4));voiceice5=exp(4*(2-t5)).*(sin(2*pi*p5*t5)+0.2*sin(4*pi*p5*t5)+0.3*sin( 6*pi*p5*t5));voiceice6=exp(8*(2.5-t6)).*(sin(2*pi*p6*t6)+0.2*sin(4*pi*p6*t6)+0.3*si n(6*pi*p6*t6));voiceice7=exp(8*(2.75-t7)).*(sin(2*pi*p7*t7)+0.2*sin(4*pi*p7*t7)+0.3*s in(6*pi*p7*t7));voiceice8=exp(2*(3-t8)).*(sin(2*pi*p8*t8)+0.2*sin(4*pi*p8*t8)+0.3*sin( 6*pi*p8*t8));• • r • • zi • • r ・・r ・・l • • l •voiceice=[voiceice1,voiceice2,voiceice3,voiceice4,voiceice5,voiceice6,voi ceice7,voiceice8];sound(voiceice);(5)自选其它音乐合成,例如贝多芬第五交响乐的开头两小节。





