% smbolos son complejos b =randsrc(1,numsimb)+i*randsrc(1,numsimb);
% expansin x=kron(b,H256(12,:));
I =[1/sqrt(2)]*real(x); Q =[1/sqrt(2)]*imag(x); qpsk =I+j*Q; figure(1) plot(qpsk,'*'); axis([-1 1 -1 1]); axis('square'); ylabel('Constelacion en Transmision');
% Zero-padding I_val=zeros(1,Fs*length(I)); p=1; for k1=1:Fs:(length(I_val)-Fs+1) I_val(k1)=I(p); p=p+1; end
Q_val=zeros(1,Fs*length(Q)); p=1; for k1=1:Fs:(length(Q_val)-Fs+1) Q_val(k1)=Q(p); p=p+1; end
aux=root_coseno(Delay,R); %Raiz de Coseno alzado
p=1; for k3=1:128/Fs:(length(aux)-128/Fs) h(p)=aux(k3); p=p+1; end
If =sqrt(1/6.373)*conv(I_val,h); Qf =sqrt(1/6.373)*conv(Q_val,h);
secuencia_qpsk=If+j*Qf; Anexo 1 73
Caracterizacin Experimental de la BER en un Sistema de Comunicaciones W-CDMA root_coseno.m : funcin que implementa un filtro raz coseno alzado
function y=root_coseno(periodos,roll_off)
% Entrada: % periodos: nmero de Tsimb que contendr el coseno alzado % Devuelve la respuesta impulsiva de un filtro % raiz de coseno alzado, con los siguientes valores % % Tasa de smbolos =1.92Msimb/s
Rb=1.92*10^6; Beta=roll_off*Rb;
Tb=1/Rb; x=-periodos*Tb/2:Tb/128:periodos*Tb/2;
a=(8*Beta)*cos((Rb+2*Beta)*pi*x); for k=1:1:length(x) if(x(k)==0) b(k)=1; else b(k)=sin((Rb-2*Beta)*pi*x(k))/x(k); end end c=pi/sqrt(Rb); d=(((8*Beta*x).^2)-1);
long_colas.m: determina la longitud de las colas introducidas en la seal tras pasar por el filtro raz coseno alzado en recepcin
clear all muestras =8; % 8 muestras fchip =3.84e6; Fs =muestras*fchip; % Frecuencia de muestreo. alfa =0.22; % Factor de roll-off Long_cos=24; % Duracin, en Tsimb, del coseno alzado roll_off=0.22; % Factor de Roll_off del filtro a implementar delay =Long_cos; x =[1/sqrt(2)]*sign(randn(1,64)); % el factor 1/sqrt(2) es para que E b sea 1/2 xcomp =sign(x);
Posicion_muestreo.m: determina la posicin ptima de muestreo
clear all muestras =8; % 8 muestras fchip =3.84e6; Fs =muestras*fchip; % Frecuencia de muestreo. alfa =0.22; % Factor de roll-off Long_cos=24; % Duracin, en Tsimb, del coseno alzado roll_off=0.22; % Factor de Roll_off del filtro a implementar delay =Long_cos; x =[1/sqrt(2)]*sign(randn(1,64)); % el factor 1/sqrt(2) es para que E b sea 1/2 xcomp =sign(x);
% Zero-padding x_val=zeros(1,muestras*length(x)); i=1; for k1=1:muestras:(length(x_val)-muestras+1) x_val(k1)=x(i); i=i+1; end
aux=root_coseno(Long_cos,roll_off); % Raiz de Coseno alzado
i=1; for k3=1:128/muestras:(length(aux)-128/muestras) h(i)=aux(k3); i=i+1; end
Error=zeros(1,5); for aux =1:5 aux1=aux; for i =1:length(x) dt(i) =xrt(aux1); Anexo 1 75
Caracterizacin Experimental de la BER en un Sistema de Comunicaciones W-CDMA aux1 =aux1 +muestras; end dt; dc =sign(dt); error =xcomp-dc; error2=x-dt; Error(aux)=sum(abs(error2))/length(error2); end
valor=min(Error); Posicion_optima=0; for a=1:5 if Error(a) ==valor Posicion_optima=a end end
Canalconrruido.m: realiza una representacin grfica BER frente a E b /N 0
implementando el Sistema completo de Comunicacin
clear all numsimb =5000; muestras =8; % 8 muestras fchip =3.84e6; Fs =muestras*fchip; % Frecuencia de muestreo. Long_cos=24; % Duracin, en Tsimb, del coseno alzado roll_off=0.22; % Factor de Roll_off del filtro a implementar delay =Long_cos; llave=1;
%TRANSMISOR
I =[1/sqrt(2)]*sign(randn(1,numsimb)); Q =[1/sqrt(2)]*sign(randn(1,numsimb)); qpsk =I+j*Q; figure(1) plot(qpsk,'*'); axis([-1 1 -1 1]); axis('square'); ylabel('Constelacion en Transmision'); pause;
% Zero-padding I_val=zeros(1,muestras*length(I)); i=1; for k1=1:muestras:(length(I_val)-muestras+1) I_val(k1)=I(i); i=i+1; end
Q_val=zeros(1,muestras*length(Q)); i=1; for k1=1:muestras:(length(Q_val)-muestras+1) Q_val(k1)=Q(i); i=i+1; Anexo 1 76
Caracterizacin Experimental de la BER en un Sistema de Comunicaciones W-CDMA end
aux=root_coseno(Long_cos,roll_off); % Raiz de Coseno alzado
i=1; for k3=1:128/muestras:(length(aux)-128/muestras) h(i)=aux(k3); i=i+1; end
If =sqrt(1/6.373)*conv(I_val,h); Qf =sqrt(1/6.373)*conv(Q_val,h);
Icomp=sqrt(2)*I; Qcomp=sqrt(2)*Q; for N=1:2:2*length(qpsk) % secuencia de muestras de informacin muestr(N)=Icomp((N+1)/2); muestr(N+1)=Qcomp((N+1)/2); end;
No =0.5*10^(-0.1*EbN0); desvtip =sqrt(No/2); ruidof =desvtip*randn(1,length(If)); ruidoq =desvtip*randn(1,length(Qf)); aux1 =0; % variable auxiliar para el calculo de la BER
for N =1:length(If) % "ruidos" que se aaden a las componentes en % fase y cuadratura sectxf(N) =If(N)+ruidof(N); sectxq(N) =Qf(N)+ruidoq(N);
end;
Ir =sqrt(1/6.373)*conv(sectxf,h); Ir=transpose(Ir); Qr =sqrt(1/6.373)*conv(sectxq,h); Qr=transpose(Qr);
aux =1; for i =1:length(qpsk) Idt(i) =Irt(aux); Qdt(i) =Qrt(aux); aux =aux +muestras; end
Anexo 1 77
Caracterizacin Experimental de la BER en un Sistema de Comunicaciones W-CDMA
Idc =sign(Idt); Qdc =sign(Qdt);
for N =1:2:2*length(qpsk) % secuencia de bits recibidos secbitr(N) =Idc((N+1)/2); secbitr(N+1) =Qdc((N+1)/2); end;
for N =1:2*length(qpsk) % Calculo de la BER if secbitr(N)~=muestr(N) aux1 =aux1+1; end end;
BERQPSK(K1) =aux1/(2*length(qpsk)); K1=K1+1;
end;
vectoraux =zeros(1,5); for v=1:150
I =[1/sqrt(2)]*sign(randn(1,numsimb)); Q =[1/sqrt(2)]*sign(randn(1,numsimb));
% Zero-padding I_val=zeros(1,muestras*length(I)); i=1; for k1=1:muestras:(length(I_val)-muestras+1) I_val(k1)=I(i); i=i+1; end
Q_val=zeros(1,muestras*length(Q)); i=1; for k1=1:muestras:(length(Q_val)-muestras+1) Q_val(k1)=Q(i); i=i+1; end
aux=root_coseno(Long_cos,roll_off); %Raiz de Coseno alzado
i=1; for k3=1:128/muestras:(length(aux)-128/muestras) h(i)=aux(k3); i=i+1; end
If =sqrt(1/6.373)*conv(I_val,h); Qf =sqrt(1/6.373)*conv(Q_val,h);
Icomp=sqrt(2)*I; Qcomp=sqrt(2)*Q; for N=1:2:2*length(qpsk) %secuencia de muestras de informacin muestr(N)=Icomp((N+1)/2); muestr(N+1)=Qcomp((N+1)/2); end; Anexo 1 78
Caracterizacin Experimental de la BER en un Sistema de Comunicaciones W-CDMA K1=1; for EbN0=6:9
No =0.5*10^(-0.1*EbN0); desvtip =sqrt(No/2); ruidof =desvtip*randn(1,length(If)); ruidoq =desvtip*randn(1,length(Qf)); aux1 =0; % variable auxiliar para el calculo de la BER
for N =1:length(If) % "ruidos" que se aaden a las componentes en % fase y cuadratura sectxf(N) =If(N)+ruidof(N); sectxq(N) =Qf(N)+ruidoq(N);
end;
Ir =sqrt(1/6.373)*conv(sectxf,h); Ir=transpose(Ir); Qr =sqrt(1/6.373)*conv(sectxq,h); Qr=transpose(Qr);
Calcula_Eb.m: calcula para una secuencia con una determinada Pi cual es la energa de bit de la secuencia transmitida al canal
clear all numsimb =1000; muestras =8; % 8 muestras fchip =3.84e6; Fs =muestras*fchip; % Frecuencia de muestreo Anexo 1 81
Caracterizacin Experimental de la BER en un Sistema de Comunicaciones W-CDMA Long_cos=24; % Duracin, en Tsimb, del coseno alzado roll_off=0.22; % Factor de Roll_off del filtro a implementar delay =Long_cos-1;
%TRANSMISOR
I =sign(randn(1,numsimb)); Q =sign(randn(1,numsimb)); qpsk =I+j*Q;
% Zero-padding I_val=zeros(1,muestras*length(I)); i=1; for k1=1:muestras:(length(I_val)-muestras+1) I_val(k1)=I(i); i=i+1; end
Q_val=zeros(1,muestras*length(Q)); i=1; for k1=1:muestras:(length(Q_val)-muestras+1) Q_val(k1)=Q(i); i=i+1; end
aux=root_coseno(Long_cos,roll_off); % Raiz de Coseno alzado
i=1; for k3=1:128/muestras:(length(aux)-128/muestras) h(i)=aux(k3); i=i+1; end
If =conv(I_val,h); Qf =conv(Q_val,h);
p =[0.0682 1.8575 -0.2418 0.9550 0.0834 1.6254]; Pi =-10; % Potencia de entrada expresada en dBm opcion=1; cc1=0; cc2=0; Nsymb=numsimb; Ns=muestras;
Back_off.m: funcin que realiza una representacin grfica de BER para diferentes valores IBO
Anexo 1 82
Caracterizacin Experimental de la BER en un Sistema de Comunicaciones W-CDMA function back_off clear all numsimb =1000; muestras =8; % 8 muestras fchip =3.84e6; Fs =muestras*fchip; % Frecuencia de muestreo Long_cos=24; % Duracin, en Tsimb, del coseno alzado roll_off=0.22; % Factor de Roll_off del filtro a implementar delay =Long_cos-1;
%TRANSMISOR
I =sign(randn(1,numsimb)); Q =sign(randn(1,numsimb)); qpsk =I+j*Q;
% Zero-padding I_val=zeros(1,muestras*length(I)); i=1; for k1=1:muestras:(length(I_val)-muestras+1) I_val(k1)=I(i); i=i+1; end
Q_val=zeros(1,muestras*length(Q)); i=1; for k1=1:muestras:(length(Q_val)-muestras+1) Q_val(k1)=Q(i); i=i+1; end
aux=root_coseno(Long_cos,roll_off); % Raiz de Coseno alzado
i=1; for k3=1:128/muestras:(length(aux)-128/muestras) h(i)=aux(k3); i=i+1; end
If =conv(I_val,h); Qf =conv(Q_val,h);
for N=1:2:2*length(qpsk) % secuencia de muestras de informacin muestr(N)=I((N+1)/2); muestr(N+1)=Q((N+1)/2); end;
backoff=-13:12; BERQPSK =zeros(1,26); K1 =1;
for Potentrada =10:-1:-15
p =[0.0682 1.8575 -0.2418 0.9550 0.0834 1.6254]; Pi =Potentrada; % Potencia de entrada expresada en dBm opcion=1; Anexo 1 83
Caracterizacin Experimental de la BER en un Sistema de Comunicaciones W-CDMA cc1=0; cc2=0; Nsymb=numsimb; Ns=muestras;
EbN0 =4.419275; No =8.43*10^(-0.1*EbN0); desvtip =sqrt(No/2); ruidof =desvtip*randn(1,length(compfase)); ruidoq =desvtip*randn(1,length(compcuad)); aux1 =0; % variable auxiliar para el calculo de la BER
for N =1:length(compfase) % "ruidos" que se aaden a las componentes en % fase y cuadratura sectxf(N) =compfase(N)+ruidof(N); sectxq(N) =compcuad(N)+ruidoq(N);
end;
Ir =conv(sectxf,h); Ir=transpose(Ir); Qr =conv(sectxq,h); Qr=transpose(Qr);
% salida_amplificador(p, Pi, opcion, cc1, cc2) % % p: Vector de parametros del modelo de Chalmers para el transistor % Pi: Potencia de la seal de entrada medida en dBm % opcion: filtro en raiz de coseno alzado (opcion =1) y en coseno % alzado (opcion ~=1) % cc1: Valor en dB de correccion de la grafica de la densidad espectral % de la seal de entrada % cc2: Valor en dB de correccion de la grafica de la densidad espectral % de la seal de salida % If: componente en fase a la entrada del amplificador % Qf: componente en cuadratura a la entrada del amplificador % Nsymb: numero de simbolos % Ns: numero de muestras
VGS =-0.57; VDS =2;
Ro =50; Z0 =50;
Constante =-[cos(pi/3)+i*sin(pi/3)]/abs([cos(pi/3)+i*sin(pi/3)]); %el Amplificador es no lineal
% Potencia de entrada en Watios (argumento de entrada en dBm) PiW =10 .^(Pi/10) * 1e-3;
% Parametros de la seal modulada: % -QPSK, Rb =3.84 Mbits/s, Ns muestras/simbolo % -Conformacion del pulso: filtro en raiz de coseno alzado (opcion =1) % y en coseno alzado (opcion ~=1) % -Envolvente compleja de la seal modulada (+/- 1): k =sum(abs(If+j*Qf).^2)/length(If); Vs =sqrt(8*Ro*PiW/k); vs_t =Vs * (If+j*Qf); % Envolvente compleja de la seal modulada
% Frecuencia central de las seales: 2 GHz fo =2e9; wc =2 * pi * fo;
dT =inv(Ns * 3.84e6); % Periodo de muestreo de la envolvente compleja
% Frecuencia de corte en Ghz para el escalado de la PSD Fs =3.84e6*Ns*1e-9; Npuntos =1024;
Caracterizacin Experimental de la BER en un Sistema de Comunicaciones W-CDMA x20_t =zeros(3,1); i20_t =[0, i20_t]; aux =inv(j * dY0 - dT * Y0); for k =2:length(s_t) x20_t(:,k) =aux * (j * dY0 * x20_t(:,k-1) - dT * [0; -i20_t(k); -i20_t(k)]); end v20_t =x20_t(1,2:length(s_t)); % Envolventes complejas u20_t =x20_t(2,2:length(s_t)); w20_t =x20_t(3,2:length(s_t));