Laboratorio Nº 02:Códigos de Línea
Bladi Roberto Gómez Mena Rocio Ximanea Linares Suarez Jorge Eduardo Buzzio Garcia
20101106C 20114059I 20101173B
[email protected] [email protected] [email protected]
Facultad de Ingeniería Eléctrica y Electrónica, Universidad Nacional de Ingeniería
Lima, Perú
I. OBJETIVO Algunas de las características deseables de los códigos de
línea son:
-Consolidar la comprensión el conocimiento de las
características de los códigos de línea. Auto sincronización: contenido suficiente de señal de
temporización (reloj) que permita identificar el
- Aprender las funciones en Matlab para la generación de tiempo correspondiente a un bit.
códigos de Línea. Capacidad de detección de errores: la definición del
código incluye el poder de detectar un error.
II. TEORÍA Inmunidad al ruido: capacidad de detectar
adecuadamente el valor de la señal ante la presencia
La transmisión de datos en forma digital implica una cierta
de ruido (baja probabilidad de error).
codificación. A la forma de transmisión donde no se usa Densidad espectral de potencia: igualación entre el
una portadora se la conoce como transmisión en banda espectro de frecuencia de la señal y la respuesta en
base. frecuencia del canal de transmisión.
Ancho de banda: contenido suficiente de señal de
Los códigos de línea son usados para este tipo de temporización que permita identificar el tiempo
transmisión. Existen varios tipos de códigos, entre ellos correspondiente a un bit.
Unipolar NRZ, Polar NRZ, Unipolar RZ, Bipolar RZ Transparencia: independencia de las características
del código en relación a la secuencia de unos y ceros
(AMI), Manchester, CMI, etc. Algunos de estos códigos se
que transmita
muestran a continuación:
III. DEL LABORATORIO A LAS OBSERVACIONES
A. Equipos y Materiales
Utilizamos lo siguiente:
Una computadora
Software MATLAB
Acceso a Internet
Cámara fotográfica.
Guía de Laboratorio
B. Procedimiento
Realizamos la simulación utilizando MATLAB de las
secuencias aleatorias unipolar NRZ de amplitud A,
unipolar RZ de amplitud A, bipolar NRZ de amplitudes ±
A, bipolar AMI RZ de amplitud ± A y bipolar
MANCHESTER de amplitud ± A.
Generamos las funciones:
- Función UNRZ(h)
- Función URZ(h)
- Función PNRZ(h)
- Función AMIRZ(h)
- Función MANCHESTER(h)
OBSERVACION: El input para todas las funciones es h,
vector de ‘0’s y ‘1’s de prueba con el cual se presenta el
código de línea.
Para la Función de Auto correlación y la Densidad
Espectral de Potencia consideramos Tb = 1 segundo y el
valor de A = 1 voltio.
OBSERVACION: Se tiene en cuenta que tanto la función
de auto correlación y la densidad espectral de potencia es
uniforme para cualquier mensaje, varía de acuerdo a Tb y a
la amplitud A de la señal, entonces para la simulación solo
se consideró el código de línea en general. Fig3.Cuadro de Función de Auto correlación
Utilizamos la interfaz gráfica de Matlab; GUIDE: OBSERVACION:
- El cuadro de Códigos de Línea muestra los
valores de ´1´s y ´0´s generados por el botón
Random de acuerdo al código de línea escogido
en el pop-up menú. Para ver el espectro y la
función de auto correlación están los botones
inferiores.
IV. RESULTADOS Y CONCLUSIONES
A. Sobre los códigos de línea
De acuerdo a los resultados simulados en GUIDE, para
un ejemplo de h=[1 1 0 1 0 0 1 1 0 1], tenemos:
Fig1.Cuadro de Códigos de Línea
UNIPOLAR NRZ:
Al símbolo “1” se le asigna un valor alto de señal (V) y al
Fig2.Cuadro de Densidad Espectral de Frecuencia símbolo “0” se le asigna el valor cero, es decir, 0V.
Aplicación Aplicación
Debido a la sencillez de este código de línea y a las
características de su respuesta en frecuencia La codificación bipolar AMI tiene un ancho de banda
relativamente baja, los códigos NRZ se usan con más reducido y no crea una componente DC, por esta
frecuencia en las grabaciones magnéticas. No obstante,
sus limitaciones hacen que estos códigos no sean
atractivos para aplicaciones de transmisión de señales.
UNIPOLAR RZ:
Para el símbolo “1” tendrá dos valores: en el primer semi-
intervalo [0, Tb/2] tendrá un nivel +V y para el segundo semi-
intervalo [Tb/2, Tb] retornará a 0V.
razón se la utiliza en comunicaciones de larga distancia,
pero tiene el problema de sincronización cuando
aparecen largas secuencias de 0s.
Es uno de los códigos más empleados en la transmisión
digital a través de redes WAN.
POLAR NRZ: MANCHESTER:
Al símbolo “1” se le asigna un valor alto de señal (V) y al símbolo
“0” se le asigna el valor opuesto, es decir, -V.
Al igual que con los códigos RZ, el código Manchester se
Aplicación caracteriza por tener una transición de valor en Tb/2 durante el
intervalo [0, Tb]. El “1” se representa por cambio de +V a –V y el
NRZ no se utiliza en la comunicación de datos debido a “0” hace el proceso opuesto.
su falta de sincronización y debido a la presencia de la
componente de DC. Aplicación
AMI RZ: Se usan en esquemas de transmisión de datos.
Se utiliza en redes LAN Ethernet.
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 B. Sobre la densidad espectral de potencia
(0L) se representa con un nivel de 0 V.
Ahora seleccionamos en el botón Espectro, para
observar la densidad espectral en cada uno de los códigos,
teniendo: POLAR NRZ:
UNIPOLAR NRZ:
- De la densidad espectral de frecuencia del código
polar NRZ ya no se observa el voltaje DC debido
a la polaridad de la señal en ‘1’ y ‘-1’.
- También se tiene una señal de banda base, no es
- De la densidad espectral de frecuencia del código eficiente debido a que la respuesta en frecuencia
unipolar NRZ se observa el voltaje DC que de del canal atenúa las frecuencias más bajas.
alguna manera afecta a su transmisión pues de la
teoría se sabe que se necesita más potencia para
transmitir con respecto a códigos de línea sin DC. AMI RZ:
- Se tiene una señal de banda base, no es eficiente
debido a que la respuesta en frecuencia del canal
atenúa las frecuencias más bajas.
UNIPOLAR RZ:
- El espectro de frecuencia para el código AMI RZ
es de esta manera debido a la bipolaridad, los
cambios de polaridad de los 1.
- De la densidad espectral de frecuencia del código
unipolar RZ se observa el voltaje DC en dos
posiciones, esto es debido al cambio del ‘1’ en un
tiempo de bit igual a la mitad del periodo de la
señal.
- También se tiene una señal de banda base, no es
eficiente debido a que la respuesta en frecuencia
del canal atenúa las frecuencias más bajas.
MANCHESTER:
UNIPOLAR RZ:
- A diferencia del código AMI, a la forma del
espectro de frecuencia que tiene más ancho de
banda y respecto a la amplitud este código es más
resistente al ruido.
POLAR NRZ:
C. Sobre la función de auto correlación
Ahora seleccionamos en el botón Auto correlación, y
tenemos:
UNIPOLAR NRZ:
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 los siguiente valores:
MANCHESTER:
V. FUNCIONES EN MATLAB
FUNCIÓN UNRZ(h)
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);
FUNCIÓN URZ(h)
else
y=(t<n)+1*(t==n); La función siguiente simula esta codificación:
end
d=plot(t,y);grid on; function URZ(h)
title('Código de línea UNIPOLAR NRZ'); %Example:
%h=[1 0 0 1 1 0 1 0 1 0]; Como ejemplo ejecutamos los siguiente valores:
%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('Código de línea 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
FUNCIÓN PNRZ(h)
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 %Example:
d=plot(t,y);grid on; %h=[1 0 0 1 1 0 1 0 1 0];
title('Código de línea POLAR NRZ'); %AMIRZ(h)
set(d,'LineWidth',2.5);
hold on; clf;
axis([0 length(h)-1 -1.5 1.5]); n=1;
disp('zero'); l=length(h);
else h(l+1)=1;
if h(n+1)==0 ami=-1;
y=(t<n)-1*(t==n); while n<=length(h)-1;
else t=n-1:0.001:n;
y=(t<n)+1*(t==n); if h(n) == 0
end if h(n+1)==0
d=plot(t,y);grid on; y=(t>n);
title('Código de línea POLAR NRZ'); else
set(d,'LineWidth',2.5); if ami==1
hold on; y=-(t==n);
axis([0 length(h)-1 -1.5 1.5]); else
disp('one'); y=(t==n);
end end
n=n+1; end
%pause; d=plot(t,y);grid on;
end title('Código de línea AMI RZ');
Como ejemplo ejecutamos los siguientes valores: 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('Código de línea 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;
FUNCIÓN AMIRZ(h) end
La función siguiente simula esta codificación:
function AMIRZ(h)
Como ejemplo ejecutamos los siguiente valores: d=plot(t,y);grid on;
title('Código de línea 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 los siguiente valores:
FUNCIÓN MANCHESTER(h)
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; VI. CONCLUSIONES
title('Código de línea MANCHESTER');
• El matlab es una herramienta grafica muy útil en
set(d,'LineWidth',2.5);
este caso para poder entender el comportamiento
hold on;
de los distintos códigos de línea.
axis([0 length(h)-1 -1.5 1.5]);
disp('one'); • Los códigos de línea son muy útiles al transmitir
else la información debido a que buscan siempre
if h(n+1)==0 minimizar la cantidad de errores que pueden
y=(t<n)-2*(t<n-0.5)+1*(t==n); presentarse en una comunicación.
else
y=(t<n)-2*(t<n-0.5)-1*(t==n); • Siempre se busca tratar de transmitir la mayor
end cantidad de información con el menor número de
bits posibles, y los códigos de línea buscan ese
propósito.
VII. BIBLIOGRAFÍA
1. http://es.wikipedia.org/wiki/C%C3%B3digos_en_
l%C3%ADnea
2. Guía de Laboratorio de telecomunicaciones II.
Ing. Virginia Romero. Ciclo 2014-I.
3. Material de clase de Telecomunicaciones I. Ing.
César Narvaja. Ciclo 2013-II.