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') [S1,s]=generasenal(Nt,M,hiper); [S2,s]=generasenal(Nt,M,hiper); [S3,s]=generasenal(Nt,M,hiper); [S4,s]=generasenal(Nt,M,hiper); [S5,s]=generasenal(Nt,M,hiper); [S6,s]=generasenal(Nt,M,hiper); [S7,s]=generasenal(Nt,M,hiper); [S8,s]=generasenal(Nt,M,hiper); c1=sign(randn(M,1)); % genero el codigo longitud=sqrt(length(c1)); %hago que el codigo tenga energia unidad c1=c1/longitud; c2=sign(randn(M,1)); % genero el codigo longitud=sqrt(length(c2)); %hago que el codigo tenga energia unidad c2=c2/longitud; c3=sign(randn(M,1)); % genero el codigo longitud=sqrt(length(c3)); %hago que el codigo tenga energia unidad c3=c3/longitud; c4=sign(randn(M,1)); % genero el codigo longitud=sqrt(length(c4)); %hago que el codigo tenga energia unidad c4=c4/longitud; c5=sign(randn(M,1)); % genero el codigo longitud=sqrt(length(c5)); %hago que el codigo tenga energia unidad c5=c5/longitud; c6=sign(randn(M,1)); % genero el codigo longitud=sqrt(length(c6)); %hago que el codigo tenga energia unidad c6=c6/longitud; c7=sign(randn(M,1)); % genero el codigo longitud=sqrt(length(c7)); %hago que el codigo tenga energia unidad c7=c7/longitud; c8=sign(randn(M,1)); % genero el codigo longitud=sqrt(length(c8)); %hago que el codigo tenga energia unidad c8=c8/longitud; for k=1:Nt SS1(:,k)=c1*S1(1,k); %genero una matriz con los simbolos codificados que voy a ttir end for r=1:Nt SS2(:,r)=c2*S2(1,r); %genero una matriz con los simbolos codificados que voy a ttir end for a=1:Nt SS3(:,a)=c3*S3(1,a); %genero una matriz con los simbolos codificados que voy a ttir end for b=1:Nt SS4(:,b)=c4*S4(1,b); %genero una matriz con los simbolos codificados que voy a ttir end for c=1:Nt SS5(:,c)=c5*S5(1,c); %genero una matriz con los simbolos codificados que voy a ttir end for d=1:Nt SS6(:,d)=c6*S6(1,d); %genero una matriz con los simbolos codificados que voy a ttir end for f=1:Nt SS7(:,f)=c7*S7(1,f); %genero una matriz con los simbolos codificados que voy a ttir end for z=1:Nt SS8(:,z)=c8*S8(1,z); %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) q H=matrizcanalzp(h,L,M); XX=H*T*F*(SS1+SS2+SS3+SS4+SS5+SS6+SS7+SS8); %señal que ttito XX1=H*T*F*(S1+S2+S3+S4+S5+S6+S7+S8); 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=c1'*ZZ; %señal demodulada ber1=calculaber(S1(1,:),CC); ber2=calculaber(S1,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'); e-REdING. Biblioteca de la Escuela Superior de Ingenieros de Sevilla.


ESTUDIO DE UN SISTEMA OFDM-CDMA

: Gallardo Moreno, Juan Pablo
: Ingeniería Telecomunicación
Contenido del proyecto: