% Prueba para estudiar el umbral de decision

% OBJETIVO: estudiar la probabilidad de falsa alarma en funcion del umbral
% de decision que tomemos.

% Fecha de creacion: 14 de Enero de 2006

clear

audio=wavread('Anuncios\Procesado\45_11_01_8000_16');
audio=audio(1:length(audio)*3/4);

% Sobre el trozo de audio, escogemos fingerprints que no se solapen entre
% si, es decir, fingerprints independientes unos de otros. Para ello,
% escogemos trozos de 3 segundos al azar y eliminamos 6 segundos alrededor del
% trozo escogido para mantener la independencia entre fingerprints

Fs=8000;
trozo=24000;    % 24000 muestras correspondientes a 3 segundos
elimina=6*Fs/2;

for k=1:450
    
    h=round((length(audio)-trozo)*rand(1));         %valor escogido al azar para tomar un fingerprint al azar
    fing=fingerprint(audio(h:h+trozo-1,1));
    finger(k,:)=reshape(fing',1,229*32);            %colocamos en forma de fila los bits correspondientes a los 
                                                    %fingerprints de 3 segundos de audio
    if h>=trozo
        audio=[audio(1:h-elimina,1);audio(h+trozo+elimina+1:length(audio),1)];
    else
        audio=[audio(1:h,1);audio(h+trozo+elimina+1:length(audio),1)];
    end
end


% Comparamos cada fingerprints de cada 3 segundos de audio con el resto y
% contabilizamos el numero de bits iguales.
n=zeros(1,229*32);

%for t=1:length(finger)-1
%    for q=t+1:length(finger)
for t=1:min(size(finger))-1
    for q=t+1:min(size(finger))   
        dist=sum(abs(finger(t,:)-finger(q,:)));
        n(1,dist)=n(1,dist)+1;        
    end
end

plot((1:229*32)/229/32,n/93961,'yx');


% Pintamos encima la PDF de una distribucion normal de media 0.5 y
% desviacion tipica 0.0148
hold on; 
plot_dist_normal(0.5,0.0157);

