%%% Este seria el sistema para OFDM-CDMA usando ZP en el caso mas simple %%% es decir ttiendo un solo simbolo a la vez y usando codigos aleatorios %parametros Nt=1000; L=16; M=64; w=[0 2 4 6 8 10 12 14 16 18]; B=1; hiper=0; %ahora empezamos Es=1; K=length(w); ejex1=zeros(1,9); ejey1=zeros(1,9); ejex2=zeros(1,9); ejey2=zeros(1,9); [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); load('C:\Documents and Settings\Juan Pablo\Escritorio\pfdc\pfdc OFDM\PRUEBA\canales.mat') for q=1:10 h=canal(:,q); H=matrizcanalzp(h,L,M); XX=H*T*F*SS; %señal que ttito 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 ZZ=pinv(H*T*F)*YY; CC=c'*ZZ; %señal demodulada ber=calculaber(S(1,:),CC); ejex(i)=snr; ejey(i)=ber; i=i+1; end ejex1=ejex1+ejex; ejey1=ejey1+ejey; i=1; end ejex1=ejex1/100; ejey1=ejey1/100; ejex2=ejex2+ejex1; ejey2=ejey2+ejey1; end ejex2=ejex2/10; ejey2=ejey2/10; semilogy(ejex2,ejey2,'ro-') % canales a en rojo grid; xlabel('Es/No'); ylabel('Ber'); hold on load canales_b for q=1:10 h=canal_b(:,q); H=matrizcanalzp(h,L,M); XX=H*T*F*SS; %señal que ttito 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 ZZ=pinv(H*T*F)*YY; CC=c'*ZZ; %señal demodulada ber=calculaber(S(1,:),CC); ejex(i)=snr; ejey(i)=ber; i=i+1; end ejex1=ejex1+ejex; ejey1=ejey1+ejey; i=1; end ejex1=ejex1/100; ejey1=ejey1/100; ejex2=ejex2+ejex1; ejey2=ejey2+ejey1; end ejex2=ejex2/10; ejey2=ejey2/10; semilogy(ejex2,ejey2,'gh-') % canales b en verde grid; xlabel('Es/No'); ylabel('Ber'); hold on load canales_c for q=1:10 h=canal_c(:,q); H=matrizcanalzp(h,L,M); XX=H*T*F*SS; %señal que ttito 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 ZZ=pinv(H*T*F)*YY; CC=c'*ZZ; %señal demodulada ber=calculaber(S(1,:),CC); ejex(i)=snr; ejey(i)=ber; i=i+1; end ejex1=ejex1+ejex; ejey1=ejey1+ejey; i=1; end ejex1=ejex1/100; ejey1=ejey1/100; ejex2=ejex2+ejex1; ejey2=ejey2+ejey1; end ejex2=ejex2/10; ejey2=ejey2/10; semilogy(ejex2,ejey2,'kp-') % canales c en negro grid; xlabel('Es/No'); ylabel('Ber'); hold on load canales_e for q=1:10 h=canal_e(:,q); q H=matrizcanalzp(h,L,M); XX=H*T*F*SS; %señal que ttito 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 ZZ=pinv(H*T*F)*YY; CC=c'*ZZ; %señal demodulada ber=calculaber(S(1,:),CC); ejex(i)=snr; ejey(i)=ber; i=i+1; end ejex1=ejex1+ejex; ejey1=ejey1+ejey; i=1; end ejex1=ejex1/100; ejey1=ejey1/100; ejex2=ejex2+ejex1; ejey2=ejey2+ejey1; end ejex2=ejex2/10; ejey2=ejey2/10; semilogy(ejex2,ejey2,'b+-') % canales e 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: