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.

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