Está en la página 1de 12

La transmisión de datos en forma digital implica una cierta codificación.

A la forma
de transmisión donde no se usa una portadora se la conoce como transmisión en
banda base.
Los códigos de línea son usados para este tipo de transmisión. Existen
varios tipos de códigos, entre ellos Unipolar NRZ, Polar NRZ, Unipolar RZ, Bipolar
RZ (AMI), Manchester, CMI, etc. Algunos de estos códigos se muestran en la
figura 1.

Algunas de las características deseables de los códigos de línea son:

Autosincronización: contenido suficiente de señal de temporización (reloj) que


permita identificar el tiempo correspondiente a un bit.
Capacidad de detección de errores: la definición del código incluye el poder de
detectar un error.
Inmunidad al ruido: capacidad de detectar adecuadamente el valor de la señal
ante la presencia de ruido (baja probabilidad de error).
Densidad espectral de potencia: igualación entre el espectro de frecuencia de la
señal y la respuesta en frecuencia del canal de transmisión.
Ancho de banda: contenido suficiente de señal de temporización que permita
identificar el tiempo correspondiente a un bit.
Transparencia: independencia de las características del código en relación a la
secuencia de unos y ceros que transmita.
FUNCIÓN UNRZ(h)
El código Unipolar sin retorno a cero representa un 1 lógico (1L) con un
nivel de +V durante todo el periodo de bit y un cero lógico (0L) con un nivel de 0 V
durante todo el periodo de bit. La función siguiente simula esta codificación:

function UNRZ(h)
clf;
n=1;
l=length(h);
h(l+1)=1;
while n<=length(h)-1;
t=n-1:0.001:n;
if h(n) == 0
if h(n+1)==0
y=(t>n);
else
y=(t==n);
end
d=plot(t,y);grid on;
title('Line code UNIPOLAR NRZ');
set(d,'LineWidth',2.5);
hold on;
axis([0 length(h)-1 -1.5 1.5]);
disp('zero');
else
if h(n+1)==0
y=(t<n)-0*(t==n);
else
y=(t<n)+1*(t==n);
end
d=plot(t,y);grid on;
title('Line code UNIPOLAR NRZ');
set(d,'LineWidth',2.5);
hold on;
axis([0 length(h)-1 -1.5 1.5]);
disp('one');
end
n=n+1;
%pause;
end

Como ejemplo, ejecutamos lo que muestra la figura 2:

unrz
Fig. 2. Función UNRZ(h).

FUNCIÓN URZ(h)
El código Unipolar con retorno a cero representa un 1 lógico (1L) con un nivel de
+V durante la mitad del periodo de bit y un cero lógico (0L) con un nivel de 0 V
durante todo el periodo de bit. La función siguiente simula esta codificación:

function URZ(h)
%Example:
%h=[1 0 0 1 1 0 1 0 1 0];
%URZ(h)
clf;
n=1;
l=length(h);
h(l+1)=1;
while n<=length(h)-1;
t=n-1:0.001:n;
%Graficación de los CEROS (0)
if h(n) == 0
if h(n+1)==0
y=(t>n);
else
y=(t==n);
end
d=plot(t,y);grid on
title('Line code UNIPOLAR RZ');
set(d,'LineWidth',2.5);
hold on;
axis([0 length(h)-1 -1.5 1.5]);
disp('zero');
%Graficación de los UNOS (1)
else
if h(n+1)==0
y=(t<n-0.5);
else
y=(t<n-0.5)+1*(t==n);
end
d=plot(t,y);grid on;
title('Line code UNIPOLAR RZ');
set(d,'LineWidth',2.5);
hold on;
axis([0 length(h)-1 -1.5 1.5]);
disp('one');
end
n=n+1;
%pause;
end
end

Como ejemplo, ejecutamos lo que muestra la figura 3:

FUNCIÓN PNRZ(h)
El código Polar sin retorno a cero representa un 1 lógico (1L) con un nivel
de +V durante todo el periodo de bit y un cero lógico (0L) con un nivel de - V
durante todo el periodo de bit. La función siguiente simula esta codificación:
function PNRZ(h)
%Example:
%h=[1 0 0 1 1 0 1 0 1 0];
%PNRZ(h)
clf;
n=1;
l=length(h);
h(l+1)=1;
while n<=length(h)-1;
t=n-1:0.001:n;
if h(n) == 0
if h(n+1)==0
y=-(t<n)-(t==n);
else
y=-(t<n)+(t==n);
end
d=plot(t,y);grid on;
title('Line code POLAR NRZ');
set(d,'LineWidth',2.5);
hold on;
axis([0 length(h)-1 -1.5 1.5]);
disp('zero');
else
if h(n+1)==0
y=(t<n)-1*(t==n);
else
y=(t<n)+1*(t==n);
end
d=plot(t,y);grid on;
title('Line code POLAR NRZ');
set(d,'LineWidth',2.5);
hold on;
axis([0 length(h)-1 -1.5 1.5]);
disp('one');
end
n=n+1;
%pause;
end

Como ejemplo, ejecutamos lo que muestra la figura 4:


FUNCIÓN BRZ(h)
El código Bipolar con retorno a cero representa un 1 lógico (1L) con un
nivel de +V durante la mitad del periodo de bit y un cero lógico (0L) con un nivel
de - V durante la mitad del periodo de bit. La función siguiente simula esta
codificación:

