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.

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