%DETECTOR DE ACTIVIDAD VOCAL.
%function[vadc,rvad,ACFvad,av0ant,dm,Nj,oldl,voldl,adp,thv,buc,hac]=vad(ACF,Nc,rvad,ACFvad,av0ant,dm,Nj,oldl,voldl,adp,thv,buc,hac)
%Entradas:
%ACF:coeficiente de autocorrelación.
%Nc:término de autocorrelación.
%rvad,ACFvad,av0ant,dm,Nj,oldl,voldl,adp,thv,buc,hac:diversos parámetros que han de ser guardados de una trama para otra.
%Salidas:
%vadc:variable de decisión del VAD.
%rvad,ACFvad,av0ant,dm,Nj,oldl,voldl,adp,thv,buc,hac:diversos parámetros que han de ser guardados de una trama para otra.
function[vadc,rvad,ACFvad,av0ant,dm,Nj,oldl,voldl,adp,thv,buc,hac]=vad(ACF,Nc,rvad,ACFvad,av0ant,dm,Nj,oldl,voldl,adp,thv,buc,hac)
pvad=adapfil(ACF,rvad);%filtrado adaptativo.
Nj=[Nj(5),Nc];%guardamos los términos de autocorrelación de las cuatro tramas anteriores.
ACFvad=[ACFvad(10:36),ACF];%guardamos los ACF de las cuatro tramas anteriores.
[av0,av1]=ACFav(ACFvad,av0ant);%interpolador de los ACF.
av0ant=[av0ant(10:36),av0];%actualizamos los av0ant.
if(i<=4)
   rav1=zeros(1,9);
else
   rav1=predval(av1);%predictor de valores de autocorrelación.
end
[stat,dm]=speccom(rav1,av0,dm);%comparación espectral.
[ptch,oldl,voldl]=perdec(Nj,oldl,voldl);%detección de periodicidad.
[adp,thv,rvad]=thadap(ACF,ptch,rav1,stat,pvad,adp,thv);%adaptación de umbral.
vvad=vaddec(pvad,thv);%calculamos la decisión del vad.
[vadc,bc,hc]=vadhang(vvad,buc,hac);%le añadimos un hangover.
