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.

capturaEntrelazado.m
%------------------------------------------------------------------------
%|   capturaEntrelazado
%------------------------------------------------------------------------
%|      Script que captura todos los parmetros del entrelazado
%-------------------------------------------------------------------------
%|   Autor: Cesar Delgado
%|   Fecha: 19-Abril-2.004
%-------------------------------------------------------------------------

%1.- Capturamos Valores
%-----------------------
Entrelazado(pFILA)=round(str2num(get(paramTX(5,1),'String')));
Entrelazado(pCOL)=round(str2num(get(paramTX(5,2),'String')));   

% 2.- Validamos Valores
%----------------------
% >>>>>  2.1.- Posibles valores para filas y columnas
aux = [1 2 4 5 7 10 14 20 28 35 70 140]; % 140 = 5 * 2 * 2 * 7

% >>>>>> 2.2.- Si FILAS x COLUMAS != 140, buscamos los 
%                 valores ms apropiados dentro de los posibles
%--------------------------------------------------------------
%  Procedimiento de validacin:
%         a) Tomamos como partida el valor recien modificado
%         b) Buscamos, dentro de los posibles valores, aquel
%               al que ms se parece (Cociente=1)
%         c) Se lo asignamos
%         d) El nmero restante ser el cociente 140/calculado
%---------------------------------------------------------------
if (Entrelazado(pCOL)*Entrelazado(pFILA)) ~= 140,
   
   %%%% Parmetro del Entrelazado de Valor mnimo (filas o columnas)
   switch evento,
   case 14,  %%% Fila
      posi(1) = Entrelazado(pFILA); 
   case 15,  %%% Columna
      posi(1) = Entrelazado(pCOL);
   otherwise,
      a = min(Entrelazado); pos(1) = a(1);
   end;   
      
   %%%% Determinamos a quien se parece de los elementos posibles
   %                                               (Cociente = 1)
   cociente = (aux./posi(1));      
   cociente = cociente-ones(1,length(cociente));
   valMin = min(abs(cociente));
   
   %%%% Determinamos su posicin dentro del array de posibles valores
   a       = find(abs(cociente) == valMin)
   posi(2) = a(1);  a = [];
   
   %%%% Determinamos donde ubicar el valor calculado
   a       = find(Entrelazado == posi(1)); 
   posi(3) = a(1);
   a = []; 
   
   %%%% Asignamos valores  
   Entrelazado(posi(3)) = aux(posi(2));               
   Entrelazado((posi(3)==1)+1) = 140/Entrelazado(posi(3));  
end;

% >>>>>> 2.3.- Ponemos los nuevos valores en los editables
set(paramTX(5,1),'String',num2str(Entrelazado(pFILA)));
set(paramTX(5,2),'String',num2str(Entrelazado(pCOL)));
clear aux cociente posi a valMin

Contact us