%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% IMPLEMENTACIÓN MODELOS 5G
%Propósito de la función: generar cada uno de los gráficos requeridos
%Autor: Félix Parca
%Fecha: Octubre de 2021
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

close all,clc
format short

%% 1) Llamado a función establecimiento de parámetros a simular

parametros=defParametros();%Proceso de carga de parámetros de simulación


% ********************************************************************
%% GENERACIÓN DE GRÁFICOS RESPUESTA FILTROS FORMAS DE ONDA OFDM Y FBMC 
% ********************************************************************

%% 1)Generación gráfico respuesta filtros OFDM y FBMC 
% (Fig.28)
disp('*******************PROCESO DE CREACIÓN DE RESPUESTA DE FILTROS*******************')
pGraf.Titulo1="Figura 23. Pulso conformador FBMC vs OFDM";
pGraf.Titulo2="Figura 28. Comparación respuesta en frecuencia filtros FBMC vs OFDM";
graficoFiltros(parametros,pGraf);%Llamado a función encargada de generar gráfico con respuesta de filtros
disp('-> Fig. 28 CREADA (Comparación respuesta en frecuencia filtros FBMC vs OFDM')
disp('------------------------------------------------------------------------')

% **************************************************************
%% GENERACIÓN DE GRÁFICOS PSD PARA LAS DIFERENTES FORMAS DE ONDA 
% **************************************************************
disp('***********************PROCESO DE CREACIÓN GRÁFICOS PSD*************************')
%% 2) Generación gráfico PSD OFDM y FBMC
% (Fig. 29)

pGraf.Titulo1="Figura 29. Comparación emisión fuera de banda sistema FBMC vs OFDM";
pGraf.yLim=[-180 10];

graficoPSD(parametros,["OFDM","FBMC"],pGraf);
disp('-> Fig. 29 CREADA (Comparación emisión fuera de banda sistema FBMC vs OFDM)')
disp('------------------------------------------------------------------------')

%% 3) Generación gráfico PSD OFDM y UFMC
% (Fig. 39)

pGraf.Titulo1="Figura 39. Comparación emisión fuera de banda sistema UFMC vs OFDM";
pGraf.yLim=[-95 10];

graficoPSD(parametros,["OFDM","UFMC"],pGraf);
disp('-> Fig. 39 CREADA (Comparación emisión fuera de banda sistema UFMC vs OFDM)')
disp('------------------------------------------------------------------------')

%% 4) Generación gráfico PSD OFDM, FBMC y UFMC
% (Fig. 41)

pGraf.Titulo1="Figura 41. Comparación emisión fuera de banda OFDM, FBMC y UFMC";
pGraf.yLim=[-180,10];

graficoPSD(parametros,["OFDM","FBMC","UFMC"],pGraf);
disp('-> Fig. 41 CREADA (Comparación emisión fuera de banda OFDM, FBMC y UFMC)')
disp('------------------------------------------------------------------------')

%% 5) Generación gráfico PSD OFDM, GFDM
% (Fig. 55)

pGraf.Titulo1="Figura 55. Comparación emisión fuera de banda GFDM y OFDM";
pGraf.yLim=[-65,10];

graficoPSD(parametros,["OFDM","GFDM"],pGraf);
disp('-> Fig. 55 CREADA (Comparación emisión fuera de banda GFDM y OFDM)')
disp('------------------------------------------------------------------------')

%% 6) Generación gráfico PSD OFDM, FBMC, UFMC, GFDM
% (Fig. 57)

pGraf.Titulo1="Figura 57. Comparación emisión fuera de banda OFDM, FBMC, UFMC, GFDM";
pGraf.yLim=[-180,10];

graficoPSD(parametros,["OFDM","FBMC","UFMC","GFDM"],pGraf);
disp('-> Fig. 57 CREADA (Comparación emisión fuera de banda OFDM, FBMC, UFMC, GFDM)')
disp('------------------------------------------------------------------------')

% **************************************************************
%% GENERACIÓN DE GRÁFICOS BER PARA LAS DIFERENTES FORMAS DE ONDA 
% **************************************************************
disp('***********************PROCESO DE CREACIÓN GRÁFICOS BER*************************')
%% 7) Generación gráfico BER FBMC vs OFDM
% (Fig. 27)

pGraf.Titulo1="Figura 27. Comparación desempeño BER entre FBMC y OFDM";
pGraf.yLim=[1e-6,1e-1];
graficoBER(parametros,["OFDM","FBMC"],pGraf);
disp('-> Fig. 27 CREADA (Comparación desempeño BER entre FBMC y OFDM)')
disp('------------------------------------------------------------------------')

%% 8) Generación gráfico BER UFMC vs OFDM
% (Fig. 40)

pGraf.Titulo1="Figura 40. Comparación desempeño BER entre UFMC y OFDM";
pGraf.yLim=[1e-6,1e-1];
graficoBER(parametros,["OFDM","UFMC"],pGraf);
disp('-> Fig. 40 CREADA (Comparación desempeño BER entre UFMC y OFDM)')
disp('------------------------------------------------------------------------')

% 9) Generación gráfico BER OFDM vs FBMC vs UFMC
%(Fig. 42)

pGraf.Titulo1="Figura 42. Comparación desempeño BER OFDM, FBMC y UFMC";
pGraf.yLim=[1e-6,1e-1];
graficoBER(parametros,["OFDM","FBMC","UFMC"],pGraf);
disp('-> Fig. 42 CREADA (Comparación desempeño BER OFDM, FBMC y UFMC)')
disp('------------------------------------------------------------------------')

% 10) Generación gráfico BER OFDM vs GFDM
%(Fig. 54)

pGraf.Titulo1="Figura 54. Comparación desempeño BER OFDM y GFDM";
pGraf.yLim=[1e-6,1.2e-1];
graficoBER(parametros,["OFDM","GFDM"],pGraf);
disp('-> Fig. 54 CREADA (Comparación desempeño BER OFDM y GFDM)')
disp('------------------------------------------------------------------------')

% 11) Generación gráfico BER OFDM, FBMC, UFMC, GFDM
%(Fig. 56)

pGraf.Titulo1="Figura 56. Comparación desempeño BER OFDM, FBMC, UFMC, GFDM";
pGraf.yLim=[1e-6,1.2e-1];
graficoBER(parametros,["OFDM","FBMC","UFMC","GFDM"],pGraf);
disp('-> Fig. 56 CREADA (Comparación desempeño BER OFDM, FBMC, UFMC, GFDM)')
disp('------------------------------------------------------------------------')
