% Archivo: preprocdda2.m % % Función que realiza el segundo paso de preprocesado del algoritmo DDA % function x=preprocdda2(audio) Fs=11025; %frecuencia de muestreo N=4096; %numero de muestras por frame overlap=1/2; %factor de solapamiento desplaz=floor(N-N*overlap); %desplazamiento para comenzar cada trama %antes de nada se submuestrea el audio a Fs audio11025=decimate(audio,4); % para calcular el numero de tramas numtramas=floor((length(audio11025)-N)/desplaz); %numero de tramas sin contar la primera audio11025=audio11025(1:(N+numtramas*desplaz)); %Generamos el espectro logarítmico transf=mclt(audio11025,desplaz); spect=10*log10(abs(transf)); %segundo paso spectexp=10.^(spect/10); % se eleva el espectro logarítmico for k=0:desplaz:length(spect)-desplaz Ht(k+1:k+desplaz)=hthres(spectexp(k+1:k+desplaz),Fs); %umbral auditivo en u.n. HtdB(k+1:k+desplaz)=10*log10(Ht(k+1:k+desplaz)); for i=1:desplaz if spect(k+i)-HtdB(k+i)>=0 xt(k+i)=spect(k+i)-HtdB(k+i); else xt(k+i)=0; end end end % se vuelve a pasar a dominio del tiempo x=imclt(xt,desplaz);