%% FUNCIÓN GRÁFICO FILTROS
%<graficoFiltros>

%PARÁMETROS DE RETORNO:
%Ninguno

%PARÁMETROS DE INGRESO:
%parametros: Estructura con parámetros de simulación
%pGraf: Estructura con parámetros gráficos

function graficoFiltros(parametros,pGraf)

%Generación de coeficientes filtro Phydyas con factor de solapamiento
%K=4 (Forma de onda FBMC)

tipoFiltro='Phydyas';
coefPhy=coefDTFiltro(parametros.numSub,tipoFiltro);%Llamado a función generadora de coeficientes según tipo de filtro

%Generación de coeficientes filtro-ventana rectangular (Forma de onda OFDM)

tipoFiltro='Rectangular';
coefRec=coefDTFiltro(parametros.numSub,tipoFiltro);

%% Definición de vectores sobre el eje "x" para representación centrada de filtros PHYDYAS y rectangular
xlimPhy=round(length(coefPhy)/length(coefRec));
xPhy=linspace(-xlimPhy/2,xlimPhy/2,length(coefPhy));
xlimRec=xlimPhy-1;%Diferencia en periodo de símbolo PHYDYAS y rectangular
xRect=linspace((-xlimPhy+xlimRec)/2,(xlimPhy-xlimRec)/2,length(coefRec));

%% Gráfico dominio temporal
pause(1),close all
figure('Name',pGraf.Titulo1,'NumberTitle','off')
hold on
%FBMC
p=plot(xPhy,coefPhy,'r');
p.LineWidth=1.2;
%OFDM
q=plot(xRect,coefRec,'b');
q.LineWidth=1.2;

%Información en gráfico respuesta temporal
xlabel('Periodo de símbolo(T)');
ylabel('Amplitud');
legend('FBMC','OFDM');
ax=gca;
ax.GridLineStyle='--';
grid on
axis([min(xPhy) max(xPhy) -0.2 1.2]);
hold off

%% Gráfico dominio frecuencial

%Para recrear la Figura 28 es requerido encontrar los coeficientes de los
%filtros PHYDYAS y ventana rectangular para una longitud de 7 muestras

M=7;% En la tésis de referencia NO grafican el filtro PHYDYAS en el DF con igual dimensión que la ventana rectangular
    % pero para propósitos comparativos se usará un filtro
    % de igual dimensión que el rectangular esperado

%Generación de coeficientes filtro PHYDYAS con factor de solapamiento
%K=4 (Forma de onda FBMC)

tipoFiltro='Phydyas';
coefPhy=coefDTFiltro(M,tipoFiltro);

%Generación de coeficientes filtro-ventana rectangular (Forma de onda OFDM)

%A partir de análisis se identificó que había sido graficado con una ventana rectangular de 7 muestras
tipoFiltro='Rectangular';
coefRec=coefDTFiltro(M,tipoFiltro);

figure('Name',pGraf.Titulo2,'NumberTitle','off')
hold on

%FBMC
fn=linspace(-0.5,0.5,parametros.tamFFT);%vector frecuencias normalizadas
wFFTPhy=fft(coefPhy,parametros.tamFFT);
yLogPhy=20*log10(abs(fftshift(wFFTPhy))/max(abs(wFFTPhy)));%Unidades logaritmicas
yLinPhy=10.^(yLogPhy/20);%unidades lineales
p=plot(fn,yLinPhy,'r');
p.LineWidth=1.2;

%OFDM
wFFTRec=fft(coefRec,parametros.tamFFT);
yLogRec=20*log10(abs(fftshift(wFFTRec))/max(abs(wFFTRec)));%Unidades logaritmicas
yLinRec=10.^(yLogRec/20);%unidades lineales
q=plot(fn,yLinRec,'b');
q.LineWidth=1.2;

%Información en gráfico respuesta frecuencial
xlabel('Frecuencia normalizada');
ylabel('Amplitud');
legend('FBMC','OFDM');
ax=gca;
ax.GridLineStyle='--';
grid on
axis([-0.5 0.5 0 1]);
hold off

end