function BRZ(h)
%Example:
%h=[1 0 0 1 1 0 1 0 1 0];
%BRZ(h)
clf;
n=1;
l=length(h);
h(l+1)=1;
while n<=length(h)-1;
t=n-1:0.001:n;
if h(n) == 0
if h(n+1)==0
y=-(t<n-0.5)-(t==n);
else
y=-(t<n-0.5)+(t==n);
end
d=plot(t,y);grid on;
title('Line code BIPOLAR RZ');
set(d,'LineWidth',2.5);
hold on;
axis([0 length(h)-1 -1.5 1.5]);
disp('zero');
else
if h(n+1)==0
y=(t<n-0.5)-1*(t==n);
else
y=(t<n-0.5)+1*(t==n);
end
d=plot(t,y);grid on;
title('Line code BIPOLAR RZ');
set(d,'LineWidth',2.5);
hold on;
axis([0 length(h)-1 -1.5 1.5]);
disp('one');
end
n=n+1;
%pause;
end

Como ejemplo, ejecutamos lo que muestra la figura 5:

FUNCIÓN AMINRZ(h)
El código AMI representa los unos lógico por medio de valores
alternadamente positivos (+V) y negativos (-V). Un cero lógico (0L) se representa
con un nivel de 0 V. La función siguiente simula esta codificación:
function AMINRZ(h)

%Example:
%h=[1 0 0 1 1 0 1 0 1 0];
%AMINRZ(h)
clf;
n=1;
l=length(h);
h(l+1)=1;
ami=-1;
while n<=length(h)-1;
t=n-1:0.001:n;
if h(n) == 0
if h(n+1)==0
y=(t>n);
else
if ami==1
y=-(t==n);
else
y=(t==n);
end
end
d=plot(t,y);grid on;
title('Line code AMI NRZ');
set(d,'LineWidth',2.5);
hold on;
axis([0 length(h)-1 -1.5 1.5]);
disp('zero');
else
ami=ami*-1;
if h(n+1)==0
if ami==1
y=(t<n);
else
y=-(t<n);
end
else
if ami==1
y=(t<n)-(t==n);
else
y=-(t<n)+(t==n);
end

end
d=plot(t,y);grid on;
title('Line code AMI NRZ');
set(d,'LineWidth',2.5);
hold on;
axis([0 length(h)-1 -1.5 1.5]);
disp('one');
end
n=n+1;
%pause;
end

Fig. 6. Función AMINRZ(h).

FUNCIÓN AMIRZ(h)
El código AMI con retorno a cero representa los unos lógico por medio de
valores alternadamente positivos (+V) y negativos (-V) y un retorno a cero en la
mitad del periodo del bit. Un cero lógico (0L) se representa con un nivel de 0 V. La
función siguiente simula esta codificación:
function AMIRZ(h)
%Example:
%h=[1 0 0 1 1 0 1 0 1 0];
%AMIRZ(h)
clf;
n=1;
l=length(h);
h(l+1)=1;
ami=-1;
while n<=length(h)-1;
t=n-1:0.001:n;
if h(n) == 0
if h(n+1)==0
y=(t>n);
else
if ami==1
y=-(t==n);
else
y=(t==n);
end
end
d=plot(t,y);grid on;
title('Line code AMI RZ');
set(d,'LineWidth',2.5);
hold on;
axis([0 length(h)-1 -1.5 1.5]);
disp('zero');
else
ami=ami*-1;
if h(n+1)==0
if ami==1
y=(t<n-0.5);
else
y=-(t<n-0.5);
end
else
if ami==1
y=(t<n-0.5)-(t==n);
else
y=-(t<n-0.5)+(t==n);
end

end
d=plot(t,y);grid on;
title('Line code AMI RZ');
set(d,'LineWidth',2.5);
hold on;
axis([0 length(h)-1 -1.5 1.5]);
disp('one');
end
n=n+1;
%pause;
End
Como ejemplo, ejecutamos lo que muestra la figura 7:

FUNCIÓN MANCHESTER(h)
El código Manchester representa un 1 lógico (1L) con un nivel de +V
durante la mitad del periodo de bit y un nivel de -V durante la otra mitad. Un cero
lógico (0L) se representa con un nivel de - V durante la primera mitad del periodo
de bit y con +V durante la segunda mitad. La función siguiente simula esta
codificación:

function MANCHESTER(h)
%Example:
%h=[1 0 0 1 1 0 1 0 1 0];
%MANCHESTER(h)
clf;
n=1;
h=~h;
l=length(h);
h(l+1)=1;
while n<=length(h)-1;
t=n-1:0.001:n;
if h(n) == 0
if h(n+1)==0
y=-(t<n)+2*(t<n-0.5)+1*(t==n);
else
y=-(t<n)+2*(t<n-0.5)-1*(t==n);
end
d=plot(t,y);grid on;
title('Line code MANCHESTER');
set(d,'LineWidth',2.5);
hold on;
axis([0 length(h)-1 -1.5 1.5]);
disp('one');
else
if h(n+1)==0
y=(t<n)-2*(t<n-0.5)+1*(t==n);
else
y=(t<n)-2*(t<n-0.5)-1*(t==n);
end
d=plot(t,y);grid on;
title('Line code MANCHESTER');
set(d,'LineWidth',2.5);
hold on;
axis([0 length(h)-1 -1.5 1.5]);
disp('zero');
end
n=n+1;
%pause;
end

Como ejemplo, ejecutamos lo que muestra la figura 8:

También podría gustarte