% COMUNICACIONES DIGITALES
% Tema 1
% Ejemplo de Sistema Equivalente Paso Bajo
% Curso 2015-2016

%   Copyright (c) 2013 G.T.A.S. (Grupo Tratamiento Avanzado de Señal)
%                 DICOM Universidad de Cantabria
%	Fecha   : Febrero 2013.
%	Version : 1.1


L=4;   % Número de muestras/símbolo
Rs=1;   % Régimen de símbolo
fs=L*Rs;    % Frecuencia de muestreo

N=100;  % Longitud de la secuencia de símbolos a transmitir
M=4;  % Número de símbolos en la constelación: p.e. M=16 en 16QAM

roll_off=0.25;  
L_SQRRC=8;  % Retardo (en símbolos) del filtro SQRRC 


%% TRANSMISOR
bits=randi([0 1],N,log2(M));    % Generación de bits aleatorios
a=qammod(bi2de(bits),M);    % Mapeador M-QAM
aL=[];aL(1:L:N*L)=a;
htx=rcosine(Rs,fs,'sqrt',roll_off,L_SQRRC);
x=conv(aL,htx);

%% CANAL (equivalente paso bajo)

hceq=[1];   % Canal ideal
%hceq=[1 0.6-0.2*1i 0.3+0.2*1i 0.1+0.1*1i -0.1+0.2*1i 0.1-0.1*1i]   % Canal no ideal
retardo_canal=round(grpdelay(hceq,1,1));   % Calcula el retardo del canal
r=conv(x,hceq);

%% Ruido e imperfecciones

%SNR=20;r=awgn(r,SNR,'measured');
%Error_fase=20;r=r.*exp(1i*Error_fase*pi/180); 

%% RECEPTOR

z=conv(r,htx);  % Filtro receptor
n0=2*L*L_SQRRC+retardo_canal+1;  % Sincronismo de símbolo: muestra correspondiente al observable del 1er símbolo
zn=z(n0+(0:N-1)*L); % Observables


%% PLOTS

figure(1)
subplot(241);plot(a,'ro','LineWidth',3);axis square;title('Constelación TX')
subplot(245);plot(zn,'.');axis square;title('Constelación RX')

subplot(442);plot(real(x));title('x_I(t)')
subplot(446);plot(imag(x));title('x_Q(t)')

subplot(4,4,10);plot(real(z));title('z_I(t)')
subplot(4,4,14);plot(imag(z));title('z_Q(t)')

subplot(243);plot(x);axis square;title('Diagrama I-Q TX')
subplot(247);plot(z);axis square;title('Diagrama I-Q RX')

subplot(244);dep(x,1024,fs);title('DEP Señal TX')
subplot(248);dep(r,1024,fs);title('DEP Señal RX')




