%TRAMAS SID.
%function [LARc,Nc,bc,Mc,xmaxc,xmc,flag,vad2,vad3,vad4,LARsid,xmaxsid]=sid(LARc,Nc,bc,Mc,xmaxc,xmc,vad1,vad2,vad3,vad4,LARsid,xmaxsid)
%Entradas:
%LARc:LAR codificados.
%Nc:término de autocorrelación codificado.
%bc:ganancia de autocorrelación codificado.
%Mc:posición RPE codificada.
%xmaxc:valor máximo RPE codificado.
%xmc:subsecuencia seleccionada codificada.
%vad1,vad2,vad3,vad4:decisión del vad para las cuatro tramas anteriores.
%LARsid:LARc de las cuatro tramas anteriores.
%xmaxsid:xmaxc de las cuatro tramas anteriores.
%Salidas:
%LARc:LAR codificados aplicado el sid.
%Nc:término de autocorrelación codificado aplicado el sid.
%bc:ganancia de autocorrelación codificado aplicado el sid.
%Mc:posición RPE codificada aplicado el sid.
%xmaxc:valor máximo RPE codificado aplicado el sid.
%xmc:subsecuencia seleccionada codificada aplicado el sid.
%flag:variable que indica si es una trama sid o no.
%vad2,vad3,vad4:decisión del vad de las tres tramas anteriores.
function [LARc,Nc,bc,Mc,xmaxc,xmc,flag,vad2,vad3,vad4,LARsid,xmaxsid]=sid(LARc,Nc,bc,Mc,xmaxc,xmc,vad1,vad2,vad3,vad4,LARsid,xmaxsid)
LARsid=[LARsid(9:32),LARc];%actualizamos los LARsid para la siguiente trama.
xmaxsid=[xmaxsid(5:16),xmaxc];%actualizamos los xmaxsid para la siguiente trama.
flag=0;
if(vad1==0 & vad2==0 & vad3==0 & vad4==0)%comprobamos si hay que aplicar el sid.
   flag=1;%ponemos esa bandera a uno indicando que es una trama sid.
	j=1:8;%sustituimos los LARc por una media ponderada.
   LARc(j)=round((LARsid(j)+LARsid(j+8)+LARsid(j+16)+LARsid(j+24))/4);
   j=1:4;%sustituimos los xmaxc por una media ponderada.
   xmaxc(j)=round(sum(xmaxsid)/16);
   Nc=zeros(1,4);%los demás parámetros los ponemos a cero.
   bc=zeros(1,4);
   Mc=zeros(1,4);
   xmc=zeros(1,52);
end
vad2=vad1;%actualizamos los valores de decisión.
vad3=vad2;
vad4=vad3;