clear all, clc
ruta = 'D:\Estudios\UPM Superior\4Teleco\2Cuatrimestre\Lab. Trat. Dig. Seal\BPSK\Cdigo\Ficheros\test\';
%%%%%%%%%%%% Definicin de Ctes.
pENTRE = 1; pFILA = 1; pCOL = 2;
pCRC = 2; pTRAMO = 1; pCODE = 2;
fINFO = 0; fTRAMA = 1; fSIGNAL = 2;
parametros = [14, 10; 7, 4];
metodo = 'hamming';
fichero = {'test1.mat','test2.mat','test3.mat','test4.mat'};
opcion = 1;
contMUESTRA = 1; % Contador de Muestras
MUESTRAS_BIT = 3; % N muestras/bit
muestraANT = 4; % Muestra Anterior
ESTADO = 5; % Banera: 0 = recuperacin sincronismo; 1 = recepcin trama
valorUNO = 6; % Voltaje que se le asigna al "1" lgico
valorMUESTRA = 7; % Suma de los voltajes de las muestras en 1 smbolo
contCAB = 8; % N que especificael nmero de bits de la cabecera BOF rx.
posCAB = 9; % Donde comenzamos a guardar la 1 cabecera BOF
BOD = [1 1 0 0 1 1 0 0];
contMUESTRA = 1; % Contador de Muestras
MUESTRAS_BIT = 3; % N muestras/bit
muestraANT = 4; % Muestra Anterior
ESTADO = 5; % Indica el estado del automata
trama = [];
BOD = [1 1 0 0 1 1 0 0];
pFILTRO = 1;
pVCO = 2;
pBAUDIO = 3;
valorUNO = 6;
%zzzzzzzzz zzzzzzzzzzzzzzzzzzzzz zzzzzzzzzzzzzzzzzzz zzzzzzzzzzzzzzzz
%x(1:2:250) = ones(1,125);
x = [0 1 0 0 1 1 1 1 0 0 0 1 0 1 0 1 0 1 0 1];
theta = pi/8;
phi = [0 0.001 0];
SNR = 25;
L= 10;
pulso = [1,1,0];
memoria = zeros(3,16);
memoria(pBAUDIO,ESTADO)= 4; %Estado de Rx Trama
memoria(pBAUDIO,valorUNO)=5;
%trama = ReceptorLab(ruta, 1);
%for k = 1:3
% [I(k,:),Q(k,:)] = bpsk_mod(x,L,SNR, pulso(k), theta, phi(k));
% subplot(3,2,1); plot(I); title('Seal I'); grid on;
% subplot(3,2,2); plot(Q); title('Seal Q'); grid on;
% I2 = xcorr(I,I);
% I2 = fftshift(fft(I2));
% subplot(3,2,3); plot(10*log10(abs(I2))); grid on;
% Q2 = xcorr(Q,Q);
% Q2 = fftshift(fft(Q2));
% subplot(3,2,4); plot(10*log10(abs(Q2))); grid on;
% subplot(3,1,3); plot(I,Q,'.'); title('Constelacion'); grid on;
% pause
%end;
load([ruta 'test2.mat']);
trama = [];
supertrama = [];
fase = 0;
fase_anterior = 0;
error_fase_bpsk = 0;
error_fase_bpsk_anterior = 0;
Yn_anterior = 0; q = []; i = []; evolucion_fase = [];
evolucion_error_fase_bpsk = [];
estimada = 0;
for g = 1:1,
for k=1:length(I)/2,
% [aux, memoria, IQc(g,k), decisor(g,k)] = ...
% sincroBaudio(I(g,k),Q(g,k), L, memoria);
% trama = [trama aux];
[decisor(g,k), IQc(g,k), memoria]= sincroFase(I(g,k),Q(g,k),memoria);
%%%%%%%%%% Constantes
%pVCO = 2; pMEM = 1;
% 1.- Bucle
%----------
%>>> 1.1.- Seal de Entrada
%IQ = I+j.*Q;
%>>> 1.2.- Seal proyectada sobre el eje I
%y = IQ.*exp(-j*memoria(pVCO,pMEM));
%>>> 1.3.- Ubicamos la constelacion sobre I
%Io = real(y);
%Qo = imag(y);
%IQo = (Io+j.*Qo);
%IQc = IQo .* exp(-j.*Qo/Io);
%>>> 1.4.- Fase estimada para la siguiente iteracion
%[memoria] = lazoSincroFase(Qo/Io,memoria);
%>>> 1.5.- Decisor: solo estima la seal I
%decisor = 5.*(real(IQc)>0);
% senial_compleja=I(k)+j*Q(k);
% senial_compleja_comp_frecuencia=senial_compleja*exp(-j*fase);
% Io=real(senial_compleja_comp_frecuencia);
% Qo=imag(senial_compleja_comp_frecuencia);
% [fase,error_fase_bpsk,Yn]=sinc_fase(Io,Qo,fase_anterior,error_fase_bpsk_anterior,Yn_anterior);
% senial_compensada=(Io+j*Qo)*exp(-j*error_fase_bpsk);
% i=[i real(senial_compensada)];
% q=[q imag(senial_compensada)];
% evolucion_fase=[evolucion_fase fase];
% evolucion_error_fase_bpsk=[evolucion_error_fase_bpsk error_fase_bpsk];
% faseEstimada(g,k) = memoria(2,1);
% errorFase(g,k) = memoria(1,1);
end;
%if length(trama)< length(supertrama),
% trama = [zeros(1,length(supertrama)-length(trama)) trama];
%end;
% trama = trama(1:20);
% supertrama = [supertrama; trama;];
% trama = [];
end;
%IQc = i;
%supertrama = supertrama;
subplot(1,1,1);
plot(real(IQc));
title('PLL');
grid on; hold on;
plot(I(1,1:length(I)/2),'r');
%bar(5:L:length(I),supertrama(1,:));
hold off;
zoom on
drawnow
%subplot(3,1,2);
% plot(real(IQc(2,:)));
% grid on; hold on;
% plot(I(2,:),'r');
% bar(5:L:length(I),supertrama(2,:));
% hold off;
% drawnow
%subplot(3,1,3);
% plot(real(IQc(3,:)));
% grid on; hold on;
% plot(I(3,:),'r');
% bar(5:L:length(I),supertrama(3,:));
% hold off;
% drawnow