P. 1
Codigos de Linea en MATLAB

Codigos de Linea en MATLAB

|Views: 5|Likes:
Publicado porPablo V Salazar

More info:

Published by: Pablo V Salazar on May 15, 2013
Copyright:Attribution Non-commercial

Availability:

Read on Scribd mobile: iPhone, iPad and Android.
download as DOCX, PDF, TXT or read online from Scribd
See more
See less

04/21/2015

pdf

text

original

Codigos de linea en MATLAB INTRODUCCIÓN 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. Fig.1. Códigos de línea usuales. 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 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

else %pause. hold on.grid on. axis([0 length(h)-1 -1.'LineWidth'. if h(n+1)==0 end y=(t end else Fig. 2.5 1. 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 .grid on d=plot(t. n=1. disp('one'). 3. %Graficación de los CEROS (0) if h(n) == 0 if h(n+1)==0 y=(t>n).5]). 1. La función siguiente simula esta codificación: function PNRZ(h) %Example: %h=[1 0 0 1 1 0 1 0 1 0].5). Función URZ(h).V durante todo el periodo de bit.001:n. l=length(h).5]). disp('zero'). . while n<=length(h)-1. n=1.2. else y=(t==n). set(d. y=(t end end d=plot(t. t=n-1:0.5).y). Función UNRZ(h). set(d.5 axis([0 length(h)-1 -1. RZ'). l=length(h). while n<=length(h)-1. h(l+1)=1. %URZ(h) clf. h(l+1)=1. 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. %PNRZ(h) clf.y).Fig.'LineWidth'. hold on. La función siguiente simula esta codificación: function URZ(h) %Example: %h=[1 0 0 1 1 0 1 0 1 0]. title('Line code UNIPOLAR title('Line code UNIPOLAR RZ').2. %Graficación de los UNOS end (1) n=n+1.

5 1. disp('zero'). end Fig.001:n.2.2. title('Line code BIPOLAR RZ').5 1. disp('zero').'LineWidth'.5 1. Función PNRZ(h). end if h(n+1)==0 y=(t else . if h(n) == 0 if h(n+1)==0 y=-(t else y=-(t end d=plot(t. 4. axis([0 length(h)-1 -1. set(d. set(d. hold on.2.grid on. else y=(t end d=plot(t. l=length(h).5 1.5]). hold on.'LineWidth'.'LineWidth'. set(d. %pause. end n=n+1.t=n-1:0. t=n-1:0.y). axis([0 length(h)-1 -1. %BRZ(h) clf. else if h(n+1)==0 y=(t else y=(t end d=plot(t.5). while n<=length(h)-1.5]). title('Line code POLAR NRZ'). end n=n+1.5]). 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. title('Line code BIPOLAR RZ'). if h(n) == 0 if h(n+1)==0 y=-(t else y=-(t end d=plot(t.'LineWidth'.grid on. h(l+1)=1.5).001:n.5).y). axis([0 length(h)-1 -1. set(d. title('Line code POLAR NRZ').grid on. hold on. %pause. hold on. La función siguiente simula esta codificación: function BRZ(h) %Example: %h=[1 0 0 1 1 0 1 0 1 0].2. axis([0 length(h)-1 -1.5).y). n=1. disp('one').grid on.y).5]). disp('one').

5. axis([0 length(h)-1 -1. Función BRZ(h). La función siguiente simula esta codificación: function AMINRZ(h) %Example: %h=[1 0 0 1 1 0 1 0 1 0]. Función AMINRZ(h). else y=(t==n). t=n-1:0. end n=n+1.5]).5).001:n. disp('one'). h(l+1)=1. set(d.y). %AMINRZ(h) clf. title('Line code AMI NRZ'). %pause.5 1. 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. end Fig. set(d.2. disp('zero').grid on. if h(n) == 0 if h(n+1)==0 y=(t>n). axis([0 length(h)-1 -1.grid on. else ami=ami*-1. end end d=plot(t. while n<=length(h)-1. hold on. n=1. 6.5). title('Line code AMI NRZ').5 1. else if ami==1 y=-(t==n). Un cero lógico (0L) se representa con un nivel de 0 V. l=length(h).Fig. Un cero lógico (0L) se representa con un nivel de 0 V. ami=-1.'LineWidth'. FUNCIÓN AMINRZ(h) El código AMI representa los unos lógico por medio de valores alternadamente positivos (+V) y negativos (-V).2.'LineWidth'. 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). La función siguiente simula esta codificación: . hold on.5]).

%pause. l=length(h). while n<=length(h)-1.2. title('Line code MANCHESTER').'LineWidth'.grid on.'LineWidth'.grid on. Un cero lógico (0L) se representa con un nivel de .y). hold on.y).5 1. axis([0 length(h)-1 -1. disp('zero'). set(d. end end d=plot(t.5 1. axis([0 length(h)-1 -1. t=n-1:0. h(l+1)=1. axis([0 length(h)-1 -1. hold on. else if ami==1 y=-(t==n). set(d. Función AMINRZ(h). title('Line code MANCHESTER').5 1. end .5]).5]). set(d. ami=-1. title('Line code AMI RZ'). 7. %MANCHESTER(h) clf.5).'LineWidth'.y). else if h(n+1)==0 y=(t<N)-2*(T else y=(t<N)-2*(T end d=plot(t.2. disp('one').001:n.5).2.y). if h(n) == 0 if h(n+1)==0 y=-(t<N)+2*(T else y=-(t<N)+2*(T end d=plot(t.grid on. %pause. h(l+1)=1. t=n-1:0. n=1.5]). hold on. h=~h. end n=n+1.5 1.grid on. set(d. 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. hold on.5). else y=(t==n).'LineWidth'. end n=n+1. title('Line code AMI RZ'). 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. while n<=length(h)-1.001:n. l=length(h). axis([0 length(h)-1 -1. %AMIRZ(h) clf.5]).V durante la primera mitad del periodo de bit y con +V durante la segunda mitad.2. disp('zero').5). end Fig. disp('one'). n=1. if h(n) == 0 if h(n+1)==0 y=(t>n).function AMIRZ(h) %Example: %h=[1 0 0 1 1 0 1 0 1 0]. La función siguiente simula esta codificación: function MANCHESTER(h) %Example: %h=[1 0 0 1 1 0 1 0 1 0]. else ami=ami*-1.

Fig. Esta interfaz trabaja de dos maneras.matpic. Espectro de códigos de línea. Función MANCHESTER(h). Asimismo. Fig. 9.com . Fuente Bibliográfica: http://www. la interfaz permite ver el espectro de algunos códigos de línea al presiona el botón Ver Espectros. La primera es generando secuencias de bits aleatorios al presionar el botón Random y la segunda es ingresando el propio usuario los bits a codificar. Programa line_code. 10. INTERFAZ GRÁFICA DE USUARIO La figura 9 muestra el entorno de la interfaz gráfica de usuario que simula varios códigos de línea. 8.Fig.

You're Reading a Free Preview

Descarga
scribd
/*********** DO NOT ALTER ANYTHING BELOW THIS LINE ! ************/ var s_code=s.t();if(s_code)document.write(s_code)//-->