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.

divisor(doble, memoria, primera)
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 at files@mathworks.com