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.

lazoSincroFase(errorFase,memoria)
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 at files@mathworks.com