function S=recibe(X,L,M,flag,recep,h,codigo)

    %X:trama procedente del canal.
    %L: longitud de CP o ZP.
    %sigma:desviacion tipica.
    %h: es la salida de la funcion channelHL2.
    %M: nro. de portadoras a utilizar (nro. de puntos de la fft)----->M=64;
    %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 de 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.
        
    if flag==0
        R=generaRcp(L,M);
        
    else
        R=generaRzp(L,M);
        
    end
    
    if recep==0
        G=generaGzf(h,L,M,flag);
        Go=G*R;
        CS=Go*X;
        S=pinv(codigo)*CS;
        
    else
        G=generaGmmse(h,L,M,flag,X);
        %S=TODAVIA NO LO HE HECHO
        S=0;
    end
    
    
    
    
   

        