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.

recuperaCRC (CRC, tramo, codigo, metodo)
function [trama, errores] = recuperaCRC (CRC, tramo, codigo, metodo)
%------------------------------------------------------------------------
%|  function trama = recuperaCRC (CRC, tramo, codigo, metodo)
%------------------------------------------------------------------------
%|    Funcin que crea un cdigo de redundancia para 
%|  la correccin de errores.
%|
%|    Entradas:
%|       1.- CRC =  vector fila con la trama codificada.
%|                  Su longitud ser de length(TRAMA+1)*(TRAMO/CODIGO) 
%|                  o nula si algo ha ido mal (length(CRC)=0);
%|                  Caso de ser matriz, se toma 1 columna traspuesta
%|       2.- TRAMO = la codificacion se aplica en tramos de (2^M)-1 bits
%|                   Restricciones    : TRAMO=(2^M)-1, M = 3,4,5,...
%|                                      TRAMO < length(TRAMA)
%|                   Valor por defecto: 7     
%|       3.- CODIGO = longitud de la palabra empleada para la codificacin
%|                   Restricciones    : CODIGO < TRAMO
%|                                      En Hamming: CODIGO = (2^M) - M
%|                   Valor por defecto: 4
%|       4.- METODO = tipo de cdigo de errores:
%|            4.1.- 'hamming': por el mtodo hamming => Valor por defecto
%|            4.2.- 'cyclic': cdigos de redundancia cclica
%|            4.3.- 'bch': cdigos de redundacia cclica interpretando
%|                         mensaje binario
%|            4.4.- 'rs': cdigos de Reed-Solomon
%|
%|    Salida:
%|       1.- TRAMA  = vector de ceros y unos (fila o columna)
%|       2.- ERRORES = posicin donde se han detectado errores
%|                    
%|     NOTA: requiere Toolbox de Comunicaciones
%-------------------------------------------------------------------------
%|   Autor: Cesar Delgado
%|   Fecha: 19-Abril-2.004
%-------------------------------------------------------------------------

trama = [];

% 1.- Validacin de Parmetros de Entrada
%----------------------------------------
   % 1.1.- Nmero de parmetros de entrada
if nargin < 1      
   disp('ERROR: faltan parametros en recuperaCRC');   
elseif isempty(CRC)
   disp('ERROR: trama vaca en recuperaCRC');
else   
   % 1.2.- Asignacin de valores por defecto en caso de omisin
   if nargin < 2      
      codigo = 4;
      tramo  = 7;
      metodo = 'hamming';
   elseif nargin < 3      
      tramo  = 7;
      metodo = 'hamming';
      validados = 0;
   elseif nargin < 4,               
      metodo = 'hamming';      
   end;
   
    % 1.3.- Conversin a vector fila   
    tamano = size(trama);
    if tamano(1) > 1
         CRC = CRC(:,1); % Nos quedamos con 1 columna
         CRC = CRC';     % Convertimos a fila
    end
    
    % 1.4.- Se toman valores absolutos      
    codigo = abs(codigo);
    tramo  = abs(tramo);
      
  % 2.- Recuperacin de la trama
  %-----------------------------
    [trama, errores] = decode(CRC,tramo,codigo,metodo);
    trama = trama(1:length(trama))';
    errores = errores(1:length(errores))';
    errores = find(errores);    
end

Contact us at files@mathworks.com