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.

validaTramo(tramo, codigo, metodo)
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 at files@mathworks.com