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.

sincroFase.m
function [decisor, IQc, memoria] = sincroFase(I,Q,memoria)
%------------------------------------------------------------------------
%|  function [decisor, IQc, memoria] = sincroFase(I,Q,memoria)
%------------------------------------------------------------------------
%|
%|    Funcion que implementa el sincronismo de fase de la practica final.
%|  A su salida entrega una PAM con los cuyos valores son "0" y "1", lo 
%|  que posibilita la recuperacion de la informacion mediante diezmado.
%|    Ideado para procesar una sola muestra, aplicando condiciones
%|  iniciales y devolviendo las finales. Debe invocarse dentro de un 
%|  bucle. 
%|
%|    Entradas:
%|       1.- I  = seal en fase
%|       2.- Q  = seal en cuadratura
%|       3.- MEMORIA = condiciones iniciales de los componentes
%|                     del lazo:
%|                   Fila 1 : [ Cond. Ini. Filtro de Lazo ]
%|                   Fila 2 : [ Cond. Ini. VCO            ]
%|    Salida:
%|         1.- DECISOR = seal cuadrada a niveles TTL
%|         2.- IQc     = seal IQ compensada, es decir, con la 
%|                       constelacion girada.
%|         3.- MEMORIA = condiciones finales de los componentes
%-------------------------------------------------------------------------
%|   Autor: Cesar Delgado
%|   Fecha: 19-Abril-2.004
%-------------------------------------------------------------------------

%%%%%%%%%% Constantes
pVCO    = 2; pMEM = 1; 

% 1.- Bucle
%----------
%>>> 1.1.- Seal de Entrada
IQ      = I+j.*Q;

%>>> 1.2.- Seal proyectada sobre el eje I
y       = IQ.*exp(-j*memoria(pVCO,pMEM));

%>>> 1.3.- Ubicamos la constelacion sobre I
Io       = real(y);
Qo       = imag(y);
IQo      = (Io+j.*Qo);
IQc      = IQo .* exp(-j.*Qo/Io);

%>>> 1.4.- Fase estimada para la siguiente iteracion
[memoria] = lazoSincroFase(Qo/Io,memoria);

%>>> 1.5.- Decisor: solo estima la seal I
decisor = 5.*(real(IQc)>0);

Contact us