CODIFICADORES DE LÍNEA

22
UNIVERSIDAD NACIONAL DE LOJA ÁREA DE LA ANERGÍA LAS INSUSTRIAS Y LOS RECURSOS NATURALES NO RENOVABLES ELECTRÓNICA Y TELECOMUNICACIONES PRÁCTICA DE COMUNICACIONES DIGITALES CODIFICACIÓN DE LÍNEA Integrantes: Mariela Espinoza Alcira Loaiza Eduardo Neira Tatiana Reyes Cintya Quezada Docente: Ing. Klever Carrión Fecha: 11 de julio de 2012 Usuario

Transcript of CODIFICADORES DE LÍNEA

Page 1: CODIFICADORES DE LÍNEA

PRÁCTICA DE COMUNICACIONES DIGITALES

CODIFICACIÓN DE LÍNEA

Integrantes:Mariela Espinoza

Alcira LoaizaEduardo NeiraTatiana Reyes

Cintya Quezada

Docente:

Ing. Klever CarriónFecha:

11 de julio de 2012

UNIVERSIDAD NACIONAL DE LOJAÁREA DE LA ANERGÍA LAS INSUSTRIAS Y LOS RECURSOS

NATURALES NO RENOVABLESELECTRÓNICA Y TELECOMUNICACIONES

Page 2: CODIFICADORES DE LÍNEA

CODIFICADORES DE LÍNEA

OBJETIVOS:

Estudiar los Codificadores de Línea. Simular lo códigos de línea Unipolar, Polar, Bipolar y Manchester. Obtener la PSD para cada uno de los Códigos de Línea.

MARCO TEÓRICO

CODIFICADORES DE LÍNEA

Un codificador es un circuito combinatorio que cuenta con un número determinado de entradas, de las cuales sólo una tiene el estado lógico 1, y se genera un código de varios bits que depende de cuál sea la entrada excitada.

OBJETIVOS DE LA CODIFICACIÓN DE LÍNEA

La codificación de línea es un método usado para adaptar o convertir información binaria representada en niveles lógicos (TTL, CMOS, etc) encontrados en dispositivos digitales (tales como computadoras, routers y equipos de comunicaciones) a un formato de señal que sea adecuado para su transporte por un medio físico alámbrico (en sistemas inalámbricos generalmente dicha adaptación se hace mediante modulación de radio digital: PSK, FSK, QPSK, etc.).

El proceso de codificación toma los streams de datos de la fuente en formato binario y los convierte a una señal con niveles de tensión unipolares o bipolares con una amplitud específica que representen los datos de la fuente ya sea a través de la equivalencia entre los niveles lógicos y los niveles de la señal codificada o mediante transiciones u otros procedimientos en los niveles de la señal codificada.

LA CODIFICACIÓN DE LÍNEA APUNTA HACIA LOS SIGUIENTES OBJETIVOS:

Eliminación de la componente de DC de la señal: Al suprimir la componente de DC mediante codificación se mejora la eficiencia de potencia del sistema de transmisión. Ésto se logra a través de la implementación de códigos bipolares (voltajes positivos y negativos en la señal) ya sean con retorno a cero (BPRZ figura 1-b) o sin retorno a cero (BPSRZ figura 1-a).

Figura 1. Códigos bipolares (a) BPNRZ (B) BPRZ

Recuperación del reloj: Para facilitar la sincronización entre los extremos transmisor y receptor y así asegurar la correcta interpretación de las secuencias de datos, se deben utilizar códigos que

Page 3: CODIFICADORES DE LÍNEA

procuren transiciones de nivel que permitan recuperar el reloj de la señal transmitida. Para lograr ésto, se prefieren códigos bipolares con retorno a cero que como se ve en la figura 1-b generan más cambios de nivel de la señal que los códigos sin retorno a cero. (especialmente en secuencias muy largas de unos o ceros). Otro tipo de códigos utilizados son los códigos de transición como el Manchester (figura 2) y el Manchester diferencial, cuya representación de los bits no se da en los niveles de la señal sino en los cambios que ésta presenta en la mitad del tiempo de bit: de alto a bajo o de bajo a alto según corresponda para unos y ceros.

Figura 2. Codificación Manchester

Reducción del ancho de banda requerido en el medio: Según la cantidad de transiciones por tiempo de bit que se realicen en la señal codificada, la frecuencia de la componente fundamental de la señal codificada podrá ser un múltiplo o un submúltiplo de la frecuencia de bit de la señal de entrada del codificador, con lo cual se pueden reducir los requerimientos en el ancho de banda del canal o empeorarlos tratando de mejorar otros aspectos como la recuperación del reloj.

Una vez conocidos los objetivos de la codificación de línea, cabe mencionar que cada esquema de codificación logra cumplir algunos comprometiendo otros, siendo así de vital importancia una evaluación de los requerimientos del sistema de comunicaciones para escoger el código que más se adapte a los requerimientos de transmisión.

En próximos post hablaré un poco de los tipos de códigos y de algunos esquemas de codificación específicos.

TIPOS DE CÓDIGO:

Con retorno a cero RZ: la forma de onda retorna a un nivel de cero durante una porcion. Sin retorno a cero NRZ.

CLASES DE CÓDIGO DE LÍNEA

Unipolar: lógica positiva el 1 binario se representa con un nivel alto (+A) y un 0 binario con un nivel cero

Page 4: CODIFICADORES DE LÍNEA

Figura 3. Codificación Unipolar NRZ Y RZ

CARACTERÍSTICAS DEL CÓDIGO UNIPOLAR

Es muy sencillo de implementar circuitalmente Es imposible la extracción del reloj si NRZ (hay que transmitir el reloj) Existe una componente muy alta de DC Ancho de banda de transmisión muy alto Poco inmune a interferencia por ruido e intersimbólica.

Características del código Unipolar NRZ

Figura 4. PSD de la Codificación Unipolar NRZ Y RZ

Polar: Los unos y cero binarios se representan por medio de niveles positivos y negativos

Page 5: CODIFICADORES DE LÍNEA

Figura 5. Codificación Polar NRZ Y RZ

Características del código Polar

Mas eficiente que el unipolar Tiene componente de DC porque los símbolos son no son totalmente equiprobables. Su espectro tiene la mayor parte de energía en las componentes de baja frecuencia, lo cual

lo hace susceptible al ruido, además si tiene cadenas de cerro se incrementa las componentes de baja frecuencia.

