%%% 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=2500; L=16; M=64; P=L+M; w=[0 2 4 6 8 10 12 14 16 18]; B=1; hiper=0; %ahora empezamos Es=1; K=length(w); ejex1FAST=zeros(1,9); ejey1FAST=zeros(1,9); ejex2FAST=zeros(1,9); ejey2FAST=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); Fp=matrizifft(L,P); 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 for g=1:60 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); %niOLA=randn(M,Nt); %nqOLA=randn(M,Nt); %NOLA=sigma.*(niOLA+i.*nqOLA); YY=XX+N; %señal que recibo %FAST %FAST DELTA=Fp'*H*Fp; V=Fp'*T*F; U=SS; s=V*U; Y=Fp'*YY; %Y=DELTA*s+N; Rss=(s*s')/size(s,2); DELTA1=DELTA'; Ryy=(Y*Y')/size(Y,2); Ryyinv=pinv(Ryy); Gmmse=DELTA1*inv(DELTA*DELTA1); Sest=Gmmse*Y; Uest=pinv(V)*Sest; CC=c'*Uest; ber=calculaber(S(1,:),CC); ejexFAST(i)=snr; ejeyFAST(i)=ber; i=i+1; end ejex1FAST=ejex1FAST+ejexFAST; ejey1FAST=ejey1FAST+ejeyFAST; i=1; end ejex1FAST=ejex1FAST/60; ejey1FAST=ejey1FAST/60; ejex2FAST=ejex2FAST+ejex1FAST; ejey2FAST=ejey2FAST+ejey1FAST; end ejex2FAST=ejex2FAST/10 ejey2FAST=ejey2FAST/10 semilogy(ejex2FAST,ejey2FAST,'gh-') 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: