format compact
Fs = 8000; % Sample everything at 8000 Hz
Fo = 660; % Use 660 Hz as the fundamental freq of each waveform
T_total = 1.2; % Compute a total of 1.2 seconds so the sound can be played
tt = 0:(1/Fs):T_total; % Set up the time axis
% ===== First the cosine =====
y1 = cos(2*pi*Fo*tt);
range = 801:880; % Only plot a part of the signal
subplot('Position',[0.1 0.8 0.8 0.15])
plot(tt(range),y1(range))
xlabel('TIME (sec)')
title(['SINE WAVE at ',num2str(Fo),' Hz'])
sound(y1, Fs)
% ===== Square wave =====
y2 = 0.9*square(2*pi*Fo*tt);
subplot('Position',[0.1 0.55 0.8 0.15])
plot(tt(range),y2(range))
xlabel('TIME (sec)')
title(['SQUARE WAVE at ',num2str(Fo),' Hz'])
sound(y2, Fs)
% ===== Sawtooth =====
y3 = 0.9*sawtooth(2*pi*Fo*tt);
subplot('Position',[0.1 0.30 0.8 0.15])
plot(tt(range),y3(range))
xlabel('TIME (sec)')
title(['SAWTOOTH WAVE at ',num2str(Fo),' Hz'])
sound(y3,Fs)
% ====== Beats =====
Fm = 12;
y4 = sin(2*pi*Fm*tt).*cos(2*pi*Fo*tt);
beatRange = 801:1600;
subplot('Position',[0.1 0.05 0.8 0.15])
plot(tt(beatRange),y4(beatRange))
xlabel('TIME (sec)')
title(['BEATS: Fo = ',num2str(Fo),' Hz, Fm = ', num2str(Fm),' Hz'])
sound(y4,Fs)