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.

inicializa.m
%------------------------------------------------------------------------
%|  	inicializa
%------------------------------------------------------------------------
%|      Script que inicializa todas las variables
%|  del Simulador de sistema BPSK.
%|   
%|     Existe una variable que hay que preconfigurar, y es la ruta
%|  donde encontrar y almacenar los ficheros que requiere el programa.
%-------------------------------------------------------------------------
%|   Autor: Cesar Delgado
%|   Fecha: 19-Abril-2.004
%-------------------------------------------------------------------------

%########################################################################
%####### 1.- Ctes
%########################################################################
% MOD I-Q  ; GENERAL ;  PLL    ;   CRC   ; ENTRELAZA.;  GR�FICAS ; FILTROS
pPOT    = 1;  pRB = 1; pKV  = 1; pFILA = 1; pTRAMO = 1; pSUP = 1;  pBB=1;
pS_N    = 2;  pFI = 2; pWN  = 2; pCOL  = 2; pCODE  = 2; pINF = 2;
pFASE   = 3;  pFS = 3; pPSI = 3;                                   
pDESV   = 4;                                
pROLLOFF= 5;

%%%%%%%% Capturamos el path donde se encuentra nuestro programa
if exist('Ficheros','dir'),
    ruta = which('creaInterfaz.m');
    ruta(length(ruta)-31:length(ruta)) = [];
    ruta = [ruta 'Ficheros/'];    
else
    Texto = {'ERROR: no se encuentra la ruta al programa. Posibles motivos: '; ... 
             '         1.- No ha incluido la ruta en el path del Matlab '; 
             '         2.- No ha creado directorio para los Ficheros ' ;
             '                   ---- Inicializa.m ----              ';};

    uiwait(errordlg(Texto,'Simulador BPSK'));
    close all, clear all, clc
    error('ERROR EN RUTA: revise path del Matlab');    
end;


%########################################################################
%#### 2.- Variables del Transmisor
%########################################################################
%%%%%%%%%%%% Valores por Defecto

if ~exist([ruta 'paramTX.mat']),
   %%% 2.1.- Parámetros Generales
   %-----------------------------
   %   [ Rb ,  fi ,  fs ]
  % f = [2^10, 2^12,  2^15]; 
    f = [2^10, 3.5e3,  2^15];
    
   %%% 2.2.- Entrelazado
   %--------------------
   %             [Filas, Columnas]
   Entrelazado = [14   , 10];
   
   %%% 2.3.- CRC
   %------------
   %     [ Long.Tramos, Long.C�digo ]
   CRC = [     7      ,     4       ];
   metodoCRC = 'hamming';
   
   %%% 2.4.- Modulador I-Q
   %-----------------------
   %     [P_tx , S/N, Origen Fase, Desv. Frec., Factor Roll Off ]
   IQ  = [ 10  ,  25,   -22.5      ,      0     ,      -0.6      ]; 
   %     [ dBm    dB      �              %         adimensional  ]
   
   %%% 2.5.- N� Tramas procesadas por el TX
   %---------------------------------------
   maxTrama = 10;    
else,
   load([ruta 'paramTX.mat']);   
   f(pFS) = parametros(1,1); 
   f(pFI) = parametros(4,2);
   f(pRB) = parametros(1,2);
   Entrelazado(pFILA) = parametros(2,1);
   Entrelazado(pCOL) = parametros(2,2);
   CRC(pTRAMO) = parametros(3,1);
   CRC(pCODE)  = parametros(3,2);
   IQ(pFASE)   = parametros(4,1);
   IQ(pDESV)   = delta;
   IQ(pROLLOFF)= Roll_Off;
   IQ(pPOT)    = 10;  % dBm sobre 50 Oh.
   IQ(pS_N)    = 25; % dB
   L           = f(pFS)/f(pRB);
   bitsTrama   = 50;
   nBitsTot    = lonSignal/L;
   nTramas     = ceil(nBitsTot/bitsTrama);
   maxTrama    = nTramas+(nTramas==1);
   metodoCRC   = metodo;
   clear parametros delta Roll_Off lonSignal 
   clear metodo L  nBitsTot nTramas
end;
   
   
%#############################################################
%#### 3.- Variables del Receptor
%#############################################################

%%% 3.1.- Filtros
%-----------------
%       [ Banda Base, Frec. Intermedia ]
Orden = [     30      ,      30        ]; % Adimensional
Bw    = [     1e3     ,      100       ]; % Hz


%%% 3.2.- Lazo del PLL
%---------------------
%        [ Cte.Sensiv. VCO  , Puls. Libre no Amortiguada, Factor Amortiguamiento ]
%parPLL = [     19.5e3,                 4e3,                      1/sqrt(2) ];
%parPLL = [     23e3,                 2e3,                      1/sqrt(2) ];
%parPLL = [     23e3,                 4.5e3,                      1/sqrt(2) ];
parPLL = [     25e3,                4.5e3,                      1/sqrt(2) ];
%        [    Kv(Hz/V)      ,      wn (rad/sg)          ,      Psi (adimensional)]

%%% 3.3.- Recuperaci�n de Reloj
%------------------------------
% N� de flancos para considerar el periodo de reloj
nFlancos = 10;

%#############################################################
%#### 4.- Variables de la Visualizaci�n
%#############################################################
%           Gr�fica Superior ; Gr�fica Inferior
color       = [     'b'         ;        'b'      ];

% Gráficas:    ON Superior    OFF Inferior
grafActivas = [    0       ,      0       ];

% Ptos. Observacion: Superior    Inferior
obsv        = [    1        ,      1      ];

% Tiempo/Frecuencia: Superior    Inferior
verF        = [     0       ,      0      ];

% N� de Trama a ver
nTrama    = 1;
bitsTrama = 20;

Contact us at files@mathworks.com