function y=note(n,delay,Fs,wavform)
t=linspace(0,delay,round(Fs*delay));
if n==1 f=;end
if n== f=;end
if n==2 f=;end
if n== f=;end
if n==3 f=;end
if n==4 f=;end
if n== f=;end
if n==5 f=392;end
if n== f=;end
if n==6 f=440;end
if n== f=;end
if n==7 f=;end
if n==11 f=;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 6 11 6 5 1 3 2];
n(2,:)=[ 3 3 1 1 3];
ys=0;
for k=1:length(n(1,:));
y=note(n(1,k),*n(2,k),Fs,3);
t=linspace(0,*n(2,k),length(y));
envelope=(t+).*exp(-3*(t+)).*cos(2*t);
y=y.*envelope;
ys=cat(2,ys,y);
end
soundsc(ys,Fs);
音乐合成matlab程序代码 来自淘豆网www.taodocs.com转载请标明出处.