% Informatica Applicata al suono - Modulo 1
% Prof. Mario Malcangi
% Gennerazione tono puro come da modello matematico
% Lezione del 4.3.2019

clear       %azzera il workspace

Fs=8000;    % Frequenza di campionamento [Hz]
Ts=1/8000;  % periodo di campionamento[s]
D=3*Fs;     % durata del segnale 3[s]
A=32767;    % ampiezza massima a 16 bit - 0 [dB)
F0=100;     % frequenza fondamentale 100 [Hz}
% simulazione del processo di campionamento e quantizzazione
% applicato al modello matematico del tono puro A(t)=Asin(2*Pi*f0*t)
% t=nTs n:indice di campionamento
% X(n): sequenza campionata e quantizzata a 16 bit

for n=0:D
x(n+1)=A*sin(2*pi*F0*(n)*Ts);
end

plot(x(1:80)); % Visualizza un periodo: T=1/F0=0.01 s = 80 campioni
player = audioplayer(x,Fs,16); 
play(player); % riproduzione acustica della sequenza x campionata (DAC)

%memorizzazione della sequenza campionata su file PCM a 16 bit
%il file PCM è senza header (formato grezzo .raw)
fid=fopen('tone100.raw', 'w');
for(n=1:D)
    fwrite(fid,x(n),'integer*2');
end
fclose(fid);

