No BSD License  

Highlights from
BPSK Simulator for Low Rate Transmisions

image thumbnail

BPSK Simulator for Low Rate Transmisions

by

 

01 Jun 2004 (Updated )

BPSK Simulator for didactical purposes. Systemic coding style.

detectaUmbral.m
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