%======================================================================== % El usuario selecciona por teclado una simulación de entre ocho opciones % posibles. %======================================================================= close all; clear; clc; i = 1 ; % Indica el número de iteraciones transcurridas fprintf('************* Bienvenido al simulador de sistema OFDMA/SCFDMA. Por favor, seleccione una de las siguientes opciones: ********************\n\n') fprintf('.............1.Dibujar Señal OFDMA en tiempo y frecuencia\n') fprintf('.............2.Dibujar constelación e histograma de la señal OFDMA a la salida del SSPA en función de la IBO \n') fprintf('.............3.Dibujar Señal OFDMA a la salida del SSPA en tiempo y frecuencia\n') fprintf('.............4.Dibujar Señal SCFDMA en tiempo y frecuencia\n') fprintf('.............5.Dibujar constelación e histograma de la señal SCFDMA a la salida del SSPA en función de la IBO \n') fprintf('.............6.Dibujar Señal SCFDMA a la salida del SSPA en tiempo y frecuencia\n') fprintf('.............7.Simulación CCDF del PAPR para OFDMA y SCFDMA \n') fprintf('.............8.Dibujar función de transferencia SSPA \n') fprintf('.............Pulse cualquier otra tecla para salir del programa \n\n') flag=input('.................. '); %%%%%%%%%%%%%% 1.Dibujar Señal OFDMA en tiempo y frecuencia %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% if(flag == 1) SYS=parametros(flag); [s_n,simbolos,PAPR]=transmisor(SYS); s_n_SSPA = sspa(s_n,SYS,i); [rkl,MER] = receptor(s_n,SYS,simbolos); grafica(s_n,SYS,simbolos,rkl,i,flag); end %%%%%%%%%%%% 2.Dibujar constelación e histograma de la señal OFDMA tras el SSPA en función de la IBO %%%%%%%%%%%%%%%%%%%%%%%% if(flag == 2) SYS=parametros(flag); SYS.simulaciones=3; [s_n,simbolos,PAPR]=transmisor(SYS); j=1; while (j<=2) figure(); for i=1:SYS.simulaciones s_n_SSPA = sspa(s_n,SYS,i); [rkl,MER] = receptor(s_n_SSPA,SYS,simbolos); grafica(s_n,SYS,simbolos,rkl,i,flag,s_n_SSPA); SYS.IBO(i+1)=SYS.IBO(i)+3; end j=j+1; SYS.p=256; end end %%%%%%%%%%%% 3 y 6. Dibujar OFDMA/SCFDMA tras el SSPA en tiempo y frecuencia %%%%%%%%%%%%%%%%%%%%%%%% if(flag==3)||(flag==6) SYS = parametros(flag); SYS.simulaciones=3; j=1; if(flag==3) [s_n,simbolos,PAPR] = transmisor(SYS); else [s_n,simbolos,PAPR] = transmisor_scfdma(SYS); end while (j<=2) for i=1:SYS.simulaciones s_n_SSPA = sspa(s_n,SYS,i); if(flag==3) [rkl,MER] = receptor(s_n_SSPA,SYS,simbolos); else rkl = receptor_scfdma(SYS,s_n_SSPA,simbolos); end grafica(s_n,SYS,simbolos,rkl,i,flag,s_n_SSPA); end j=j+1; SYS.p=256; end end %%%%%%%%%%%%%% 4.Dibujar Señal SC-FDMA en tiempo y frecuencia %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% if (flag==4) SYS = parametros(flag); [s_n,simbolos,PAPR] = transmisor_scfdma(SYS); [rkl,MER] = receptor_scfdma(SYS,s_n,simbolos); grafica(s_n,SYS,simbolos,rkl,i,flag) end %%%%%%%%%%%% 5.Dibujar constelación e histograma de la señal SCFDMA a la salida del SSPA en función de la IBO %%%%%%%%%%%%%%%%%%%%%%%% if(flag == 5) SYS=parametros(flag); SYS.simulaciones=3; [s_n,simbolos,PAPR] = transmisor_scfdma(SYS); j=1; while (j<=2) figure(); for i=1:SYS.simulaciones s_n_SSPA = sspa(s_n,SYS,i); rkl = receptor_scfdma(SYS,s_n_SSPA,simbolos); grafica(s_n,SYS,simbolos,rkl,i,flag,s_n_SSPA); SYS.IBO(i+1)=SYS.IBO(i)+3; end j=j+1; SYS.p=256; end end %%%%%%%%%%%% 7.Simulación CCDF del PAPR para OFDMA y SCFDMA %%%%%%%%%%%% if(flag == 7) simulaciones=10^3; vector_PAPR=zeros(simulaciones,1); SYS=parametros(flag); for i=1:simulaciones [s_n,simbolos,PAPR]=transmisor(SYS); vector_PAPR(i,1)=PAPR; end [ccdf1,rango1]=calcular_ccdf(vector_PAPR); flag=8; SYS=parametros(flag); for i=1:simulaciones [s_n,simbolos,PAPR]=transmisor_scfdma(SYS); vector_PAPR(i,1)=PAPR; end [ccdf2,rango2]=calcular_ccdf(vector_PAPR); flag=9; SYS=parametros(flag); for i=1:simulaciones [s_n,simbolos,PAPR]=transmisor_scfdma(SYS); vector_PAPR(i,1)=PAPR; end [ccdf3,rango3]=calcular_ccdf(vector_PAPR); figure(1) semilogy(rango1,ccdf1,rango2,ccdf2,rango3,ccdf3) grid on; legend('OFDMA','DFDMA','LFDMA',3); title({' CCDF de la PAPR con esquema de modulación y número de portadoras por usuario' SYS.N}) xlabel('PAPR (dB)') ylabel('P(PAPR>x)') ylim([10^-4 10^0]) end %%%%%%%%%%%% 10.Dibujar función de transferencia SSPA %%%%%%%%%%%% if (flag==8) amplificador(); end