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.

Transmisor(ruta, fichero, metodo, Roll_Off, ...
function [retardo] = Transmisor(ruta, fichero, metodo, Roll_Off, ...
                                delta, Ptx, S_N, parametros)
%------------------------------------------------------------------------
%|  [retardo] = Transmisor(ruta, fichero, metodo, Roll_Off, ...
%|                                delta, Ptx, S_N, parametros)
%------------------------------------------------------------------------
%|     Funcin que implementa el transmisor BPSK. Se trata de una
%|  caja negra vista desde fuera, pero deja varios puntos de observacin
%|  almacenados en distintos ficheros:
%|      a) OUT.TX    : seal de salida del transmisor
%|      b) LINEA_I.TX: seal de lnea en rama I (PAM tras coseno alzado)
%|      c) LINEA_Q.TX: seal de lnea en rama Q (PAM tras coseno alzado)
%|      d) TRAMAS.TX: sucesin de tramas enviadas por el trasnmisor.
%|      e) PARAM_TX.MAT: parmetros del transmisor.
%|
%|    No est diseado para optimizar nmero de clculos, sino la 
%|  legibilidad y la flexibilidad. Aunque muchas posibilidades no han sido
%|  implementadas, es fcilmente ampliable.
%|
%|    Entradas:
%|       1.- RUTA    = string con el path del fichero de entrada.
%|       2.- FICHERO = string con el nombre del fichero de entrada.
%|       3.- METODO  = mtodo empleado para la generacin de CRC.
%|       4.- ROLL_OFF   = factor de Roll_Off del coseno alzado.
%|                        Por defecto: 1;
%|       5.- DELTA      = desviacin de frecuencia
%|                        Por defecto: 0
%|       6.- P_TX       = Potencia Transmitida en dBm sobre 50 Ohm.
%|                        Por defecto: 10 dBm
%|       7.- S_N        = Relacin S/N en dB. Con ello se calculo la
%|                        desviacin tpica del ruido.
%|                        Por defecto: 100.
%|       6.- PARAMETROS = matriz con los parmetros del transmisor
%|              GENERAL    :  [fs             , Rb      ] 2^16 , 2^11 [Hz]
%|              ENTRELAZADO:  [Filas          , Columnas] 14   x  10
%|              CRC:          [Tramo          , Codigo  ]  7   x   4
%|              MODULADOR_IQ: [Origen Fase() , fi      ]  0 , 2^13 [Hz]
%|
%|
%|    Salida:
%|       1.- RETARDO = retardo de grupo mximo que introduce el receptor.
%|
%|     NOTA: existe un fortsimo acoplamiento entre las funciones
%|           que implementan el TX, as que hay que tener cuidado
%|           al modificarlas. 
%|     NOTA: requiere Toolbox de Comunicaciones
%|
%|   Ver ayuda de generaCRC, y moduladorIQ para ver los valores
%|  por defecto de los parmetros. 
%-------------------------------------------------------------------------
%|   Autor: Cesar Delgado
%|   Fecha: 19-Abril-2.004
%-------------------------------------------------------------------------

pGENERAL = 1; pFS     = 1; pRB   = 2;
pENTRE   = 2; pFILA    = 1; pCOL  = 2;
pCRC     = 3; pTRAMO  = 1; pCODE = 2;
pIQ      = 4; pFASE   = 1; pFI = 2;   
fINFO    = 0; fTRAMA  = 1; fSIGNAL = 2;
I = 1;  Q = 2;

%#########################################################################
% 1.- VALIDACIN DE PARMETROS DE ENTRADA
%#########################################################################
%     1.1.- Asignacin Parmetros por defecto
if nargin < 1,
   ruta = './';
   fichero = 'tramas.tx';
   metodo     = 'hamming';
   parametros = [2^16, 2^11; 14,10;7,4;0,2^13];
   Roll_Off   = 1;
   delta = 0;
   S_N = 100;
   Ptx = 10; % dBm sobre 50 Oh.
