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.

divisor.m
function [mitad, memoria] = divisor(doble, memoria, primera)
%------------------------------------------------------------------------
%|  function [mitad, memoria] = divisor(doble, memoria, primera)
%------------------------------------------------------------------------
%|   Funcin que simula la accin de un divisor digital con niveles
%| TTL, en base a un detector de flancos de subida.
%|
%|     Est diseada para operar sobre sola muestra y devolver
%|  las condiciones finales. Se debe llamar dentro de un bucle.
%|     Hara falta filtrar la salida para quedarse con el fundamental
%|  a fi. Es fcilmente adaptable a otros factores de divisin.
%|  
%|    NO REALIZA VALIDACIN DE LOS PARMETROS DE ENTRADA
%|
%|    Entradas:
%|       1.- DOBLE  =  vector fila con seal TTL a dividir.
%|       2.- MEMORIA = vector fila con las condiciones a aplicar
%|       3.- PRIMERA = indica si es la primera iteracin del bucle.
%|
%|     Salidas:
%|       1.- MITAD    = muestra de salida tras el filtrado
%|       2.- MEMORIA  = vector con las cond. finales
%-------------------------------------------------------------------------
%|   Autor: Cesar Delgado
%|   Fecha: 19-Abril-2.004
%-------------------------------------------------------------------------
pIN       = 1;  % Posicin en memoria de la entrada anterior
pFLANCOS  = 2; % Contador de flancos transcurridos


% 1.- Divisin por 2
%-------------------
%>>>>>>>>>>>> 1.1.- Deteccin de flanco de subida
flanco = (memoria(pIN) < doble); % Entrada Anterior < Entrada Actual
                                 %   ==> Flanco de subida
                                                               

%>>>>>>>>>>>> 1.2.- Si hay flanco, conmutamos salida
if (memoria(pFLANCOS)==0), memoria(pFLANCOS) = 1; end;

if (flanco),
   memoria(pFLANCOS) = -memoria(pFLANCOS);
end;

%>>>>>>>>>>>> 1.3.- Clculo de la salida (niveles TTL)
mitad = (memoria(pFLANCOS)>0)*5;

%>>>>>>>>>>>> 1.4.- Almacenamos en memoria muestra actual
memoria(pIN) = doble;

Contact us