Você está na página 1de 21

CDIGO DE LNEA

INTRODUCCIN
La transmisin de datos en forma digital implica una cierta
codificacin. A la forma de transmisin donde no se usa una
portadora se la conoce como transmisin en banda base.
Los cdigos de lnea son usados para este tipo de transmisin.
Existen varios tipos de cdigos, entre ellos Unipolar NRZ, Polar
NRZ, Unipolar RZ, Bipolar RZ (AMI), Manchester, CMI, etc. Algunos
de estos cdigos se muestran en la figura 1.

Algunas de las caractersticas deseables de los cdigos de lnea son:


Autosincronizacin:
Debe poseer suficiente informacin de temporizacin incorporada
al cdigo de manera que se pueda disear la sincronizacin para
extraer la seal de sincronizacin o de reloj.
Baja probabilidad de error de bits:
Se pueden disear receptores para recuperar datos binarios con
una baja probabilidad de error de bits cuando la seal de datos de
entrada se corrompe por ruido o ISI (Interferencia InterSimbolo).
Un espectro adecuado para el canal:
Por ejemplo, si el canal es acoplado de CA, la densidad espectral
de potencia de la seal de codificacin de lneas ser insignificante
a frecuencias cercanas a cero.
Ancho de banda del canal de transmisin:
Debe ser tan pequeo como sea posible. Esto facilita la
transmisin de la seal en forma individual o la multicanalizacin.

Capacidad de deteccin de errores:


Debe ser posible poner en prctica esta caracterstica con facilidad
para la adicin de codificadores y decodificadores de canal, o debe
incorporarse al cdigo de lnea.

a)

SEALIZACIN UNIPOLAR.
El cdigo Unipolar con retorno a cero representa un
1 lgico (1L) con un nivel
de +V durante la mitad del periodo de bit y un cero lgico (0L) con un nivel de 0 V
durante todo el periodo de bit. La funcin siguiente simula esta codificacin:

function URZ(h)
h=[1 1 0 1 1 0 1 0 1 1];
clf;
n=1;
l=length(h);
h(l+1)=1;
while n<=length(h)-1;
t=n-1:0.001:n;
%Graficacin 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('Cdigo de lnea UNIPOLAR RZ');
set(d,'LineWidth',2.5);
hold on;
axis([0 length(h)-1 -1.5 1.5]);
disp('zero');

%Graficacin 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('Cdigo de lnea UNIPOLAR RZ');
set(d,'LineWidth',2.5);
hold on;
axis([0 length(h)-1 -1.5 1.5]);
disp('one');
end
n=n+1;
end

Como ejemplo, ejecutamos lo que muestra la siguiente figura:

function UNRZ(h)

h=[1 1 0 1 0 1 1 0 1 0];
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('Cdigo de lnea 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('Cdigo de lnea UNIPOLAR NRZ');
set(d,'LineWidth',2.5);
hold on;
axis([0 length(h)-1 -1.5 1.5]);
disp('one');
end
n=n+1;
end
Como ejemplo, ejecutamos lo que muestra la siguiente figura:

b) SEALIZACIN POLAR.

El cdigo Polar sin retorno a cero representa un 1 lgico (1L) con un nivel de +V
durante todo el periodo de bit y un cero lgico (0L) con un nivel de - V durante todo
el periodo de bit. La funcin siguiente simula esta codificacin:

function PNRZ(h)
h=[1 1 0 1 1 0 0 0 1];
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('Cdigo de lnea 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('Cdigo de lnea POLAR NRZ');
set(d,'LineWidth',2.5);
hold on;
axis([0 length(h)-1 -1.5 1.5]);
disp('one');
end
n=n+1;
end

Como ejemplo, ejecutamos lo que muestra la siguiente figura:

c) SEALIZACIN BIPOLAR.
El cdigo Bipolar con retorno a cero representa un 1 lgico (1L) con un nivel de +V
durante la mitad del periodo de bit y un cero lgico (0L) con un nivel de - V durante la
mitad del periodo de bit. La funcin siguiente simula esta codificacin:

function BRZ(h)
h=[1 0 1 1 1 0 1 0 1 0];
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('Cdigo de lnea 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('Cdigo de lnea BIPOLAR RZ'); set(d,'LineWidth',2.5);
hold on;
axis([0 length(h)-1 -1.5 1.5]);
disp('one');
end
n=n+1;
end

Como ejemplo, ejecutamos lo que muestra la siguiente figura:

d) SEALIZACIN MANCHESTER
El cdigo Manchester representa un 1 lgico (1L) con un
nivel de +V durante la mitad del periodo de bit y un nivel
de -V durante la otra mitad. Un cero lgico (0L) se
representa con un nivel de - V durante la primera mitad
del periodo de bit y con +V durante la segunda mitad. La
funcin siguiente simula esta codificacin:

function MANCHESTER(h)
%function MANCHESTER %
h=[1 1 0 1 1 0 0 0 1 0];
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('Cdigo de lnea MANCHESTER NRZ');
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('Cdigo de lnea MANCHESTER NRZ');
set(d,'LineWidth',2.5);
hold on;
axis([0 length(h)-1 -1.5 1.5]);
disp('zero');
end
n=n+1;
end

Como ejemplo, ejecutamos lo que muestra la siguiente figura:

INTERFAZ GRFICA DE USUARIO


La figura muestra el entorno de la interfaz grfica de usuario que simula varios
cdigos de lnea.
a) SEALIZACIN UNIPOLAR.

b) SEALIZACIN POLAR.

c) SEALIZACIN BIPOLAR.

d) SEALIZACIN MANCHESTER

CREACION DE FUNCIONES EN SCILAB


Ficheros *.sci
Los ficheros con extensin (.sci) son ficheros de texto sin formato (ficheros ASCII) que
constituyen el centro de la programacin en SCILAB. Ya se han utilizado en varias
ocasiones. Estos ficheros se crean y modifican con un editor de textos cualquiera.
Existen dos tipos de ficheros *.sci, los ficheros de comandos (llamados scripts en ingls) y
las funciones. Los primeros contienen simplemente un conjunto de comandos que se
ejecutan sucesivamente cuando se teclea el nombre del fichero en la lnea de comandos de
SCILAB. Un fichero de comandos puede llamar a otros ficheros de comandos.
Las funciones permiten definir funciones enteramente anlogas a las de SCILAB, con su
nombre, sus argumentos y sus valores de retorno. Los ficheros *.sci que definen funciones
permiten extender las posibilidades de SCILAB. Las funciones definidas en ficheros *.sci
se caracterizan porque la primera lnea (que no sea un comentario) comienza por la palabra
function, seguida por los valores de retorno (entre corchetes [ ] y separados por comas, si
hay ms de uno), el signo igual (=) y el nombre de la funcin, seguido de los argumentos
(entre parntesis y separados por comas).
Recurdese que un fichero *.sci puede llamar a otros ficheros *.sci, e incluso puede
llamarse a s mismo de forma recursiva. Los ficheros de comandos se pueden llamar
tambin desde funciones, en cuyo caso las variables que se crean pertenecen a espacio de
trabajo de la funcin. El espacio de trabajo de una funcin es independiente del espacio de
trabajo base y del espacio de trabajo de las dems funciones. Esto implica por ejemplo que
no puede haber colisiones entre nombres de variables aunque varias funciones tengan una
variable llamada A, en realidad se trata de variables completamente distintas (a no ser que
A haya sido declarada como variable global).
Definicin de Funciones
La primera lnea de un fichero llamado name.sci que define una funcin tiene la forma:
function [lista de valores de retorno] = name(lista de argumentos)
donde name es el nombre de la funcin. Entre corchetes y separados por comas van los
valores de retorno (siempre que haya ms de uno), y entre parntesis tambin separados por
comas los argumentos. Puede haber funciones sin valor de retorno y tambin sin
argumentos. Recurdese que los argumentos son los datos de la funcin y los valores de
retorno sus resultados, decir que los argumentos de entrada son por valor y no pueden ser
modificados, por lo que si queremos modificarlos debemos utilizarlos a su vez como salida.
Si no hay valores de retorno se omiten los corchetes y el signo igual (=); si slo hay un
valor de retorno no hace falta poner corchetes. Tampoco hace falta poner parntesis si no
hay argumentos.

