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.

encapsula.m
function [paquete] = encapsula(datos, extra)
%------------------------------------------------------------------------
%|  function [paquete] = encapsula(datos, extra)
%------------------------------------------------------------------------
%|    Funcin que encapsula un paquete de datos de 140 bits. 
%|
%|    Entradas:
%|       1.- DATOS =  vector fila de, como mximo, 140 bits.
%|                    Si hay ms de 140 bits en datos, se trunca a 140.
%|       2.- EXTRA = indica si se requiere algn campo extra para sincrona:
%|                    0 : no hay que agregar ningn campo de sincronismo
%|                    1 : hay que agregar el campo SYNCRO al comiezo
%|                    2 : hay que agragar el campo EOD al final 
%|                    3 : hay que agregar tanto SYNCRO como EOD     
%|
%|    Salida:
%|       1.- PAQUETE  = vector de ceros y unos con mensaje y sus cabeceras
%|                    
%-------------------------------------------------------------------------
%|   Autor: Cesar Delgado
%|   Fecha: 19-Abril-2.004
%-------------------------------------------------------------------------

% ------------------>DEFINICIN DE CONSTANTES<-----------------------
L_INFO   = 140; 
L_SYNCRO = 100;
BOD      = [1 1 0 0 1 1 0 0];
EOD      = [1 1 1 0 0 1 1 1];
SYNCRO(1:2:L_SYNCRO)=1;
SYNCRO(L_SYNCRO)=~SYNCRO(length(SYNCRO));

% 1.- Se comprueban los parmetros de entrada
%--------------------------------------------
if nargin < 1
   disp ('ERROR: faltan parmetros en la funcin encapsula()');
elseif isempty(datos) 
   disp ('ERROR: no hay informacin que encapsular()');
else   
   %       1.1.- Valores por Defecto
   if nargin < 2
      syncro = 0; % Por defecto, no se agregan cabeceras de sincronismo
   end;
   
   %       1.2.- Se comprueban las longitudes
   if length(datos) > L_INFO
      disp('WARNING: intenta encapsular un paquete de ms de 140 bits');
      disp('         Se proceder al truncado de los datos');
   elseif length(datos) < 8
      disp('WARNING: intenta encapsular un paquete menos de 8 bits');
      disp('         Se realizar el encapsuado');
   end;
   
% 2.- Se procede al encapsulado
%------------------------------   
   switch extra      
   case 1,
      paquete = [SYNCRO BOD datos];
     % break; % En la version 6.5 es innecesario
   case 2,
      paquete = [BOD datos EOD];
     % break;      
   case 3,
      paquete = [SYNCRO BOD datos EOD];
     % break; 
   otherwise,
      paquete = [BOD datos];      
     % break;
   end; 
end;

   

Contact us