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;