function simulacion44

Nt=1000;
L=16;
M=64;
w=[0 2 4 6 8 10 12 14 16 18];
B=1;
hiper=0;
Es=1;
K=length(w);
ejex1CDMA=zeros(1,9);
ejey1CDMA=zeros(1,9);
ejex2CDMA=zeros(1,9);
ejey2CDMA=zeros(1,9);
ejex1OFDM=zeros(1,9);
ejey1OFDM=zeros(1,9);
ejex2OFDM=zeros(1,9);
ejey2OFDM=zeros(1,9);
load('C:\Documents and Settings\Juan Pablo\Escritorio\pfdc\pfdc OFDM\PRUEBA\canales.mat')
[S,s]=generasenal(Nt,M,hiper);
c=sign(randn(M,1));                         % genero el codigo
longitud=sqrt(length(c));           %hago que el codigo tenga energia unidad
c=c/longitud;
for k=1:Nt
    SS(:,k)=c*S(1,k);                %genero una matriz con los simbolos codificados que voy a ttir
end
i=1;
F=matrizifft(L,M);
T=matrizTzp(L,M);
for q=1:10
h=canal(:,q)
H=matrizcanalzp(h,L,M);
XX=H*T*F*SS; %señal que ttito
XX1=H*T*F*S;


    
for g=1:100
    for snr=0:5:40
            No=1/10^(snr/10);
            P=L+M;
            sigma=sqrt(No/2);          
            ni=randn(P,Nt);
            nq=randn(P,Nt);
            N=sigma.*(ni+i.*nq);
            YY=XX+N;                        %señal que recibo
            YY1=XX1+N;
            ZZ=pinv(H*T*F)*YY;
            ZZ1=pinv(H*T*F)*YY1;
            CC=c'*ZZ;                      %señal demodulada
            ber1=calculaber(S(1,:),CC);
            ber2=calculaber(S,ZZ1);
            ejexCDMA(i)=snr;
            ejeyCDMA(i)=ber1;
            ejexOFDM(i)=snr;
            ejeyOFDM(i)=ber2;
            i=i+1;
           
    end
    
    ejex1CDMA=ejex1CDMA+ejexCDMA;
    ejey1CDMA=ejey1CDMA+ejeyCDMA;
    
    ejex1OFDM=ejex1OFDM+ejexOFDM;
    ejey1OFDM=ejey1OFDM+ejeyOFDM;
    i=1;
end
    ejex1CDMA=ejex1CDMA/100;
    ejey1CDMA=ejey1CDMA/100;
    ejex1OFDM=ejex1OFDM/100;
    ejey1OFDM=ejey1OFDM/100;
    ejex2CDMA=ejex2CDMA+ejex1CDMA;
    ejey2CDMA=ejey2CDMA+ejey1CDMA;
    ejex2OFDM=ejex2OFDM+ejex1OFDM;
    ejey2OFDM=ejey2OFDM+ejey1OFDM;
end
ejex2CDMA=ejex2CDMA/10;
ejey2CDMA=ejey2CDMA/10;
ejex2OFDM=ejex2OFDM/10;
ejey2OFDM=ejey2OFDM/10;
    
    
    semilogy(ejex2CDMA,ejey2CDMA,'ro-') %cdma EN ROJO
    grid;
    xlabel('Es/No');
    ylabel('Ber');
    hold on
    semilogy(ejex2OFDM,ejey2OFDM,'bd-') %ofdm EN AZUL
    grid;
    xlabel('Es/No');
    ylabel('Ber');
