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.

detectorFase(PAM1, PAM2, memoria, primera)
function [DF, memoria] = detectorFase(PAM1, PAM2, memoria, primera)
%------------------------------------------------------------------------
%|  function [DF, memoria] = detectorFase(PAM1, PAM2, memoria, primera)
%------------------------------------------------------------------------
%|    Funcin simula la accin de un comparador de fase-fercuencia up-down
%|  digital activado por flancos de bajada. Su margen dinmico es 2*pi
%|   y espera seales TTL.
%|
%|     Est diseada para filtrar una sola muestra y devolver
%|  las condiciones finales. Se debe llamar dentro de un bucle.
%|  
%|    NO REALIZA VALIDACIN DE LOS PARMETROS DE ENTRADA
%|
%|    Entradas:
%|       1.- PAM1 =  muestra de una seal PAM.
%|       2.- PAM2 =  muestra de la otra seal PAM.
%|       3.- MEMORIA = vector de 3 muestras con el valor
%|                     de las muestras actuales [PAM1 PAM3 OUT].
%|                     Sirve para la deteccin de flancos de bajada.
%|       4.- PRIMERA: bandera: indica si se est en la 1 iteracin
%|
%|     Salidas:
%|       1.- DF       = muestra de salida tras la comparacin
%|       2.- MEMORIA  = vector de 3 muestras con las cond. finales
%-------------------------------------------------------------------------
%|   Autor: Cesar Delgado
%|   Fecha: 19-Abril-2.004
%-------------------------------------------------------------------------

flanco = zeros(1,2);
 
% 1.- Deteccin de Flanco
%------------------------ 
 if ~isempty(memoria) & ~primera
      flanco(1) = (memoria(1) > PAM1); % Se ha detectado flanco de PAM1      
      flanco(2) = (memoria(2) > PAM2); % Se ha detectado flanco de PAM2      
 end;  
 
% 2.- Clculo de muestra de salida
%--------------------------------- 
%   2.1.- Se ha detectado algn flanco
if (flanco(1) | flanco(2)) 
      if flanco(1), % Flanco de bajada UP
          DF = 5; 
          flanco(1)=0;
       end;
       if flanco(2),  % Flanco de bajada DOWN
          DF=0; 
          flanco(2)=0;    
       end;       
  %   2.2.- No hay ningn flanco => Salida = Salida anterior
  else 
      if isempty(memoria) | primera
         DF = 0;
      else  
         DF = memoria(3);
      end;     
   end;      
    
   % 3.- Actualizacin Memoria
   %-------------------------- 
   memoria(1)    = PAM1;
   memoria(2)    = PAM2;      
   memoria(3)    = DF;



Contact us at files@mathworks.com