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.

detectorFase.m
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