Anda di halaman 1dari 9

ESPECTROS DE CODIGO DE LINEA

UNIPOLAR NRZ
Vtx=100;
Np=50;
td=1/Vtx;
ts=td/(Np-1);
fs=(1/ts);
data=randint(1,1000,2);
P=[ones(1,50)];
for R=1:length(data)
senNRZ(1+Np*(R-1):Np*R)=data(R)*P;
end
yNRZ=(fft(senNRZ));
f=-fs/2:fs/length(yNRZ):fs/2-fs/length(yNRZ);
plot(f,fftshift(abs(yNRZ).*abs(yNRZ)))/(length(yNRZ)*length(yNRZ))

UNIPOLAR RZ
Vtx=100;
Np=50;
td=1/Vtx;
ts=td/(Np-1);
fs=(1/ts);
data=randint(1,1000,2);
P=[ones(1,25) zeros(1,25)];
for R=1:length(data)
senRZ(1+Np*(R-1):Np*R)=data(R)*P;
end
yRZ=(fft(senRZ));

f=-fs/2:fs/length(yRZ):fs/2-fs/length(yRZ);
plot(f,fftshift(abs(yRZ).*abs(yRZ)))/(length(yRZ)*length(yRZ))

POLAR NRZ
Vtx=100;
Np=50;
td=1/Vtx;
ts=td/(Np-1);
fs=(1/ts);
data=randint(1,1000,2);
P=[ones(1,25) (-1)*ones(1,25)];
for R=1:length(data)
senPNRZ(1+Np*(R-1):Np*R)=((-1)^(1+data(R)));
end
yPNRZ=(fft(senPNRZ));
f=-fs/2:fs/length(yPNRZ):fs/2-fs/length(yPNRZ);
plot(f,fftshift(abs(yPNRZ).*abs(yPNRZ)))/(length(yPNRZ)*length(yPNRZ))

Manchester
Vtx=100;
Np=50;
td=1/Vtx;
ts=td/(Np-1);
fs=(1/ts);
data=randint(1,1000,2);
P=[ones(1,25) (-1)*ones(1,25)];
for R=1:length(data)
senPRZ(1+Np*(R-1):Np*R)=(((-1)^(data(R)+1)*P));
end
yPRZ=(fft(senPRZ));
f=-fs/2:fs/length(yPRZ):fs/2-fs/length(yPRZ);
plot(f,fftshift(abs(yPRZ).*abs(yPRZ)))/(length(yPRZ)*length(yPRZ))

CODED MARK
Vtx=100;
Np=50;
td=1/Vtx;
ts=td/(Np-1);
fs=(1/ts);
data=randint(1,1000,2);
P=[ones(1,25) (-1)*ones(1,25)];
for R=1:length(data)
if data(R)==0
senPRZ(1+Np*(R-1):Np*R)=((-1)*P);
else
senPRZ(1+Np*(R-1):Np*R)=((-1)^( sum(data(1:R))+1));
end
end
yPRZ=(fft(senPRZ));
f=-fs/2:fs/length(yPRZ):fs/2-fs/length(yPRZ);
plot(f,fftshift(abs(yPRZ).*abs(yPRZ)))/(length(yPRZ)*length(yPRZ))

Vtx=100;
Np=50;
td=1/Vtx;
ts=td/(Np-1);
fs=(1/ts);
data=randint(1,1000,2);
P=[ones(1,25) (-1)*ones(1,25)];
for R=1:length(data)
ami(R)=(((-1)^(1+sum(data(1:R)))) *data(R));
end
for R=1:length(data)
z= sum(ami(1:R));
w= sum(ami(1:R+4));
if z==w
HDB3NRZ(1+Np*(R-1):Np*R)=ami(R)-1;
else
HDB3NRZ(1+Np*(R-1):Np*R)=ami(R);
end
end
yPNRZ=(fft(HDB3NRZ));
f=-fs/2:fs/length(yPNRZ):fs/2-fs/length(yPNRZ);
plot(f,fftshift(abs(yPNRZ).*abs(yPNRZ)))/(length(yPNRZ)*length(yPNRZ))

HDB3
Vtx=100;
Np=50;
td=1/Vtx;
ts=td/(Np-1);
fs=(1/ts);
data=randint(1,1000,2);
P=[ones(1,25) zeros(1,25)];
for R=1:length(data)
ami(R)=(((-1)^(1+sum(data(1:R)))) *data(R));
end
num=0;
yn=ami;

%Reinicio de la variable de conteo de 1s

yh=yn;

%Variable nueva del codigo almacenado en yn

sign=0;

%Variable de signo

V=zeros(1,length(yn));

%Variable para guardar las violaciones (V)

B=zeros(1,length(yn));

%Varible para guardar las B

for k=1:length(yn)
if yn(k)==0
num=num+1;
if num== 4
num=0;

%Incremento del contador de 0s


%Comprueba si hay 4 ceros continuos para realizar el cambio
%Reestablece el contador de 0s

yh(k)=1*yh(k-4);
V(k)=yh(k);
if yh(k)==sign

%Guarda los bits de violacion (V)


%Comprueba si el bit yh(k) es igual al signo

yh(k)=-1*yh(k);

%Invierte el signo para evitar signos iguales en los bits de violacion

yh(k-3)=yh(k);

%Cambia el primer 0 para generar el codigo B00V

B(k-3)=yh(k);
V(k)=yh(k);

%Guarda las B producidas en hdb3


%Guarda el bit de violacion con el signo ya invertido

yh(k+1:length(yn))=-1*yh(k+1:length(yn));%Alterna los signos de los 1s despues de detectar


un cambio de signo.
end
sign=yh(k);

%Guarda el signo de la violacion

end
else
num=0;

%Reestablece el contador de 0s

end
end
HDB3=ami+V+B;
for R=1:length(data)
HDB3NRZ(1+Np*(R-1):Np*R)= HDB3(R)*P;
end
yPNRZ=(fft(HDB3NRZ));
f=-fs/2:fs/length(yPNRZ):fs/2-fs/length(yPNRZ);
plot(f,fftshift(abs(yPNRZ).*abs(yPNRZ)))/(length(yPNRZ)*length(yPNRZ))

Anda mungkin juga menyukai