Anexo 1 Ficheros Matlab

Anuncio
Anexo 1
71
ANEXO 1.- Ficheros Matlab
Caracterización Experimental de la BER en un Sistema de Comunicaciones W-CDMA
Anexo 1
72
Transmisor.m : genera las muestras de una señal CDMA.
numsimb = 4;
Fs = 8;
R = 0.22;
Delay = 24;
% codigos de Walsh de 256 chips
H2 = [1 1; 1 -1];
H4 = [H2 H2 ; H2 -H2];
H8 = [H4 H4 ; H4 -H4];
H16 = [H8 H8 ; H8 -H8];
H32 = [H16 H16 ; H16 -H16];
H64 = [H32 H32 ; H32 -H32];
H128 = [H64 H64 ; H64 -H64];
H256 = [H128 H128 ; H128 -H128];
% símbolos son complejos
b = randsrc(1,numsimb)+i*randsrc(1,numsimb);
% expansión
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;
Caracterización Experimental de la BER en un Sistema de Comunicaciones W-CDMA
Anexo 1
73
root_coseno.m : función que implementa un filtro raíz coseno alzado
function y=root_coseno(periodos,roll_off)
% Entrada:
% periodos: número de Tsimb que contendrá el coseno alzado
% Devuelve la respuesta impulsiva de un filtro
% raiz de coseno alzado, con los siguientes valores
%
% Tasa de símbolos = 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);
% Respuesta impulsiva
h=(-(a+b)./(c*d))/(16*Beta*sqrt(Rb)/pi);
h(((length(h)-1)/2)+1)=1;
y=h;
long_colas.m: determina la longitud de las colas introducidas en la señal tras
pasar por el filtro raíz coseno alzado en recepción
clear all
muestras = 8;
fchip = 3.84e6;
Fs = muestras*fchip;
alfa = 0.22;
Long_cos=24;
roll_off=0.22;
delay = Long_cos;
x = [1/sqrt(2)]*sign(randn(1,64));
xcomp = sign(x);
% 8 muestras
% Frecuencia de muestreo.
% Factor de roll-off
% Duración, en Tsimb, del coseno alzado
% Factor de Roll_off del filtro a implementar
% el factor 1/sqrt(2) es para que Eb sea 1/2
% 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;
Caracterización Experimental de la BER en un Sistema de Comunicaciones W-CDMA
Anexo 1
74
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
xf = sqrt(1/6.373)*conv(x_val,h);
xr = sqrt(1/6.373)*conv(xf,h);
Long_colas = length(xr)-[length(x)*muestras]+2
Posicion_muestreo.m: determina la posición óptima de muestreo
clear all
muestras = 8;
fchip = 3.84e6;
Fs = muestras*fchip;
alfa = 0.22;
Long_cos=24;
roll_off=0.22;
delay = Long_cos;
x = [1/sqrt(2)]*sign(randn(1,64));
xcomp = sign(x);
% 8 muestras
% Frecuencia de muestreo.
% Factor de roll-off
% Duración, en Tsimb, del coseno alzado
% Factor de Roll_off del filtro a implementar
% el factor 1/sqrt(2) es para que Eb sea 1/2
% 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
xf = sqrt(1/6.373)*conv(x_val,h);
xr = sqrt(1/6.373)*conv(xf,h);
xr= transpose(xr);
xrt = xr(delay .* muestras + 1:end-(delay .* muestras),:);
Error=zeros(1,5);
for aux = 1:5
aux1=aux;
for i = 1:length(x)
dt(i) = xrt(aux1);
Caracterización Experimental de la BER en un Sistema de Comunicaciones W-CDMA
Anexo 1
75
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 representación gráfica BER frente a Eb/N0
implementando el Sistema completo de Comunicación
clear all
numsimb = 5000;
muestras = 8;
fchip = 3.84e6;
Fs = muestras*fchip;
Long_cos=24;
roll_off=0.22;
delay = Long_cos;
llave=1;
% 8 muestras
% Frecuencia de muestreo.
% Duración, en Tsimb, del coseno alzado
% Factor de Roll_off del filtro a implementar
%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;
Caracterización Experimental de la BER en un Sistema de Comunicaciones W-CDMA
Anexo 1
76
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)
muestr(N)=Icomp((N+1)/2);
muestr(N+1)=Qcomp((N+1)/2);
end;
% secuencia de muestras de información
%CANAL RUIDOSO AWGN Y RECEPTOR
K1 = 1;
EbNo = [2 3 4 5 6 7 8 9 10];
BERQPSK = zeros(1,9);
for EbN0=2:5
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 añaden 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);
Irt = Ir(delay .* muestras + 1:end-(delay .* muestras),:);
Qrt = Qr(delay .* muestras + 1:end-(delay .* muestras),:);
aux = 1;
for i = 1:length(qpsk)
Idt(i) = Irt(aux);
Qdt(i) = Qrt(aux);
aux = aux + muestras;
end
Caracterización Experimental de la BER en un Sistema de Comunicaciones W-CDMA
Anexo 1
77
Idc = sign(Idt);
Qdc = sign(Qdt);
for N = 1:2:2*length(qpsk)
secbitr(N) = Idc((N+1)/2);
secbitr(N+1) = Qdc((N+1)/2);
end;
% secuencia de bits recibidos
for N = 1:2*length(qpsk)
if secbitr(N)~=muestr(N)
aux1 = aux1+1;
end
end;
% Calculo de la BER
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)
muestr(N)=Icomp((N+1)/2);
muestr(N+1)=Qcomp((N+1)/2);
end;
%secuencia de muestras de información
Caracterización Experimental de la BER en un Sistema de Comunicaciones W-CDMA
Anexo 1
78
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 añaden 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);
Irt = Ir(delay .* muestras + 1:end-(delay .* muestras),:);
Qrt = Qr(delay .* muestras + 1:end-(delay .* muestras),:);
aux = 1;
for i = 1:length(qpsk)
Idt(i) = Irt(aux);
Qdt(i) = Qrt(aux);
aux = aux + muestras;
end
if EbN0 == 9 & llave ==1
llave=0;
qpskr=Idt+j*Qdt;
figure(2)
plot(qpskr,'*');
axis([-1.5 1.5 -1.5 1.5]);
axis('square');
ylabel('Constelacion en Recepcion Eb/No=9');
pause;
end
Idc = sign(Idt);
Qdc = sign(Qdt);
for N = 1:2:2*length(qpsk)
secbitr(N) = Idc((N+1)/2);
secbitr(N+1) = Qdc((N+1)/2);
end;
% secuencia de bits recibidos
for N = 1:2*length(qpsk)
if secbitr(N)~=muestr(N)
aux1 = aux1+1;
end
end;
% Calculo de la BER
Caracterización Experimental de la BER en un Sistema de Comunicaciones W-CDMA
Anexo 1
79
vectoraux(K1) = vectoraux(K1)+aux1;
K1=K1+1;
end;
end
for i=1:5
BERQPSK(i+4)=vectoraux(i)/[150*(2*length(qpsk))];
end
figure(3)
semilogy(EbNo,BERQPSK,'b');
curvateorica;
hold on;
semilogy(EbNo,Pbit,'r');
axis([0 15 1e-6 1]);
xlabel('EbNo(dB)');
ylabel('BERQPSK practica (azul),BERQPSK teorica (rojo)');
hold off;
curvateorica.m: calcula la curva teórica de BER frente Eb/N0 para una
modulación QPSK
% Calculo de la curva teorica
EbNo = [0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15];
Pbit = zeros(1,16);
K1 = 1;
for EbN0=0:15
aux = 10^(0.1*EbN0);
Pbit(K1)=0.5*erfc(sqrt(aux));
K1=K1+1;
end
Calculo_Ganancia.m: calcula la ganancia del amplificador para una
determinada potencia de entrada
clear all
numsimb = 1000;
muestras = 8;
fchip = 3.84e6;
Fs = muestras*fchip;
Long_cos=24;
roll_off=0.22;
delay = Long_cos-1;
% 8 muestras
% Frecuencia de muestreo
% Duración, en Tsimb, del coseno alzado
% Factor de Roll_off del filtro a implementar
%TRANSMISOR
Caracterización Experimental de la BER en un Sistema de Comunicaciones W-CDMA
Anexo 1
80
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;
[compfase, compcuad] = salida_amplificador(p, Pi, opcion, cc1, cc2, If, Qf, Nsymb, Ns);
outamp = compfase+j*compcuad;
% Salida del amplificador
E_salida=[sum(real(outamp).^2)+sum(imag(outamp).^2)]/length(outamp);
E_entrada=[sum(real(vs_t).^2)+sum(imag(vs_t).^2)]/length(vs_t);
G=sqrt(E_salida/E_entrada)
Calcula_Eb.m: calcula para una secuencia con una determinada Pi cual es la
energía de bit de la secuencia transmitida al canal
clear all
numsimb = 1000;
muestras = 8;
fchip = 3.84e6;
Fs = muestras*fchip;
% 8 muestras
% Frecuencia de muestreo
Caracterización Experimental de la BER en un Sistema de Comunicaciones W-CDMA
Anexo 1
Long_cos=24;
roll_off=0.22;
delay = Long_cos-1;
81
% Duración, en Tsimb, del coseno alzado
% Factor de Roll_off del filtro a implementar
%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;
[compfase, compcuad] = salida_amplificador(p, Pi, opcion, cc1, cc2, If, Qf, Nsymb, Ns);
Eb1=sum(compfase.^2)*8/length(compfase);
Eb2=sum(compcuad.^2)*8/length(compcuad);
Eb=(Eb1+Eb2)/2
Back_off.m: función que realiza una representación gráfica de BER para
diferentes valores IBO
Caracterización Experimental de la BER en un Sistema de Comunicaciones W-CDMA
Anexo 1
function back_off
clear all
numsimb = 1000;
muestras = 8;
fchip = 3.84e6;
Fs = muestras*fchip;
Long_cos=24;
roll_off=0.22;
delay = Long_cos-1;
82
% 8 muestras
% Frecuencia de muestreo
% Duración, en Tsimb, del coseno alzado
% Factor de Roll_off del filtro a implementar
%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)
muestr(N)=I((N+1)/2);
muestr(N+1)=Q((N+1)/2);
end;
% secuencia de muestras de información
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;
Caracterización Experimental de la BER en un Sistema de Comunicaciones W-CDMA
Anexo 1
83
cc1=0;
cc2=0;
Nsymb=numsimb;
Ns=muestras;
[compfase, compcuad] = salida_amplificador(p, Pi, opcion, cc1, cc2, If, Qf, Nsymb, Ns);
%CANAL RUIDOSO AWGN Y RECEPTOR
vectoraux = 0;
for v=1:15
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 añaden 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);
Irt = Ir(delay .* muestras + 1:end-(delay .* muestras),:);
Qrt = Qr(delay .* muestras + 1:end-(delay .* muestras),:);
aux = 9;
for i = 1:length(qpsk)
Idt(i) = Irt(aux);
Qdt(i) = Qrt(aux);
aux = aux + muestras;
end
Idc = sign(Idt);
Qdc = sign(Qdt);
for N = 1:2:2*length(qpsk)
secbitr(N) = Idc((N+1)/2);
secbitr(N+1) = Qdc((N+1)/2);
end;
% secuencia de bits recibidos
for N = 1:2*length(qpsk)
if secbitr(N)~=muestr(N)
aux1 = aux1+1;
end
% Calculo de la BER
Caracterización Experimental de la BER en un Sistema de Comunicaciones W-CDMA
Anexo 1
84
end;
vectoraux = vectoraux+aux1;
end;
BERQPSK(K1)=vectoraux/[15*(2*length(qpsk))];
K1=K1+1;
end
semilogy(backoff,BERQPSK,'k');
xlabel('Input Back off(dB)');
ylabel('BER');
salida_amplificador: función que devuelve las componentes en fase y
cuadratura de la señal a la salida del amplificador
function [compfase, compcuad] = salida_amplificador(p, Pi, opcion, cc1, cc2, If, Qf, Nsymb, Ns)
% salida_amplificador(p, Pi, opcion, cc1, cc2)
%
% p: Vector de parametros del modelo de Chalmers para el transistor
% Pi: Potencia de la señal 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 señal de entrada
% cc2: Valor en dB de correccion de la grafica de la densidad espectral
%
de la señal 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
% Valores de los parametros del modelo
Lg=0.54e-9;
Rg=5.91;
Cgs=1.18e-12;
Ri=0;
Cgd=0.05e-12;
Rgd=0;
Cds=0.35e-12;
Rs=3.18;
Ls=0.09e-9;
Rd=1.9;
Ld=0.31e-9;
% nH
% Ohm
% pF
% Ohm
% pF
% Ohm
% pF
% Ohm
% nH
% Ohm
% nH
Caracterización Experimental de la BER en un Sistema de Comunicaciones W-CDMA
Anexo 1
85
[g10, g20, g30, g01, g02, g03, g11, g12, g21] = chalmers(VGS, VDS, p);
% Potencia de entrada en Watios (argumento de entrada en dBm)
PiW = 10 .^(Pi/10) * 1e-3;
% Parametros de la señal 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 señal 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 señal modulada
% Frecuencia central de las señales: 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;
[pvs, f] = psd(vs_t, Npuntos, Fs);
frec = 2 + f - Fs/2;
pvs = 10*log10(abs(fftshift(pvs)));
% Primer orden %
Y1 = matriz_admit_3n(wc,p);
dY1 = matriz_admit_deriv_3n(wc,p);
% Condiciones iniciales
s_t = [0, vs_t];
x1_t = zeros(3,1);
Yg1 = inv(Ro + Rg + j * wc * Lg);
aux = inv(j * dY1 - dT * Y1);
for k = 2:length(s_t)
x1_t(:,k) = aux * (j * dY1 * x1_t(:,k-1) - dT * Yg1 * [s_t(k); 0; 0]);
end
v1_t = x1_t(1,2:length(s_t));
% Envolventes complejas
u1_t = x1_t(2,2:length(s_t));
w1_t = x1_t(3,2:length(s_t));
% Envolvente compleja de la tensión de primer orden a la salida
o1_t = (u1_t + w1_t) * Ro * inv(Ro + Rd + j * wc * Ld);
% Segundo orden %
i20_t = 0.5 * g20 * abs(v1_t).^2 + 0.5 * g02 * abs(u1_t).^2 + ...
0.5 * g11 * real(v1_t.* conj(u1_t));
Y0 = matriz_admit_3n(0,p);
dY0 = matriz_admit_deriv_3n(0,p);
Caracterización Experimental de la BER en un Sistema de Comunicaciones W-CDMA
Anexo 1
86
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));
o20_t = (u20_t + w20_t) * Ro * inv(Ro + Rd);
i22_t = 0.5 * g20 * v1_t.^2 + 0.5 * g02 * u1_t.^2 + 0.5 * g11 * v1_t.* u1_t;
Y2 = matriz_admit_3n(2*wc,p);
dY2 = matriz_admit_deriv_3n(2*wc,p);
x22_t = zeros(3,1);
i22_t = [0, i22_t];
aux = inv(j * dY2 - dT * Y2);
for k = 2:length(s_t)
x22_t(:,k) = aux * (j * dY2 * x22_t(:,k-1) - dT * [0; -i22_t(k); -i22_t(k)]);
end
v22_t = x22_t(1,2:length(s_t));
% Envolventes complejas
u22_t = x22_t(2,2:length(s_t));
w22_t = x22_t(3,2:length(s_t));
o22_t = (u22_t + w22_t) * Ro * inv(Ro + Rd + j * 2 * wc * Ld);
% Tercer orden %
i31_t = 0.5 * g30 * ((abs(v1_t).^2) .* v1_t) + 0.25 * g30 * ((v1_t.^2) .* conj(v1_t)) + ...
0.5 * g03 * ((abs(u1_t).^2) .* u1_t) + 0.25 * g03 * ((u1_t.^2) .* conj(u1_t)) + ...
0.5 * g21 * ((abs(v1_t).^2) .* u1_t) + 0.25 * g21 * ((v1_t.^2) .* conj(u1_t)) + ...
0.5 * g12 * ((abs(u1_t).^2) .* v1_t) + 0.25 * g12 * ((u1_t.^2) .* conj(v1_t)) + ...
g20 * (v22_t .* conj(v1_t)) + 2 * g20 * (v20_t .* v1_t) + ...
g02 * (u22_t .* conj(u1_t)) + 2 * g02 * (u20_t .* u1_t) + ...
0.5 * g11 * (conj(v1_t) .* u22_t) + g11 * (u20_t .* v1_t) + ...
0.5 * g11 * (conj(u1_t) .* v22_t) + g11 * (v20_t .* u1_t);
x31_t = zeros(3,1);
i31_t = [0, i31_t];
aux = inv(j * dY1 - dT * Y1);
for k = 2:length(s_t)
x31_t(:,k) = aux * (j * dY1 * x31_t(:,k-1) - dT * [0; -i31_t(k); -i31_t(k)]);
end
v31_t = x31_t(1,2:length(s_t));
% Envolventes complejas
u31_t = x31_t(2,2:length(s_t));
w31_t = x31_t(3,2:length(s_t));
o31_t = (u31_t + w31_t) * Ro * inv(Ro + Rd + j * wc * Ld);
outamp = constante*[o31_t + o1_t];
% Salida del amplificador
compfase = real(outamp);
compcuad = imag(outamp);
Caracterización Experimental de la BER en un Sistema de Comunicaciones W-CDMA
Descargar