Es imposible la extracción del reloj si NRZ (hay que transmitir el reloj

Figura 6. PSD de la Codificación Polar NRZ Y RZ

Bipolar: Los unos (1) binarios se representan por medio de valores alternadamente negativos y positivos, los ceros (0) se representan con nivel cero. AMI

Page 6: CODIFICADORES DE LÍNEA

Figura 7. Codificación Bipolar NRZ Y RZ

Características del código Bipolar RZ

La información de reloj puede extraerse de la señal codificada, excepto para secuencias largas de 0

Este código no tiene DC, Pocas componentes de baja frecuencia El código permite detectar errores de un bit analizando la alternancia de los 1, si un 0 se

convierte en 1 ocurre violación de código. En comparación del código unipolar requiere el doble de la potencia El ancho de banda es mas pequeño que los códigos anteriores

Figura 8. PSD de la Codificación Bipolar NRZ Y RZ

Manchester: (bifase) Cada uno lógico se representa por medio pulso de bit con transición de un nivel de tensión positivo (+V) a un nivel de tensión negativo (-V). El cero lógico se representa en un formato inverso.

Page 7: CODIFICADORES DE LÍNEA

Figura 9. Codificación Manchester NRZ Y RZ

Características del código Manchester

Este código no tiene DC El reloj puede extraerse de la señal, incluso para cadenas largas de 0 o de 1. El código Manchester diferencial permite detectar errores, por no debe existir dos unos

consecutivos con la misma polariza.

Figura 10. PSD de la Codificación Manchester NRZ Y RZ

Factores para seleccionar codigos de línea

Se deben tener en cuenta seis factores principales:

1. Autosincronización. 2. Baja probabilidad de error de bit. 3. Un espectro que es adecuado para el canal 4. Ancho de banda de transmisión. 5. Capacidad de detección de errores 6. Transparencia

Autosincronización. Contenido suficiente de señal de temporización(reloj) que permita identificar el tiempo correspondiente a un bit. La información de sincronización incorporada en el código de manera que los sincronizadores de bit pueden diseñarse para extraer la señal de reloj o

Page 8: CODIFICADORES DE LÍNEA

sincronización.Una serie larga de 1 y 0 binarios no deberá causar problemas en recuperación de tiempo.Los sistemas de auto-sincronización SELpor ejemplo miden el voltaje y la frecuencia en el generador y en el sistema eléctrico de potencia externo, envían pulsos proporcionales de corrección para ajustar el gobernador y al excitador del generador si es necesario y cierra automáticamente el interruptor en condiciones de sincronismo. Este proceso proporciona fiabilidad y seguridad en la auto-sincronización del generador al sistema eléctrico de potencia.

Fig 1.Sistema de Autosincronización

Baja probabilidad de error de bit. Los receptores pueden diseñarse de tal manera que recuperarán los datos binarios con una baja probabilidad de error de bit cuando la señal de datos de entrada está corrupta debido al ruido o ISI.

Un espectro que es adecuado para el canal. Si el canal está acoplado a AC, la PSD de la señal del código de línea será despreciable en frecuencias cercanas a cero. Además, el ancho de banda de la señal requiere ser lo suficientemente pequeña en comparación al del canal, por lo que la ISI no será un problema.

Ancho de banda de transmisión.Contenido suficiente de señal de temporización(reloj) que permita identificar el tiempo correspondiente a un bit. Tiene que ser lo más pequeño posible.

Capacidad de detección de errores. La definición del codigo incluye el poder detetar un error, en ocaciones corregirlo. Debe ser posible implementar fácilmente esta característica mediante la adición de codificadores y decodificadores de canal, o la característica debe incorporarse dentro del código de línea.Los códigos detectores se refieren a los errores de transmisión en las líneas se deben a mucho a diversos factores, como el ruido térmico, ruido impulsivo y ruido de intermodulación. Dependiendo del medio de transmisión y del tipo de codificación empleado, se pueden presentar otros tipos de anomalías como ruido de redondeo y atenuación, así como cruce de líneas y eco.

Page 9: CODIFICADORES DE LÍNEA

TransparenciaIndependencia de las característica del código en relación a la secuencia de unos y ceros que se transmita. El protocolo de datos y el código de línea están diseñados de tal forma que toda posible secuencia de datos se recibe fiel y transparentemente.

MATERIALES

Matlab.

PROCEDIMIENTO

CÓDIGO GENERADO EN MATLAB:

La práctica está realizada mediante una interfaz gráfica de usuario, donde los comandos principales para obtener las gráficas de los diferentes códigos se muestran a continuación:

Estas secuencias permiten ingresar los dígitos binarios de la palabra que serán codificadas mediante los códigos de línea:

a=str2double(get(handles.uno,'String'));b=str2double(get(handles.dos,'String'));c=str2double(get(handles.tres,'String'));d=str2double(get(handles.cuatro,'String'));e=str2double(get(handles.cinco,'String'));f=str2double(get(handles.seis,'String'));g=str2double(get(handles.siete,'String'));h=str2double(get(handles.ocho,'String'));i0=str2double(get(handles.nueve,'String'));j0=str2double(get(handles.diez,'String')); if (a~=0 && a~=1) co=questdlg('The value must be binary','ERROR','1','0','1'); if strcmp(co,'1') set(handles.uno,'String','1');a=1; else set(handles.uno,'String','0');a=0; endelseif (b~=0 && b~=1) co=questdlg('The value must be binary','ERROR','1','0','1'); if strcmp(co,'1') set(handles.dos,'String','1');b=1; else set(handles.dos,'String','0');b=0; endelseif (c~=0 && c~=1) co=questdlg('The value must be binary','ERROR','1','0','1'); if strcmp(co,'1') set(handles.tres,'String','1');c=1; else set(handles.tres,'String','0');c=0; endelseif (d~=0 && d~=1)

Page 10: CODIFICADORES DE LÍNEA

co=questdlg('The value must be binary','ERROR','1','0','1'); if strcmp(co,'1') set(handles.cuatro,'String','1');d=1; else set(handles.cuatro,'String','0');d=0; endelseif (e~=0 && e~=1) co=questdlg('The value must be binary','ERROR','1','0','1'); if strcmp(co,'1') set(handles.cinco,'String','1');e=1; else set(handles.cinco,'String','0');e=0; endelseif (f~=0 && f~=1) co=questdlg('The value must be binary','ERROR','1','0','1'); if strcmp(co,'1') set(handles.seis,'String','1');f=1; else set(handles.seis,'String','0');f=0; endelseif (g~=0 && g~=1) co=questdlg('The value must be binary','ERROR','1','0','1'); if strcmp(co,'1') set(handles.siete,'String','1');g=1; else set(handles.siete,'String','0');g=0; endelseif (h~=0 && h~=1) co=questdlg('The value must be binary','ERROR','1','0','1'); if strcmp(co,'1') set(handles.ocho,'String','1');h=1; else set(handles.ocho,'String','0');h=0; endelseif (i0~=0 && i0~=1) co=questdlg('The value must be binary','ERROR','1','0','1'); if strcmp(co,'1') set(handles.nueve,'String','1');i0=1; else set(handles.nueve,'String','0');i0=0; endelseif (j0~=0 && j0~=1) co=questdlg('The value must be binary','ERROR','1','0','1'); if strcmp(co,'1') set(handles.diez,'String','1');j0=1; else set(handles.diez,'String','0');j0=0; endend

Generación de los códigos de línea a partir de los dígitos binarios ingresados:

case 1 hold off; h=handles.bits; n=1;

Page 11: CODIFICADORES DE LÍNEA

h(11)=1; while n<=10; t=n-1:0.01:n; if h(n) == 0 if h(n+1)==0 y=(t>n); else y=(t==n); end d=plot(t,y);title('Código UNIPOLAR NRZ');grid on set(d,'LineWidth',2.5); hold on; axis([0 10 -1.5 1.5]); else if h(n+1)==0 y=(t<n)-0*(t==n); else y=(t<n)+1*(t==n); end d=plot(t,y);title('Código UNIPOLAR NRZ');grid on; set(d,'LineWidth',2.5); hold on; axis([0 10 -1.5 1.5]); end n=n+1; %% Espectro del código de Línea Fs=40000; N1=length(y); w0=[0:N1-1]; w=(w0.*Fs/N1)-0.5.*Fs; fourier1=fftshift(fft(y)); amp=abs(fourier1)./max(abs(fourier1)); figure (11) plot(t,amp) axis([0 10 -1.5 1.5]); end

case 2 hold off; h =handles.bits; n=1; h(11)=1; while n<=10; t=n-1:0.1: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);title('Código POLAR NRZ');grid on set(d,'LineWidth',2.5); hold on; axis([0 10 -1.5 1.5]);