elseif nargin < 2,
   fichero = 'tramas.tx';
   metodo     = 'hamming';
   parametros = [2^16, 2^11; 14,10;7,4;0,2^13];
   Roll_Off   = 1;
   delta = 0;
   S_N = 100;
   Ptx = 10; % dBm sobre 50 Oh.
elseif nargin < 3,
   metodo     = 'hamming';
   parametros = [2^16, 2^11; 14,10;7,4;0,2^13];
   Roll_Off   = 1;
   delta = 0;
   S_N = 100;
   Ptx = 10; % dBm sobre 50 Oh.
elseif nargin < 4,
   parametros = [2^16, 2^11; 14,10;7,4;0,2^13];
   Roll_Off   = 1;
   delta = 0;
   S_N = 100;
   Ptx = 10; % dBm sobre 50 Oh.
elseif nargin < 5,
   delta = 0;
   S_N = 100;
   Ptx = 10; % dBm sobre 50 Oh.
   parametros = [2^16, 2^11; 14,10;7,4;0,2^13];
elseif nargin < 6,
   S_N = 100;
   Ptx = 10; % dBm sobre 50 Oh.   
   parametros = [2^16, 2^11; 14,10;7,4;0,2^13];   
elseif nargin<7,
   S_N = 100; % dBm sobre 50 Oh.   
   parametros = [2^16, 2^11; 14,10;7,4;0,2^13];   
elseif nargin < 8,
   parametros = [2^16, 2^11; 14,10;7,4;0,2^13];
end; 
   
   % 1.2.- Si algn parmetro de los introducidos est vaco.
       if isempty(Roll_Off), Roll_Off = 1; end;
       if isempty(Ptx),  Ptx = 10;  end;
       if isempty(S_N),  S_N = 0;  end;
       if isempty(metodo), metodo = 'hamming'
       elseif (~validaMetodo(metodo)),
             metodo = 'hamming'
             disp('WARNING: no se ha comprendido bien el mtodo de generacin CRC');
             disp('         Se aplicar el mtodo de Hamming');
       end; 
       
       % Si isempty es TRUE, size(parametros) fallar, por eso hay if-ifelse
       if isempty(parametros), 
          parametros = [2^16, 2^11; 14,10;7,4;0,2^13];
       elseif (size(parametros,1) ~= 4) | (size(parametros,2) ~=2)
          parametros = [2^16, 2^11; 14,10;7,4;0,2^13];
       else          
          
      % 1.3.- Validacin de la matriz de parmetros
      %------------> Relacin entre frecuencias: Rb, fi, fs           
          parametros(pGENERAL, pFS) = abs(parametros(pGENERAL, pFS));          
          parametros(pGENERAL, pRB) = abs(parametros(pGENERAL, pRB));
          parametros(pIQ, pFI) = abs(parametros(pIQ, pFI));       
     end;   
 
%zzzzzzzzz  zzzzzzzzzzzzzzzzzzzzz  zzzzzzzzzzzzzzzzzzz  zzzzzzzzzzzzzzzz

%#########################################################################
% 2.- APLICACIN DE LOS PROCEDIMIENTOS DEL NIVEL 6: PRESENTACIN
%        2.1.- Traduccin de ASCII a binario
%#########################################################################
nivPresenTX;

%#########################################################################
% 3.- APLICACIN DE LOS PROCEDIMIENTOS DEL NIVEL 2: ENLACE
%        3.1.- Entrelazado
%        3.2.- CRC: Cdigos de Reduncancia Cclica 
%#########################################################################
nivEnlaceTX;

%#########################################################################
% 4.- APLICACIN DE LOS PROCEDIMIENTOS DEL NIVEL 1: FSICO
%         4.1.- Codificacin Canal
%         4.2.- Modulacin 
%#########################################################################
nivFisicoTX;
   

Contact us at files@mathworks.com