Las variables definidas dentro de una funcin son variables locales, en el sentido de que son
inaccesibles desde otras partes del programa y en el de que no interfieren con variables del
mismo nombre definidas en otras funciones o partes del programa. Se puede decir que
pertenecen al propio espacio de trabajo de la funcin y no son vistas desde otros espacios
de trabajo. Para que la funcin tenga acceso a variables que no han sido pasadas como
argumentos es necesario declarar dichas variables como variables globales, tanto en el
programa principal como en las distintas funciones que deben acceder a su valor.
Dentro de la funcin, los valores de retorno deben ser calculados en algn sitio.De todas
formas, no hace falta calcular siempre todos los posibles valores de retorno de la funcin,
sino slo los que el usuario espera obtener en la sentencia de llamada a la funcin. En
cualquier funcin existen dos variables definidas de modo automtico, llamadas varargin y
varargout, que representan respectivamente el nmero de argumentos y el nmero de
valores de retorno con los que la funcin ha sido llamada. Dentro de la funcin, estas
variables pueden ser utilizadas como el programador desee.
La ejecucin de una funcin termina cuando se llega a su ltima sentencia ejecutable. Si se
quiere forzar el que una funcin termine de ejecutarse se puede utilizar la sentencia return,
que devuelve inmediatamente el control al entorno de llamada.
Caractersticas Generales de las funciones de librera
El concepto de funcin en SCILAB es semejante al de C y al de otros lenguajes de
programacin, aunque con algunas diferencias importantes. Al igual que en C, una funcin
tiene nombre, valor de retorno y argumentos. Una funcin se llama utilizando su nombre en
una expresin o utilizndolo como un comando ms.
//funcion de prueba para
evaluar function y=prueba(x)
y=x+3;
endfunction
->getf("prueba.sci")
-->prueba(1)
ans = 4.

Podemos ver que esta funcin es solamente la funcin de una recta, cuya pendiente es de 45
y desplazada 3 unidades.
y : es el valor de retorno.
prueba : es el nombre de la
funcin. x : es el argumento de
entrada.
Una caracterstica de SCILAB es que las funciones que no tienen argumentos no llevan
parntesis, por lo que a simple vista no siempre son fciles de distinguir de las simples
variables. La manera de cargar una funcin es mediante el comando getf ,este comando

tiene como entrada el nombre de la funcin, con la direccin que posee en el sistema de
archivos.
Ejemplo:
//function sin argumentos de
entrada function hello
printf("hello, world
\n") endfunction
-->getf("f:\matriz.sci")
-->hello()
hello, world
Otra forma de definir una funcin es hacerlo en la propia lnea de comandos del programa,
de manera que podemos definir rpidamente una funcin que puntualmente vamos a utilizar
es con el comando deff:
-->deff('[x]=mifuncion(y,z)','x=y+z')
-->a=mifuncion(23,43)
a = 66.

De este modo, hemos definido la funcin zyx+= y podemos utilizarla mientras no cerremos
el programa (Nota: las funciones pueden ser redefinidas, as que debemos tener cuidado con
el nombre que le ponemos a la funcin definida con deff).

CONCLUSIONES

La seleccon de un codigo de lineas reside en las diferencias


de las caracteristicas de cada una de las seales, estan son
las que hacen que sean ideales para algunas aplicaciones y
de poco interes para otras.

El cdigo de lnea es usado para el transporte digital de


datos, en las pruebas de laboratorio se observa que este
cdigo consiste en representar seal digital transportada
respecto a su amplitud respecto al tiempo.

Los impulsos se representan por niveles lgicos 1 o 0 digital.

Observamos tambin que el cdigo de lnea puede ser


puesta directamente en una trasmisin de lnea, en forma de
variaciones de voltaje o corriente.

Mientras que para el cdigo Manchester se caracteriza por


tener una transicin de valor en Tb/2 durante el intervalo [0,
Tb]. El 1 se representa por cambio de +V a V y el 0
hace el proceso opuesto.

Bueno y para eliminar la componente continua usaramos la


codificacin Manchester ya que se necesitara que contenga
el mismo nmero de impulsos positivos que negativos, as se
anulara la componente continua.

Los cdigos de bloque incorporan cierta redundancia a las


palabras del mensaje. Esa redundancia es un grupo de bits
que no portaban informacin esencial y que su objetivo es
el de detectar y corregir errores que se pudieran producir
durante la transmisin.

Você também pode gostar