% Analisis de la probabilidad de error en deteccion escogiendo los valores % mas optimos de cada uno de los parametros que intervienen en el calculo % de los fingerprints %Fecha de creacion: 4 de Febrero de 2007 N=4960; num_band=17; over_lap=31/32; finf=300; fsup=2000; alpha=0.18; % umbral para considerar deteccion correcta time_detect=12000; % numero de muestras correspondientes al tiempo del trozo de audio que se coge. 24000 se corresponden a 3segundos*8000muestras/segundo fi=fopen('p_4960_17_096875_12000','w'); %abrimos un fichero para almacenar los resultados % Calculo de los fingerprints de los anuncios empleados en la prueba f_22_23_01_8000_8=fingerprint_actualizable(wavread('Anuncios\Procesado\22_23_01_8000_8'),N,over_lap,num_band,finf,fsup); f_22_23_02_8000_8=fingerprint_actualizable(wavread('Anuncios\Procesado\22_23_02_8000_8'),N,over_lap,num_band,finf,fsup); f_22_23_03_8000_8=fingerprint_actualizable(wavread('Anuncios\Procesado\22_23_03_8000_8'),N,over_lap,num_band,finf,fsup); f_22_23_04_8000_8=fingerprint_actualizable(wavread('Anuncios\Procesado\22_23_04_8000_8'),N,over_lap,num_band,finf,fsup); f_01_07_01_8000_8=fingerprint_actualizable(wavread('Anuncios\Procesado\01_07_01_8000_8'),N,over_lap,num_band,finf,fsup); f_08_19_01_8000_8=fingerprint_actualizable(wavread('Anuncios\Procesado\08_19_01_8000_8'),N,over_lap,num_band,finf,fsup); f_09_19_01_8000_8=fingerprint_actualizable(wavread('Anuncios\Procesado\09_19_01_8000_8'),N,over_lap,num_band,finf,fsup); f_10_19_01_8000_8=fingerprint_actualizable(wavread('Anuncios\Procesado\10_19_01_8000_8'),N,over_lap,num_band,finf,fsup); f_11_19_01_8000_8=fingerprint_actualizable(wavread('Anuncios\Procesado\11_19_01_8000_8'),N,over_lap,num_band,finf,fsup); f_12_19_01_8000_8=fingerprint_actualizable(wavread('Anuncios\Procesado\12_19_01_8000_8'),N,over_lap,num_band,finf,fsup); f_13_19_01_8000_8=fingerprint_actualizable(wavread('Anuncios\Procesado\13_19_01_8000_8'),N,over_lap,num_band,finf,fsup); f_14_19_01_8000_8=fingerprint_actualizable(wavread('Anuncios\Procesado\14_19_01_8000_8'),N,over_lap,num_band,finf,fsup); f_17_19_01_8000_8=fingerprint_actualizable(wavread('Anuncios\Procesado\17_19_01_8000_8'),N,over_lap,num_band,finf,fsup); f_18_23_01_8000_8=fingerprint_actualizable(wavread('Anuncios\Procesado\18_23_01_8000_8'),N,over_lap,num_band,finf,fsup); f_20_23_01_8000_8=fingerprint_actualizable(wavread('Anuncios\Procesado\20_23_01_8000_8'),N,over_lap,num_band,finf,fsup); %simulamos como si se cogiera un intervalo de tiempo de una emision de %radio y se analizara si se corresponde con algun anuncio de la base de datos anuncio_detectado=wavread('Anuncios\Procesado\22_23_01_8000_8'); p=1; t=1; s=1; key=1; for repeticion=1:1000 % repeticion para cada valor de N l=round((length(anuncio_detectado)-time_detect)*rand(1)); %valor escogido al azar para tomar un trozo al azar del anuncio leido t1=cputime; finger_detectado=fingerprint_actualizable(anuncio_detectado(l:l+time_detect-1,1),N,over_lap,num_band,finf,fsup); t2=cputime; tiempos(repeticion)=t2-t1; % La primera vez que entramos en el bucle, preparamos una variable, % 'probab', para almacenar las probabilidades de cada anuncio de ser % considerado como detectado if key==1 key=0; [m,n]=size(finger_detectado); num_bits=m*n; %numero de bits que se comparan en la busqueda probab_alarm=zeros(1,m*n); probab_no_alarm=zeros(1,m*n); end j=1; distancia(j)=min(busqueda(finger_detectado,f_22_23_01_8000_8)); if distancia(j)~=0 probab_alarm(1,distancia(j))=probab_alarm(1,distancia(j))+1; end dist_alarm(p,t)=distancia(j); % almacena distancia en deteccion correcta para calculo de probabilidad de alarma t=t+1; j=j+1; distancia(j)=min(busqueda(finger_detectado,f_22_23_02_8000_8)); if distancia(j)~=0 probab_alarm(1,distancia(j))=probab_alarm(1,distancia(j))+1; end dist_alarm(p,t)=distancia(j); t=t+1; j=j+1; distancia(j)=min(busqueda(finger_detectado,f_22_23_03_8000_8)); if distancia(j)~=0 probab_alarm(1,distancia(j))=probab_alarm(1,distancia(j))+1; end dist_alarm(p,t)=distancia(j); t=t+1; j=j+1; distancia(j)=min(busqueda(finger_detectado,f_22_23_04_8000_8)); if distancia(j)~=0 probab_alarm(1,distancia(j))=probab_alarm(1,distancia(j))+1; end dist_alarm(p,t)=distancia(j); t=t+1; j=j+1; distancia(j)=min(busqueda(finger_detectado,f_01_07_01_8000_8)); probab_no_alarm(1,distancia(j))=probab_no_alarm(1,distancia(j))+1; dist_no_alarm(p,s)=distancia(j); % almacena distancia en deteccion correcta para calculo de probabilidad de falsa alarma s=s+1; j=j+1; distancia(j)=min(busqueda(finger_detectado,f_08_19_01_8000_8)); probab_no_alarm(1,distancia(j))=probab_no_alarm(1,distancia(j))+1; dist_no_alarm(p,s)=distancia(j); s=s+1; j=j+1; distancia(j)=min(busqueda(finger_detectado,f_09_19_01_8000_8)); probab_no_alarm(1,distancia(j))=probab_no_alarm(1,distancia(j))+1; dist_no_alarm(p,s)=distancia(j); s=s+1; j=j+1; distancia(j)=min(busqueda(finger_detectado,f_10_19_01_8000_8)); probab_no_alarm(1,distancia(j))=probab_no_alarm(1,distancia(j))+1; dist_no_alarm(p,s)=distancia(j); s=s+1; j=j+1; distancia(j)=min(busqueda(finger_detectado,f_11_19_01_8000_8)); probab_no_alarm(1,distancia(j))=probab_no_alarm(1,distancia(j))+1; dist_no_alarm(p,s)=distancia(j); s=s+1; j=j+1; distancia(j)=min(busqueda(finger_detectado,f_12_19_01_8000_8)); probab_no_alarm(1,distancia(j))=probab_no_alarm(1,distancia(j))+1; dist_no_alarm(p,s)=distancia(j); s=s+1; j=j+1; distancia(j)=min(busqueda(finger_detectado,f_13_19_01_8000_8)); probab_no_alarm(1,distancia(j))=probab_no_alarm(1,distancia(j))+1; dist_no_alarm(p,s)=distancia(j); s=s+1; j=j+1; distancia(j)=min(busqueda(finger_detectado,f_14_19_01_8000_8)); probab_no_alarm(1,distancia(j))=probab_no_alarm(1,distancia(j))+1; dist_no_alarm(p,s)=distancia(j); s=s+1; j=j+1; distancia(j)=min(busqueda(finger_detectado,f_17_19_01_8000_8)); probab_no_alarm(1,distancia(j))=probab_no_alarm(1,distancia(j))+1; dist_no_alarm(p,s)=distancia(j); s=s+1; j=j+1; distancia(j)=min(busqueda(finger_detectado,f_18_23_01_8000_8)); probab_no_alarm(1,distancia(j))=probab_no_alarm(1,distancia(j))+1; dist_no_alarm(p,s)=distancia(j); s=s+1; j=j+1; distancia(j)=min(busqueda(finger_detectado,f_20_23_01_8000_8)); probab_no_alarm(1,distancia(j))=probab_no_alarm(1,distancia(j))+1; dist_no_alarm(p,s)=distancia(j); s=s+1; [h,q]=min(distancia); if (h/num_bits e-REdING. Biblioteca de la Escuela Superior de Ingenieros de Sevilla.


OPTIMIZACIÓN DE UN SISTEMA DE AUDIO FINGERPRINTING PARA LA DETECCIÓN DE ANUNCIOS EN TIEMPO REAL

: Ãlvarez Dujat Des Allimes, Alejandro
: Ingeniería Telecomunicación