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.

Receptor.m
function  Receptor(ruta, N, Bw, Orden, paramPLL)
%------------------------------------------------------------------------
%| Receptor(ruta, frec, nFlancos, Bw, Orden, paramPLL)
%------------------------------------------------------------------------
%|    Funcin que implementa un receptor BPSK coherente con 
%|  recuperacin de portadora por bucle elevador al cuadrado.
%|
%|    Entradas:
%|       1.- RUTA = cadena de caracteres la ruta del fichero de parmetros 
%|                  del TX.
%|                  Valor por defecto: '.'
%|       2.- N_FLANCOS = n de alternancias "0" - "1" que han de considerarse
%|                  para la recuperacin del reloj.
%|                  Restricciones: < 50 (cabecera sincronismo)
%|                  Valor por defecto: 20.
%|       3.- BW    = vetor fila: [ Bw Filtro BB, Bw filtro FI];
%|       4.- ORDEN = vector fila [Orden filtro FI, Orden filtro BB]
%|       5.- paramPLL   = vector fila de 3 elemento con parmetros del paramPLL 
%|                            paramPLL: [ Kv     ,  Wn         , Psi  ]
%|                    Por defecto: [50 kHz/V, 38.2 krad/sg, 0.707]
%|
%|           An no es viable la modificacin de parmetros del paramPLL
%|
%|  NOTA: existe un fortsimo acoplamiento entre todas las funciones
%|        involucradas en la demodulacin, ya que son llamadas para
%|        ejecutar una determinada seccin de cdigo.
%-------------------------------------------------------------------------
%   Autor: Cesar Delgado
%   Fecha: 19-Abril-2.004
%-------------------------------------------------------------------------

%##########################################################################
% 1.- VALIDACIN DE PARMETROS DE ENTRADA
%##########################################################################
if nargin < 1,    
   %         Kv(Hz/V) ,   wn (rad/sg) ,  psi 
   paramPLL  = [   5e4    , 30.8e3        , 1/(sqrt(2))];
   Bw = [0.2 0.05]*fs;
   N = 20;
   ruta = '.'; 
   Orden = [33, 33];
elseif nargin < 2,   
   %         Kv(Hz/V) ,   wn (rad/sg) ,  psi 
   paramPLL  = [   5e4    , 30.8e3        , 1/(sqrt(2))];
   Bw   = [0.2 0.05]*fs;
   N    = 20;
   Orden = [33, 33];
elseif nargin < 3,
   %         Kv(Hz/V) ,   wn (rad/sg) ,  psi 
   paramPLL  = [   5e4    , 30.8e3        , 1/(sqrt(2))];
   Bw = [0.2 0.05]*fs;
   if isempty(N), N = 20; end;
   Orden = [33, 33];   
elseif nargin < 4,
   paramPLL  = [   5e4    , 30.8e3        , 1/(sqrt(2))];
   if isempty(N), N = 20; end;
   if isempty(Bw), Bw = [0.2 0.05]*fs;end;   
   if size(Bw,2)~=2, Bw = [0.2 0.05]*fs;, end; 
   Orden = [33, 33];
elseif nargin < 5,
   %         Kv(Hz/V) ,   wn (rad/sg) ,  psi 
   paramPLL  = [   5e4    , 30.8e3        , 1/(sqrt(2))];
   if isempty(N), N = 20; end;
   if isempty(Bw), Bw = [0.2 0.05]*fs;end;   
   if size(Bw,2)~=2, Bw = [0.2 0.05]*fs;, end;
   if isempty(Orden), Orden = [33, 33]; end;
   if size(Orden,2)~=2, Orden= [33, 33]*fs;, end;

elseif isempty(paramPLL),
   %         Kv(Hz/V) ,   wn (rad/sg) ,  psi 
   paramPLL  = [   5e4    , 30.8e3        , 1/(sqrt(2))];
   if isempty(N), N = 20; end;
   if isempty(Bw), Bw = [0.2 0.05]*fs;end;   
   if size(Bw,2)~=2, Bw = [0.2 0.05]*fs;, end;
   if isempty(Orden), Orden = [33, 33]; end;
   if size(Orden,2)~=2, Orden= [33, 33]*fs;, end;

      
elseif (length(paramPLL)~=3), 
   if size(paramPLL,1)>1, paramPLL = paramPLL'; end; % Transformamos a vector fila
   %         Kv(Hz/V) ,   wn (rad/sg) ,  psi 
   paramPLL  = [   5e4    , 30.8e3        , 1/(sqrt(2))];
   disp ('WARNING: no se han comprendido bien los parmetros del paramPLL del Receptor');
   disp ('         Valores por defecto: Kv=50[kHz/V] wn=38.2[krad/sg]  Psi=0.707');
   if isempty(N), N = 20; end;
   if isempty(Bw), Bw = [0.2 0.05]*fs;end;
   if size(Bw,2)~=2, Bw = [0.2 0.05]*fs;, end;
   if isempty(Orden), Orden = [33, 33]; end;
   if size(Orden,2)~=2, Orden= [33, 33]*fs;, end;
end;

%##########################################################################
% 2.- CARGA DE PARMETROS DEL TX
%##########################################################################

%%%%%%%%%%%% Definicin de Ctes.
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;

if exist([ruta 'paramTX.mat']),
   load([ruta 'paramTX']); % Suponemos que ya vienen validados del TX.
else
   disp('ERROR: no se encuentra el fichero de parmetros en el Receptor');
   return;
end;

frec = [parametros(pGENERAL,pRB), ...
        parametros(pIQ,pFI), ...
        parametros(pGENERAL,pFS)];
  
L    =  frec(3)/frec(1); % fs/Rb: lo necesitamos para la extraccin de 
                         %        de la informacin del fichero, aunque
                         %        la recuperacin de reloj lo calcula.
                         %---------------------------------------------
                         %   La lectura del fichero es algo intrnseco
                         % de la simulacin, por eso usamos este dato.
                         %   La recuperacin de reloj debe se capaz de 
                         % de recuperar el periodo de Reloj, por eso                         
                         % se vuelve a calcular ah.
                          
%zzzzzzzzzzz  zzzzzzzzzzzzzzzzzzzzz  zzzzzzzzzzzzzzzzzzz  zzzzzzzzzzzzzzzzz                
                         
%##########################################################################
% 3.- NIVEL FSICO DEL RECEPTOR:
%         a) Demodulacin
%         b) Recuperacin de Reloj
%##########################################################################
nivFisicoRX;

%##########################################################################
% 4.- NIVEL ENLACE DEL RECEPTOR:
%         a) Desentrelazado
%         b) Recuperacin CRC (Cdigo de Redundancia Cclica)
%##########################################################################
nivEnlaceRX

%##########################################################################
% 5.- NIVEL PRESENTACIN DEL RECEPTOR:
%        De binario a ASCII
%##########################################################################
nivPresenRX

Contact us