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.

extraeSignal.m
function [binario, signal] = extraeSignal(ruta, ptoObsv, nTrama,...
                                            bitsTrama, frec, retardo)

%------------------------------------------------------------------------
%|  [[binario, signal] = extraeSignal(ruta, ptoObsv, nTrama,...
%|                                            bitsTrama, frec, retardo)
%------------------------------------------------------------------------
%|    Funcin que realiza la representacin en pantalla de los ptos.
%|  de Observacin deseados.
%|
%|       NO REALIZA VALIDACIN DE PARMETROS DE ENTRADA
%|
%|    Entradas:
%|       1.- RUTA        = cadena de caracteres la ruta de los ficheros 
%|       2.- PTOS. OBSV  = entero con el pto. de observacin a ver 
%|                        1 : TX: Salida 
%|                        2 : TX: Linea I
%|                        3 : TX: Linea Q
%|                        4 : TX: Modulada I
%|                        5 : TX: Modulada Q
%|                        6 : RX: Decisor
%|                        7 : RX: Linea
%|                        8 : RX: Portadora
%|                        9 : RX: Out Divisor
%|                       10 : RX: In Divisor
%|                       10 : RX: Salida PLL
%|                       11 : RX: Error PLL
%|                       12 : RX: Comp. Fases PLL 
%|                       13 : RX: Fase Estimada por lazo del PLL
%|                       14 : RX: Seal de Referencia del PLL
%|                       15 : TX: Seal de salida sin ruido
%|
%|       3.- N_TRAMA     = entero con el nmero de trama a representar
%|       4.- BITS_TRAMA  = n de bits/trama
%|       5.- FREC        = vector fila [Rb fi fs].
%|       6.- RETARDO     = entero con el retardo de la seal
%-------------------------------------------------------------------------
%   Autor: Cesar Delgado
%   Fecha: 19-Abril-2.004
%------------------------------------------------------------------------

% 1.- Declaracion de Variables
%-----------------------------
% >>> 1.1.- Constantes
pSIGNAL = 2; % Fichero de muestras
pTRAMA  = 1; % Fichero de bits
nMuestras = bitsTrama*(frec(3)/frec(1));% N muestras/bit = fs/Rb

% >>> 1.2.- Ficheros donde se almacenan los ptos. de obsv.
ficheros = {'out.tx'; 'LineaI.tx'; 'LineaQ.tx'; 'OutI.tx'; 'OutQ.tx'; ...
      'decisor.rx'; 'Linea.rx'; 'carrier.rx'; 'outDivisor.rx'; 'inDivisor.rx'; ...
      'outPLL.rx'; 'errorPLL.rx'; 'desfasePLL.rx'; 'faseEstimada.rx'; 'refPLL.rx'; ...
      'cons.tx'};

% >>> 1.3.- Pto. Obsv. escogido
file1 = char(ficheros(ptoObsv));


% 2.- Comprobacion de que se ha TX algo
%--------------------------------------
% >>> 2.1.- Queremos ver RX (RX + pto. Obsv>5): 
%               debe existir fichero de tramas del RX
if ptoObsv> 5 & exist([ruta 'tramas.rx']),
   file2 = 'tramas.rx';
   
% >>> 2.2.- Queremos ver TX (TX + pto. Obsv<5): 
%               debe existir fichero de tramas del TX
elseif exist([ruta 'tramas.tx']),         
   file2 = 'tramas.tx';

% >>> 2.3.- Queremos ver RX del laboratorio (RX + pto. Obsv<5): 
%               debe existir fichero de tramas del TX
elseif exist([ruta 'tramas.rx']),
   file2 = 'tramas.rx';
 
% >>> 2.4.- Error, no hay fichero de tramas
else
     uiwait(errordlg('ERROR VISUALIZANDO SEAL: no existe trama en el RX asociada al pto. de visualizacin escogido. Se tomar la trama del TX. - extraeSignal'));
     binario =[];
     return;
 end;


% 3.- Cargamos Seal a Visualizar
%----------------------------------
if exist([ruta file1]),
     % 3.1.- Cargamos Seal
      signal  = cargar(ruta,file1, 1, nMuestras, pSIGNAL, nTrama, retardo);
      
       % 3.2.- Encontramos 1er flanco, lo que nos da el retardo
      if (retardo < 0),           
         aux1 = find(signal>=0);
         aux2 = find(signal<=0);
         
         % Flanco ha de quedar entre la muestra 1 y la Lbit
         if aux1(1)>1 & aux1(1)<nMuestras,
             retardo = aux1(1)-2;
             signal  = cargar(ruta,file1, 1, nMuestras, pSIGNAL, nTrama, retardo);
         end;
         if aux2(1)>1 & aux2(1)<nMuestras,
             retardo = aux2(1)-2;
             signal  = cargar(ruta,file1, 1, nMuestras, pSIGNAL, nTrama, retardo);            
         end;            
     end;
else, % Caso atipico: solo si existe algun error de ejecucion
      uiwait(errordlg('ERROR VISUALIZANDO SEAL: no existe el pto. de observacin escogido - extraeSignal'));
      signal=[];
      return;
end;

% 3.- Cargamos la secuencia de bits asociada a la seal
%-------------------------------------------------------
binario = cargar(ruta,file2, 1, bitsTrama, pTRAMA, nTrama);
      
if (length(binario)==0),
   binario = cargar(ruta,'tramas.tx', 1, bitsTrama, pTRAMA, nTrama);      
end;





   
   

Contact us