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.

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