You are on page 1of 6

Codigos de linea en MATLAB 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. Fig.1. Cdigos de lnea usuales. Algunas de las caractersticas deseables de los cdigos de lnea son: Autosincronizacin: contenido suficiente de seal de temporizacin (reloj) que permita identificar el tiempo correspondiente a un bit. Capacidad de deteccin de errores: la definicin del cdigo incluye el poder de detectar un error. Inmunidad al ruido: capacidad de detectar adecuadamente el valor de la seal ante la presencia de ruido (baja probabilidad de error). Densidad espectral de potencia: igualacin entre el espectro de frecuencia de la seal y la respuesta en frecuencia del canal de transmisin. Ancho de banda: contenido suficiente de seal de temporizacin que permita identificar el tiempo correspondiente a un bit. Transparencia: independencia de las caractersticas del cdigo en relacin a la secuencia de unos y ceros que transmita. FUNCIN UNRZ(h) El cdigo Unipolar 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 0 V durante todo el periodo de bit. La funcin siguiente simula esta codificacin: 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 else y=(t 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

Fig. 2. Funcin UNRZ(h). FUNCIN URZ(h) 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) %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; %Graficacin de los CEROS (0) if h(n) == 0 if h(n+1)==0 y=(t>n); else

y=(t==n); y=(t end end d=plot(t,y);grid on d=plot(t,y);grid on; title('Line code UNIPOLAR title('Line code UNIPOLAR RZ'); RZ'); set(d,'LineWidth',2.5); set(d,'LineWidth',2.5); hold on; hold on; axis([0 length(h)-1 -1.5 axis([0 length(h)-1 -1.5 1.5]); 1.5]); disp('zero'); disp('one'); %Graficacin de los UNOS end (1) n=n+1; else %pause; if h(n+1)==0 end y=(t end else Fig. 3. Funcin URZ(h). FUNCIN PNRZ(h) 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) %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 else y=-(t 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 else y=(t

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 Fig. 4. Funcin PNRZ(h). FUNCIN BRZ(h) 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) %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 else y=-(t 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

y=(t 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

if h(n+1)==0 y=(t else

Fig. 5. Funcin BRZ(h). FUNCIN AMINRZ(h) El cdigo AMI representa los unos lgico por medio de valores alternadamente positivos (+V) y negativos (-V). Un cero lgico (0L) se representa con un nivel de 0 V. La funcin siguiente simula esta codificacin:

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 else y=-(t end else if ami==1

y=(t else y=-(t 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. Funcin AMINRZ(h). FUNCIN AMIRZ(h) El cdigo AMI con retorno a cero representa los unos lgico por medio de valores alternadamente positivos (+V) y negativos (-V) y un retorno a cero en la mitad del periodo del bit. Un cero lgico (0L) se representa con un nivel de 0 V. La funcin siguiente simula esta codificacin:

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 else y=-(t end else

if ami==1 y=(t else y=-(t 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 Fig. 7. Funcin AMINRZ(h). FUNCIN MANCHESTER(h) 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) %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 else

y=-(t<N)+2*(T 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 else y=(t<N)-2*(T

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

Fig. 8. Funcin MANCHESTER(h). INTERFAZ GRFICA DE USUARIO La figura 9 muestra el entorno de la interfaz grfica de usuario que simula varios cdigos de lnea.

Fig. 9. Programa line_code. Esta interfaz trabaja de dos maneras. La primera es generando secuencias de bits aleatorios al presionar el botn Random y la segunda es ingresando el propio usuario los bits a codificar. Asimismo, la interfaz permite ver el espectro de algunos cdigos de lnea al presiona el botn Ver Espectros.

Fig. 10. Espectro de cdigos de lnea. Fuente Bibliogrfica: http://www.matpic.com

You might also like