--- Saving session to:
    ECE481_08-Apr-2003.txt
--- startup.m processed OK ---
; ; ; ; ; ; 
edit fm5
fm5

fm5
type fm5

%function fm4(fc,h,mi)
% FM synthesis demo #5: Cascade FM (Moore p. 332)

fs=40e3;
dur=3;
tt=0:1/fs:dur;

% parameters
fc = 60;	%carrier frequency
fm1 = sqrt(2)*fc;	%modulating frequency
fm2 = pi*fm1;
mi1 = 2;		%modulation index
mi2 = 4;

% amplitude envelope
a=gen4([0 0 -10; 0.01 1 -1; 1 0 0],dur,fs);

% I1 envelope
p6=sqrt(2);
i1=gen4([0 1*p6 1; 0.045 12*p6 -2; 1 0.5*p6 0],dur,fs);

% I2 envelope
p7=pi;
i2=gen4([0 1*p7 1; 0.03 8*p7 -1; 1 1*p7 0],dur,fs);


% output waveform
y = a.*sin(2*pi*fc*tt + i1.*sin(2*pi*fm1*tt + i2.*sin(2*pi*fm2*tt)));

calspec(y,512,fs)
if 0
[b,f,t]=specgram(y,[],fs);
imagesc(t,f/1000,abs(b))
axis('xy')
xlabel('time (s)')
ylabel('frequency (kHz)')
title(sprintf('FM: fc=%dHz, H=%d, I=%d',fc,h,mi))
end

sound(y,fs) 
wavwrite(y,fs,16,'\temp\junk.wav')


exit