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.

lazoSincroFase.m
function [memoria] = lazoSincroFase(errorFase,memoria)
%------------------------------------------------------------------------
%|  function [memoria] = lazoSincroFase(errorFase,memoria)
%------------------------------------------------------------------------
%|
%|    Funcion que implementa el lazo del sincronismo de Fase de la 
%| practica final: 
%|          a) Retardo de la Entrada
%|          b) Filtro de Lazo: Integrador con ganancia alfa+beta
%|          c) VCO            :Integrador con ganancia unitaria    
%|
%|    Ideado para procesar una sola muestra, aplicando condiciones
%|  iniciales y devolviendo las finales. Debe invocarse dentro de un 
%|  bucle. 
%|
%|   Entradas:
%|         1.- ERROR_FASE =  error de fase en la seal BPSK.
%|         2.- MEMORIA    =  condiciones iniciales de los distintos
%|                           componentes.
%|                   Fila 1 : [ Cond. Ini. Filtro de Lazo ]
%|                   Fila 2 : [ Cond. Ini. VCO            ]
%|    Salidas:
%|        1.- MEMORIA     = condiciones finales de los distintos
%|                          componentes
%-------------------------------------------------------------------------
%|   Autor: Cesar Delgado
%|   Fecha: 19-Abril-2.004
%-------------------------------------------------------------------------

%%%%%%%%%% Constantes
pFILTRO = 1; pMEM = 1; pIN  = 2;  
pVCO    = 2; pMEM = 1; pOUT = 2;
alfa = 0.1;
beta = 0.001;

% 1.- Bucle
%----------
%   1.1- Filtro de Lazo: 
%                a) Integrador cuya cte. es alfa+beta 
%                b) Filtra el error estimado retardado 1 muestra
fil_out   = (alfa+beta)*(memoria(pFILTRO,pIN) + memoria(pFILTRO,pMEM));
memoria(pFILTRO,pMEM) = fil_out;


%   1.2.- VCO:
%             a) Integrador cuya cte. integracion es 1
%             b) Filtra la salida del filtro de lazo
estimada           = fil_out + memoria(pVCO,pMEM);
memoria(pVCO,pMEM) = estimada;               
  

%  1.3.- Almacenamos la entrada para ser procesada en siguiente iteracion

%   OJO: acoto el error para no provocar cambios bruscos de fase,
%        lo que podria conllevar un salto de fase de 180.
memoria(pFILTRO,pIN) = errorFase*(abs(errorFase)<8) + ...
                      (abs(errorFase)>8)*5*(2*(errorFase>0)-1);

Contact us