Page 12: CODIFICADORES DE LÍNEA

else if h(n+1)==0 y=(t<n)-1*(t==n); else y=(t<n)+1*(t==n); end d=plot(t,y);title('Código POLAR NRZ');grid on; set(d,'LineWidth',2.5); hold on; axis([0 10 -1.5 1.5]); end n=n+1; %% Espectro del código de Línea Fs=40000; N1=length(y); w0=[0:N1-1]; w=(w0.*Fs/N1)-0.5.*Fs; fourier1=fftshift(fft(y)); amp=abs(fourier1)./max(abs(fourier1)); figure (12) plot(t,amp) axis([0 10 -1.5 1.5]); end

case 3 hold off; h =handles.bits; n=1; h(11)=1; while n<=10; t=n-1:0.01: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);title('Código UNIPOLAR RZ');grid on set(d,'LineWidth',2.5); hold on; axis([0 10 -1.5 1.5]); %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);title('Código UNIPOLAR RZ');grid on; set(d,'LineWidth',2.5); hold on; axis([0 10 -1.5 1.5]); end

Page 13: CODIFICADORES DE LÍNEA

n=n+1; %% Espectro del código de Línea Fs=40000; N1=length(y); w0=[0:N1-1]; w=(w0.*Fs/N1)-0.5.*Fs; fourier1=fftshift(fft(y)); amp=abs(fourier1)./max(abs(fourier1)); figure (13) plot(t,amp) axis([0 10 -1.5 1.5]); end

