使用matlab进行简单音乐合成.docxVIP

  • 15
  • 0
  • 约1.05万字
  • 约 12页
  • 2024-01-03 发布于上海
  • 举报

信号与系统

—综合实验之音乐合成

请根据《东方红》片断的简谱和“十二平均律”计算出该片断中各个乐音的频率,在MATLAB中生成幅度为1、抽样频率为8kHz的正弦信号表示这些乐音。请用sound函数播放每个乐音,听一听音调是否正确。最后用这一系列乐音信号拼出《东方红》片断,注意控制每个乐音持续的时间要符合节拍,用sound播放你合成的音乐,听起来感觉如何?

代码如下:

f=8000;t2=[0:1/f:1];

t4=[0:1/f:0.5];

t8=[0:1/f:0.25];omg5=523.35;omg6=587.33;

omg2=392;omg1=349.23;

omg6l=293.66;m1=sin(2*pi*omg5*t4);m2=sin(2*pi*omg5*t8);m3=sin(2*pi*omg6*t8);m4=sin(2*pi*omg2*t2);m6=sin(2*pi*omg1*t4);m7=sin(2*pi*omg1*t8);m8=sin(2*pi*omg6l*t8);m9=sin(2*pi*omg2*t2);

m=[m1m2m3m4m6m7m8m9];sound(m);

听的时候发现在相邻乐音之间有杂音,这是由于相位不连续造成的。

你一定注意到(1)的乐曲中相邻乐音之间有“啪”的杂声,这是由于相位不连续产生了高频分量。这种噪声严重影响合成音乐的质量,丧失真实感。为了消除它,我们可以用图1.5所示包络修正每个乐音,以保证在乐音的邻接处信号幅度为零。此外建议用指数衰减的包络来表示。

我采用的是指数衰减的包络。代码如下:

f=8000;t2=[0:1/f:1];

t4=[0:1/f:0.5];

t8=[0:1/f:0.25];omg5=523.35;omg6=587.33;

omg2=392;omg1=349.23;

omg6l=293.66;

m1=exp(-2*t4).*sin(2*pi*omg5*t4);m2=exp(-4*t8).*sin(2*pi*omg5*t8);m3=exp(-4*t8).*sin(2*pi*omg6*t8);m4=exp(-1*t2).*sin(2*pi*omg2*t2);m6=exp(-2*t4).*sin(2*pi*omg1*t4);m7=exp(-4*t8).*sin(2*pi*omg1*t8);m8=exp(-4*t8).*sin(2*pi*omg6l*t8);m9=exp(-1*t2).*sin(2*pi*omg2*t2);m=[m1m2m3m4m6m7m8m9];sound(m);

第一次我采用的指数衰减没有时间前面的系数,即每个都只乘exp(t),没有系数;

后来根据不同节拍,更改了不同的衰减系数,这样声音听起来感觉更加圆润。

请用最简单的方法将(2)中的音乐分别升高和降低一个八度。(提示:音乐播放的时间可以变化)再难一些,请用resample函数(也可以用interp和decimate函数)将上述音乐升高半个音阶。(提示:视计算复杂度,不必特别精确)

答:最简单的方法是直接更改抽样频率f。将f从8K改为4K,则升高一个八度,并

且播放速度增快了一倍;将f从8k改为16k,则降低一个八度,速度也变慢了一倍。升高半个音阶,只须在(2)代码最后加一句resample(m,1000,1059)即可。

f=8000;t2=[0:1/f:1];

t4=[0:1/f:0.5];

t8=[0:1/f:0.25];omg5=523.35;omg6=587.33;

omg2=392;omg1=349.23;

改%为4000或者16000

omg6l=293.66;

m1=exp(-2*t4).*sin(2*pi*omg5*t4);m2=exp(-4*t8).*sin(2*pi*omg5*t8);m3=exp(-4*t8).*sin(2*pi*omg6*t8);m4=exp(-1*t2).*sin(2*pi*omg2*t2);m6=exp(-2*t4).*sin(2*pi*omg1*t4);m7=exp(-4*t8).*sin(2*pi*omg1*t8);m8=exp(-4*t8).*sin(2*pi*omg6l*t8);m9=exp(-1*t2).*sin(2*pi*omg2*t2);m=[m1m2m3m4m6m7m8m9];resample(m,1000,1059);

sound(m);

试着在(2)的音乐中增加一些谐波分量,听一听音乐是否更有“厚度”了?注意谐波分量的能量要小,否则掩盖住基音反而听不清音调了。(如果选择基波幅度为1,二

文档评论(0)

1亿VIP精品文档

相关文档