%CODIFICADOR Y DECODIFICADOR GSM CON VAD Y CODIFICACIÓN DE CANAL.
%function sp=gsm(so)
%Entradas:
%so:señal muestreada a 8KHz y cuantificada con 13 bits.
%Salidas:
%sp:señal muestreada a 8KHz y cuantificada con 13 bits.
function sp=gsm(so)
inicia %fichero de variables iniciales. 
for i=1:ntramas
   [LARc,Nc,bc,Mc,xmaxc,xmc,ACF,LARantc,dpc]=gsmcod(so(160*i-159:160*i),LARantc,dpc); %codificamos la señal de entrada trama a trama.
   %[vad1,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); %aplicamos el vad.
   %[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); %construimos la trama sid, si procede.
   %[tr1,tr2,tr3,tr4,t5a,t6a,t7a,t8a]=codcanal(LARc,Nc,bc,Mc,xmaxc,xmc,t5a,t6a,t7a,t8a); %añadimos la codificación de canal.
   %[tr1,tr2,tr3,tr4]=canal(tr1,tr2,tr3,tr4,BER); %enviamos las tramas a través del canal.
   %[LARc,Nc,bc,Mc,xmaxc,xmc,t1a,t2a,t3a,t4a]=descodcanal(tr1,tr2,tr3,tr4,t1a,t2a,t3a,t4a); %quitamos la codificación de canal.
   %[LARc,Nc,bc,Mc,xmaxc,xmc]=dessid(LARc,Nc,bc,Mc,xmaxc,xmc,flag); %procesamos las tramas sid.
   [sp(160*i-159:160*i),Nact,dpd,LARantd]=gsmdec(LARc,Nc,bc,Mc,xmaxc,xmc,Nact,dpd,LARantd); %decodificamos para construir la señal de salida.
   clc
   PorcentajeCompletado=ceil(i*100/ntramas)   
end