case 4 hold off; h =handles.bits; n=1; h(11)=1; while n<=10; t=n-1:0.01: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);title('Código BIPOLAR RZ');grid on set(d,'LineWidth',2.5); hold on; axis([0 10 -1.5 1.5]); 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);title('Código BIPOLAR RZ');grid on; set(d,'LineWidth',2.5); hold on; axis([0 10 -1.5 1.5]); end n=n+1; %% Espectro del código de Línea Fs=40000; N1=length(y); w0=[0:N1-1]; w=(w0.*Fs/N1)-0.5.*Fs; fourier1=fftshift(fft(y)); amp=abs(fourier1)./max(abs(fourier1)); figure (14) plot(t,amp) axis([0 10 -1.5 1.5]); end

Page 14: CODIFICADORES DE LÍNEA

case 5 hold off; h =handles.bits; h=~h; n=1; h(11)=1; while n<=10; t=n-1:0.1: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);title('Código MANCHESTER NRZ');grid on set(d,'LineWidth',2.5); hold on; axis([0 10 -1.5 1.5]); 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);title('Código MANCHESTER NRZ');grid on; set(d,'LineWidth',2.5); hold on; axis([0 10 -1.5 1.5]); end n=n+1; %% Espectro del código de Línea Fs=40000; N1=length(y); w0=[0:N1-1]; w=(w0.*Fs/N1)-0.5.*Fs; fourier1=fftshift(fft(y)); amp=abs(fourier1)./max(abs(fourier1)); figure (15) plot(t,amp) axis([0 10 -1.5 1.5]); end

RESULTADOS

SIMULACIÓN DE CÓDIGOS DE LÍNEA, ESPECTRO DEL CÓDIGO Y PSD:

CÓDIGO UNIPOLAR NRZ Código de Línea Unipolar NRZ

Page 15: CODIFICADORES DE LÍNEA

Espectro del código de Línea:

0 1 2 3 4 5 6 7 8 9 10-1.5

-1

-0.5

0

0.5

1

1.5Código UNIPOLAR NRZ

PSD para código de línea Unipolar NRZ

CÓDIGO POLAR NRZ Código de Línea Polar NRZ

Page 16: CODIFICADORES DE LÍNEA

Espectro del código de Línea:

0 1 2 3 4 5 6 7 8 9 10-1.5

-1

-0.5

0

0.5

1

1.5Código POLAR NRZ

PSD para código de Línea Polar NRZ

CÓDIGO UNIPOLAR RZ Código de Línea Unipolar RZ

Page 17: CODIFICADORES DE LÍNEA

Espectro del código de Línea:

0 1 2 3 4 5 6 7 8 9 10-1.5

-1

-0.5

0

0.5

1

1.5Código UNIPOLAR RZ

PSD para código de línea Unipolar RZ

CÓDIGO BIPOLAR RZ Código de Línea Bipolar Rz

Page 18: CODIFICADORES DE LÍNEA

Espectro del código de Línea:

0 1 2 3 4 5 6 7 8 9 10-1.5

-1

-0.5

0

0.5

1

1.5Código BIPOLAR RZ

PSD para código de Línea Bipolar RZ

CÓDIGO MANCHESTER Código de Línea Manchester NRZ

Page 19: CODIFICADORES DE LÍNEA

Espectro del código de Línea:

0 1 2 3 4 5 6 7 8 9 10-1.5

-1

-0.5

0

0.5

1

1.5Código MANCHESTER NRZ

PSD para código de Línea Manchester NRZ

BIBLIOGRAFÍA

Page 20: CODIFICADORES DE LÍNEA

[1] Codificadores. [en línea] Disponible en: https://sites.google.com/site/sistemasdemultiplexado/dispositivos-utilizados-codificadores-multiplexores-y-transceptores-entre-otros/2-4-codificadores

[2] Pablo Borbon. “Objetivos de la Codificación” [en línea] Disponible en: http://pabloborbon.com/2010/02/objetivos-de-la-codificacion-de-linea/

[3] Luís Leonardo Camargo Ariza. “CODIFICACION DE LÍNEA” [en línea] Disponible en: llcamargoa.files.wordpress.com/2011/12/clase-4.pptx

[4] “Auto sincronización” [en línea] Disponible en: http://www.selinc.com.mx/autosincronizacion.php

[5] Sara Hernandez. “CODIFICACION DE LÍNEA” [en línea] Disponible en: http://www.slideshare.net/sarochishernandez/codificacion-de-linea