%CODIFICADOR GSM. %function [LARc,Nc,bc,Mc,xmaxc,xmc,ACF,LARantc,dpc]=gsmcod(so,LARantc,dpc) %Entradas: %so:trama de 160 muestras muestreadas a 8KHz y cuantificadas con 13 bits. %LARantc:LAR de la anterior trama. %dpc:120 muestras anteriores reconstruidas. %Salidas: %LARc:LAR codificados. %Nc:término de autocorrelación codificado. %bc:ganancia codificada. %Mc:posición RPE codificada. %xmaxc:valor RPE máximo codificado. %xmc:subsecuencia RPE codificada. %ACF:término de autocorrelación para el vad. %LARantc:LAR anteriores para la siguiente trama. %dpc:120 muestras anteriores para la siguiente trama. function [LARc,Nc,bc,Mc,xmaxc,xmc,ACF,LARantc,dpc]=gsmcod(so,LARantc,dpc) s=preproc(so);%aplicamos un preprocesado. [LARc,ACF,LARantc,d]=stpc(s,LARantc); %codificación STP. for n=1:4 %efectuamos el procesado dividiendo la trama en cuatro subtramas. [Nc(n),bc(n),dpp]=ltpc(d(40*n-39:40*n),dpc); %codificación LTP. e=d(40*n-39:40*n)-dpp; %calculamos el error residual. [Mc(n),xmaxc(n),xmc(13*n-12:13*n),ep]=rpec(e); %codificación RPE. dp=ep+dpp; %recontruimos la señal que saldría del decodificador. dpc=[dpc(41:120),dp]; %actualizamos las 120 muestras anteriores reconstruidas. end