No BSD License  

Highlights from
BPSK Simulator for Low Rate Transmisions

image thumbnail
from BPSK Simulator for Low Rate Transmisions by César Delgado González
BPSK Simulator for didactical purposes. Systemic coding style.

detectaUmbral(I,Q, memoria)
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;

Contact us at files@mathworks.com