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.

validaTramo.m
function [ERROR, tramo, codigo] = validaTramo(tramo, codigo, metodo)

%---------------------------------------------------------------------
% function [ERROR, tramo, codigo] = validaTramo(tramo, codigo, metodo)
% --------------------------------------------------------------------
%   Funcin que valida los parmetros de la codificacin de 
%  redundancia. 
%  
%   Ver generaCRC para ms informacin
%-------------------------------------------------------------------------
%|   Autor: Cesar Delgado
%|   Fecha: 19-Abril-2.004
%-------------------------------------------------------------------------

ERROR=0;

% 1.- Long. tramos > el cdigo empleado
%--------------------------------------
if tramo < codigo, 
         ERROR = 1;  
         tramo  = 7;
         codigo = 4;
 else     
    % 2.- Long. de los tramos = (2^M) -1, siendo M=3,4,...
    %------------------------------------------------------
     aux    = log10(tramo+1)/log10(2);
     valido = ((aux >= 3)) & (fix(aux)==aux);
     if (~valido) 
            ERROR = 2;
            tramo  = 7;            
            codigo = 4;     
            
    % 3.- Particularidades de cada mtodo
    %------------------------------------            
            
      % 3.1.- El mtodo HAMMINNG impone cdigo una longitud
      %        de cdigo a partir de la del tramo
      elseif strcmp(metodo,'hamming') 
            valido = (codigo == (tramo-aux));
        if (~valido)
            ERROR  = 3;
            codigo = tramo-aux;         
         end;
         
      % 3.2.- El mtodo BCH requiere un cdigo compatible
      %       con los polinomios BCH
   elseif strcmp(metodo,'bch')        
      
           % Tamao de los polinomio BCH
            p = bchpoly(tramo);
            if size(p,1) > 1
               p = p(:,2)';
            end;
            
            % Comprobacin de que long. cdigo
            % coincide con algun polinonio BCH 
            prueba = (p == codigo*ones(1,length(p)));
            if isempty(find(prueba)), 
               ERROR = 4;
               codigo = max(p);
            end;            
            
         % 3.3.- El mtodo de Red Solomon requiere long. cdigo > 1            
         elseif strcmp(metodo,'rs')
            if codigo == 1
               ERROR = 5;
               codigo= codigo+1;
            end;
      end;
end;          

Contact us