LABORATORIO 2 – CÓDIGOS DE LÍNEA.
CÓDIGOS DE LÍNEA
Marcos Bernard, Calixto Ló[email protected]
Piero Alfonzo, Carneiro Carranzae-mail: [email protected]
RESUMEN: En el presente artículo, se describen
algunos tipos de “código de línea” utilizadosfrecuentemente en las telecomunicaciones y diversasramas de la ingeniería y comunicación modernas.Se utilizará el software Scilab en su versión 5.5.2 parapoder graficar los diversos tipos de código mediante laimplementación de funciones de usuario, las cualestambién serán descritas, implementadas ycomprobadas.
1 INTRODUCCIÓN
En telecomunicaciones, un código enlínea (modulación en banda base) es un código utilizadoen un sistema de comunicación para propósitos detransmisión.
Son frecuentemente usados para el transportedigital de datos. Estos códigos consisten en representaruna señal digital transportada graficando su amplitud enel dominio del tiempo. La señal está perfectamentesincronizada gracias a las propiedades específicas de lacapa física. La representación de la onda se suelerealizar mediante un número determinado de impulsos.Estos impulsos representan los 1s y los 0s digitales. Lostipos más comunes de codificación en línea sonel unipolar, polar, bipolar y Manchester.
Figura 1.0 Tipos de señalización más utilizados.
2 CLASIFICACIÓN
CAMPOS DE UTILIZACIÓN
La señal en línea codificada puede tener lassiguientes utilidades en diversos campos:
• Puede ser puesta directamente en unatransmisión de línea, en forma devariaciones de voltaje o corriente.
• Está lo bastante modulada para crear unaseñal de radiofrecuencia que puede sermandada libre en el espacio
• Puede ser usada para encender y apagaruna luz en Redes Inalámbricas Ópticas(en inglés Free Space Optics – FSO-),más conocidas como infrarrojos.
• Puede convertirse en campos magnéticosen un disco duro.
• Puede ser impresa para crear códigos debarras.
Figura 2.1 Código de barras QR.
Figura 2.2 Transmisión de datos digitales (8 bits).
1
LABORATORIO 2 – CÓDIGOS DE LÍNEA.
COMPONENTE CONTINUA
En la transmisión de datos es conveniente que lasecuencia de los símbolos transmitidos no presenteuna componente continua. El código en línea más simple, el unipolar, que notiene límites en su componente continua, damuchos errores en los sistemas.La mayoría de los códigos en línea eliminan lacomponente continua, existen dos modos deeliminar dicha componente:
• Diseñar cada código transmitido de talforma que contenga el mismo númerode impulsos positivos que negativos,así se anularía la componentecontinua. Un ejemplo de este tipocódigos es el Manchester.
• Usar un código en el que algunos otodos los dígitos o caracteres estánrepresentados por dos conjuntos dedígitos, de disparidad opuesta, que seutilizan en una secuencia de maneraque se minimice la disparidad total deuna larga cadena de dígitos. Ejemplosde este tipo de códigos es el códigoAMI, 8B10T, 4B3T, etc.
Figura 2.3 Codificación de 11011000100 en CódigoManchester.
Figura 2.4 Ejemplo de codificación bipolar, o AMI.
SINCRONISMO DE LA SEÑAL
Los códigos en línea deberían hacer posible que elreceptor se sincronice en fase con la señal recibida. Si lasincronización no es ideal, entonces la señaldecodificada no tendrá diferencias óptimas, en amplitud,entre los distintos dígitos o símbolos usados en loscódigos en líneas. Esto incrementará la probabilidad deerror en los datos recibidos.Para que la recuperación del reloj sea fiable en elreceptor, normalmente se impone un número máximo deceros o unos consecutivos razonables. El periodo dereloj se recupera observando las transiciones en lasecuencia recibida, hasta que el número máximopermitido de 0s o 1s seguidos garantice la recuperacióndel reloj, mientras que las secuencias sin estasrestricciones pueden empeorar la calidad del código.
También es recomendable que los códigos en línea tengan una estructura de sincronismo para que sea posible detectar errores.
Figura 2.5 Ejemplo de código Manchester diferencial.
Figura 2.6 Código MLT-3.
3 COMO CREAR FUNCIONES DEUSUARIO EN SCILAB
Como sabemos, en Scilab a cualquier programa leasignamos la extensión *.sce. Al momento de crearfunciones de usuario “function” crearemos nuevosarchivos pero en lugar de asignarles la extensión *.scelas funciones de usuario tendrán extensión *.sci.
Por lo tanto, a los archivos con extensión *.scepasaremos a llamarlos programas “principales”, y ledaremos este nombre pues desde estos archivos vamosa pedir que se ejecuten las “function” ó funciones deusuario.
CREAR UN ARCHIVO *.SCI
2
LABORATORIO 2 – CÓDIGOS DE LÍNEA.
Existen diversos métodos para poder crear un archivocon extensión *.sci, de los cuales se expondrá uno delos más eficaces:
1. Ejecutar la interfaz SciNotes desde la
consola, dando clic al icono .
Figura 3.1 Ejecutando SciNotes.
2. Dentro de la interfaz SciNotes, dar clic en
nuevo , luego en guardar como finalmente guardar el archivo conextensión *.sci (el nombre del archivodeberá coincidir con el nombre de lafunción que desee crear).
Figura 3.2 Guardando un archivo con formato *.sci.
3. Tipear el formato de una “function”,notará que al finalizar la palabra “function”aparece automáticamente el formato.
Figura 3.3 Formato genérico de una función (Sintaxis).
4. En este paso vamos a construir elprograma de la función de usuario.
Suponga que queremos calcula elfactorial de un número.El archivo de la función de usuario (adiferencia de los programas principales)tiene en su primer línea la palabrafunction y da por finalizada a la funcióncon la sentencia endfunction.
Figura 3.4 Construcción de una función de usuario.
5. En este paso vamos a explicar cómogenerar la librería de todas las funcionesde usuario creadas. Este paso se debehacer para cada nueva función deusuario.Se debe poner en la consola de Scilab lasiguiente sentencia:
• genlib ("nombre_librería","ruta_de_la_funcion")
Figura 3.5 Generación la librería.
Vale aclarar que se debe poner la rutadonde están las rutinas de usuariocreadas.
6. Para verificar que se generó bien lalibrería hay que poner en la consola deScilab lo siguiente y ejecutar
• libreria=lib("C:\Users\marco_000\Desktop\Rutinas")
3
Entrada de la rutina de usuario
Salida de la rutina de usuario
LABORATORIO 2 – CÓDIGOS DE LÍNEA.
Figura 3.6 Comprobación de librería.
7. Se debe tener presente que al crear unprograma principal, se deben añadir laslibrerías al inicio del mismo, ya que comomuchos softwares de programación lamemoria de programa (RAM) se reiniciaal apagar la pc y se pierden lasdirecciones de las librerías.
8. Por último, crearemos un programaprincipal (prueba.sce), y utilizaremos lalibrería creada anteriormente.
Figura 3.7 Construcción del programa de prueba.
9. Ejecutamos y comprobamos la respuesta.
Figura 3.8 Ejecución del programa principal.
10. Una vez realizado el paso 9, se puedeseguir utilizando la función en la consola,solo basta con tipear el argumentodeseado en la función creada, luegocomprobamos, la respuesta con la funciónpredeterminada “factorial ()” del propioscilab.
Figura 3.9 Comparación de la función de usuario y lafunción predeterminada de Scilab.
4 CÓDIGOS DE LÍNEA
Código Unipolar NRZ
Al símbolo “1” se le asigna un valor alto de señal (V) y al
símbolo “0” se le asigna el valor cero, es decir, 0V.
Representación de bits usando el código NRZu
Para obtener la DEP se descompone la señal:
4
Función de
Funciónpredeterminad
a de scilab.
Función deUsuario
LABORATORIO 2 – CÓDIGOS DE LÍNEA.
Los posibles valores de Ak y A(n+k) son +1 y 0, por lo que:
Y al sacar la transformada de Fourier correspondiente,nos queda que:
Su DEP será:
El BW correspondiente también es fb.
Código Polar NRZ
Al símbolo “1” se le asigna un valor alto de señal (V) y al
símbolo “0” se le asigna el valor opuesto, es decir, -V.
Representación de bits usando el código NRZp
Para hallar su DEP, se debe representar la señal como
el resultado de la convolución de un tren de impulsos
aleatorio y un pulso de duración Tb y Amplitud +V.
Por lo que:
Dado que p(t) es una función determinística, el reto
estará en calcular Gx(f). Para esto se calculará primerola autocorrelación Rx(τ):
Los posibles valores de Ak y A(n+k) son +1 y -1, por lo que:
Y al sacar la transformada de Fourier correspondiente,nos queda que:
Su DEP será entonces:
5
LABORATORIO 2 – CÓDIGOS DE LÍNEA.
El BW correspondiente es fb.
Código Unipolar RZ
Para el símbolo “1” tendrá dos valores: en el primer
semi-intervalo [0, Tb/2] tendrá un nivel +V y para el
segundo semi-intervalo [Tb/2, Tb] retornará a 0V. Ahora,
para el símbolo “2” se mantendrá en 0V por todo el
intervalo Tb. Gráficamente:
Representación de bits usando el código RZu
La descomposición de la señal para obtener la DEP es
como sigue:
La autocorrelación es entonces:
Por lo que la transformada de Fourier de la misma y la
Función Gy(f) nos queda así:
En el dominio de la frecuencia, Gy puede expresarse
como:
El BW correspondiente es 2fb.
Código Manchester
Al igual que con los códigos RZ, el código Manchester
se caracteriza por tener una transición 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.
Representación de bits usando el código Manchester
Descomponemos la señal:
Y, haciendo el mismo procedimiento que para los puntosanteriores, llegamos a:
6
LABORATORIO 2 – CÓDIGOS DE LÍNEA.
Con su expresión gráfica en el dominio de la frecuencia:
El BW correspondiente es 2fb
Código Bipolar RZ
En este código, cuando se asigna un impulso positivo al
primer “1”, al siguiente "1" se le asigna un impulso
negativo, y así sucesivamente. Por lo tanto, se asignan
alternativamente impulsos positivos y negativos a los "1"
lógicos. Además, al ser del tipo retorno a cero, durante la
segunda mitad del intervalo de bit se utiliza tensión cero
para representar el “1”.
Representación de bits usando el código BipolarRZ
De manera similar, obtenemos la densidad espectral de potencia para el código Bipolar RZ:
PSD para el código de línea Bipolar (solo frecuenciaspositivas)
5 RESULTADOS OBTENIDOS
A continuación se muestran las gráficas obtenidas para cada código de línea con el tren de pulsos 1101001 y periodo T = 1.
7
LABORATORIO 2 – CÓDIGOS DE LÍNEA.
5.1 Unipolar NRZ
5.2 Polar NRZ
5.3 Unipolar RZ
5.4 Manchester
5.5 Bipolar RZ
6 RELEVANCIA6.1 ¿Por qué son importantes los códigos de línea?
8
LABORATORIO 2 – CÓDIGOS DE LÍNEA.
De acuerdo a la estructura de un sistema de
Comunicaciones Digitales, al tener una señal
discretizada en el tiempo y en la amplitud, estaría
representada por símbolos cuya tasa de transmisión es
medida en baudios. Cuando se quiere transmitir la señal
en banda base binario a través del canal debe asignarse
una forma de onda a cada uno de los símbolos. Esto se
hace gracias al método conocido como codificación de
línea. Es por eso que son de suma importancia porque
surgen de la necesidad de representar una señal en
formato digital a través de diversos medios de
transmisión. Para esto se le asignan formas de onda
arbitrarias a cada bit o símbolo que representa la señal,
generando cambios inmediatos en los parámetros más
importantes de la señal como lo son la Potencia de
Transmisión, el Ancho de Banda requerido por el canal,
nivel DC, entre otros.
6.2
6.3 Graficar el espectro de las señales ingresadas
y su correspondiente código de línea con SCILAB.
6.3.1 Polar NRZ
6.3.2 Manchester
6.3.3 Unipolar NRZ
6.3.4 Bipolar RZ
9
LABORATORIO 2 – CÓDIGOS DE LÍNEA.
6.3.5 Unipolar RZ
7 CONCLUSIONES
A continuación se presenta un cuadro
comparativo acerca de las características de los
códigos de línea.
10