% 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);
    