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.

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 at files@mathworks.com