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.

extraeSignal(ruta, ptoObsv, nTrama,...
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 at files@mathworks.com