CODIFICADORES DE LÍNEA
-
Upload
mariela-espinoza -
Category
Documents
-
view
128 -
download
4
Transcript of 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
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
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
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
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
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.
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
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.
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)
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;
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]);
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
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
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
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
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
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
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
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
[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