function [memoria] = detectaUmbral(I,Q, memoria)
%------------------------------------------------------------------------
%| function [memoria] = detectaUmbral(I,Q, memoria)
%------------------------------------------------------------------------
%|
%| Funcion que implementa el estado inicial del automata
%| de sincronismo de baudio: fase de enganche.
%|
%| Emplea dos mecanismos para detectar seal a la entrada:
%| a) Deteccion de Umbral: espera que una muestra supere
%| un umbral de amplitud
%| b) Cruces por cero : espera detectar la secuencia
%| de sincronismo, es decir,
%| cruces por cero cuasi-equiespaciados.
%|
%| PARAMETROS DE ENTRADA:
%| 1/2.- I, Q = dos muestras de la seal de entrada
%| 3 .- MEMORIA = vector fila con las condiciones iniciales
%| del automata
%|
%| PARAMETROS DE SALIDA:
%| 1.- MEMORIA = vector fila con las condiciones finales
%| del automata
%-------------------------------------------------------------------------
%| Autor: Cesar Delgado
%| Fecha: 19-Abril-2.004
%-------------------------------------------------------------------------
%%%% 0.- Definicion de Ctes.
contMUESTRA = 1; % Contador de Muestras
contCRUCES = 2; % Contador de Flancos
MUESTRAS_BIT = 3; % N muestras/bit
muestraANT = 4; % Muestra Anterior
ESTADO = 5; % Estado del automata
valorMUESTRA = 7; % Suma de los voltajes de las muestras en 1 smbolo
UMBRAL = 0.5;
% 1.- Deteccion de Umbral
%------------------------
entrada = abs(I+j.*Q);
if entrada < UMBRAL,
memoria(contMUESTRA) = 0;
memoria(contCRUCES) = 0;
memoria(valorMUESTRA)= 0;
memoria(ESTADO) = 0;
else
memoria(contMUESTRA) = 1;
memoria(contCRUCES) = 0;
memoria(valorMUESTRA)= 0;
memoria(muestraANT) = (I>0); % Signo de la muestra actual
memoria(ESTADO) = 1;
end;