function sistema (Nt,L,M,h,flag,recep,w,hiper)  

%PARAMETROS:
% w=vector que se pasara por la linea de comando con los valores de Eb/No para la grafica.
% Nt=nro de supersimbolos a ttir.
% L=longitud del CP o del ZP.
% M=nro de portadoras a utilizar (nro de ptos de la FFT)
%Flag: bandera binaria para indicar la eleccion de ZP o CP. 
%si Flag=0 entonces utilizaremos las matrices de CP en otro caso seran las decp ZP.
%recep: bandera binaria para indicar la eleccion del receptor ZF o MSSE. 
%si recep=0 entonces utilizaremos las matrices de ZF  en otro caso seran las de MSSE.
        
FrameLength=1;  %nro de tramas que viajan por el canal.
Es=1;
K=length(w);
%ESTA ES LA PARTE DEL CODIGO DE CHANNELHL2 Q CALCULA LOS COEFICIENTES DEL CANAL Y Q VAN EN h.
                      
for i=1:K
    denom=10^(w(i)/10);
    No=Es/denom;
    ruido=generaruido(L,M,Nt,No);
    %ruido=0;
    [X,sinfh,S]=transmite(Nt,L,M,h,flag,hiper);
    X=X+ruido;       
    Sest=recibe(X,L,M,flag,recep,h);
    if hiper==1
      N=52;
      for k=0:Nt-1
      ss(1:(N/2),k+1)=Sest(2:(N/2+1),k+1);
      ss((N/2+1):N,k+1)=Sest((N/2+7):(M-6),k+1);
      end
    %ss=demod4QAM(Sest,M,Nt,hiper);
    %size(ss)
      Sest=ss;
    end
    ber=calculaber(Sest,sinfh);
    ejex(i)=w(i);
    ejey(i)=ber;
end

 semilogy(ejex,ejey,'bo-')
 grid;
 xlabel('Es/No');
 ylabel('Ber');