音乐合成matlab程序代码

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

function y=note(n,delay,Fs,wavform)

t=linspace(0,delay,round(Fs*delay));

if n==1 f=261.63;end

if n==1.5 f=277.18;end

if n==2 f=293.66;end

if n==2.5 f=311.13;end

if n==3 f=329.63;end

if n==4 f=349.23;end

if n==4.5 f=369.99;end

if n==5 f=392;end

if n==5.5 f=415.30;end

if n==6 f=440;end

if n==6.5 f=466.16;end

if n==7 f=493.88;end

if n==11 f=523.25;end

if wavform==1

y=sin(2*pi*f*t);

elseif wavform==2

y=square(2*pi*f*t);

elseif wavform==3

y=sawtooth(2*pi*f*t);

end

Fs=8192;

n(1,:)=[3 5 6 3 5 2 3 4.5 6 11 6 5 1 3 2];

n(2,:)=[0.5 0.5 3 0.5 0.5 3 0.5 0.5 0.5 1 0.5 0.5 1 0.5 3]; ys=0;

for k=1:length(n(1,:));

y=note(n(1,k),0.7*n(2,k),Fs,3);

t=linspace(0,0.7*n(2,k),length(y));

envelope=(t+0.2).*exp(-3*(t+0.2)).*cos(2*t);

y=y.*envelope;

ys=cat(2,ys,y);

end

soundsc(ys,Fs);

相关文档
最新文档