Sei sulla pagina 1di 9

UNIVERSIDAD ACCION PRO EDUCACION Y CULTURA (UNAPEC)

ESCUELA DE INGENIERIA Y TECNOLOGIA

COMUNICACIONES DIGITALES

PRACTICA PRIMER PARCIAL

JOAN MANUEL PALIN

2007-0448

05-03-2012 Santo Domingo, D.N.

INTRODUCCION

Se entiende por codificacin en el contexto de la Ingeniera al proceso de conversin de un sistema de datos de origen a otro sistema de datos de destino. De ello se desprende como corolario que la informacin contenida en esos datos resultantes deber ser equivalente a la informacin de origen.

Un modo sencillo de entender el concepto es aplicar el paradigma de la traduccin entre idiomas en el ejemplo siguiente: home = hogar. Podemos entender que hemos cambiado una informacin de un sistema (ingls) a otro sistema (espaol) y que esencialmente la informacin sigue siendo la misma. La razn de la codificacin est justificada por las operaciones que se necesiten realizar con posterioridad. En el ejemplo anterior para hacer entendible a una audiencia hispana un texto redactado en ingls es convertido al espaol.

CODIFICACION

La informacin se transmite en forma de seales, por lo que debe ser transformada antes de poder ser transportada a travs de un medio de comunicacin fsico. Cmo transformar la informacin depende de su formato original y del formato usado por el hardware de comunicaciones. El primer paso es traducir la informacin a patrones digitales acordados (codificacin de la informacin original) para ser almacenada en una computadora en forma digital (unos y ceros), para transportarlos fuera de la computadora es necesaria convertirlos en seales digitales, esto es una conversin digital a digital o codificacin de los datos digitales dentro de una seal digital.

En general las posibilidades son mayores, en la codificacin de la informacin puede darse una codificacin de analgico a digital, y en la transmisin de informacin puede darse el caso de tener que convertir la informacin digital en seal analgica, que se denomina modulacin de la seal digital, en otras ocasiones es una seal analgica la que se convierte en seal digital en lo que se conoce como digitalizacin de la seal, e incluso se puede dar la necesidad de convertir una seal analgica en analgica (modulacin de la seal analgica).

HDB3 (High Density Bipolar 3)

La denominacin HDB3 proviene del nombre en ingles High Density Bipolar-3 Zeros que puede traducirse como cdigo de alta densidad bipolar de 3 ceros. En el mismo un 1 se representa con polaridad alternada mientras que un 0 toma el valor 0. Este tipo de seal no tiene componente continua ni de bajas frecuencias pero presenta el inconveniente que cuando aparece una larga cadena de ceros se puede perder el sincronismo al no poder distinguir un bit de los adyacentes.

Para evitar esta situacin este cdigo establece que en las cadenas de 4 bits se reemplace el cuarto 0 por un bit denominado bit de violacin el cual tiene el valor de un 1 lgico. En las siguientes violaciones, cadenas de cuatro ceros, se reemplaza por una nueva secuencia en la cual hay dos posibilidades 000V B00V

Donde V es el bit de violacin y B es un bit denominado bit de relleno. La letra B indica un pulso con distinto signo que el pulso anterior. La letra V indica un pulso con el mismo signo que el pulso que le precede. Para decidir cual de las dos secuencias se debe utilizar se deben contar la cantidad de unos existentes entre la ltima violacin y la actual. Si la cantidad es par se emplea la secuencia B00V y si es impar la secuencia 000V.

El primer pulso de violacin lleva la misma polaridad del ltimo 1 transmitido de forma de poder detectar que se trata de un bit de violacin. En la combinacin B00V el bit de violacin y el de relleno poseen la misma polaridad.

Sustituimos las secuencias de ceros por las secuencias de bitios correspondientes: En este caso los 4 primeros ceros se sustituyen por el bitio 000V y los cuatro siguientes por: B00V, quedando:

Ejemplo:

En este caso los 4 primeros ceros se sustituyen por el bitio B00V ya que tenemos un nmero par de unos antes de la violacin y los cuatro siguientes por : 000V, ya que entre la ultima violacin y esta hay un nmero impar de unos, quedando la seal codificada como:

Ejemplo con el programa: (si funciona pero hay que saber distinguir la codificacin valida de entre la codificacin redundante, que no se porque la saca).

Cuando se detecta la violacin, se cuentan los unos (en este caso 3 unos) por tanto tendremos el bitio 000V y despus ya no tenemos violacin. Para decodificar el HDB3 hay que sustituir el bitio 000V por 0000 y los restantes tal cual. Si tuviramos un bitio tal como B00V tambin lo sustituiramos por 0000.

DETECCION DE ERRORES

La deteccin elemental de los errores de transmisin tpicos del ruido (inversin, duplicacin o prdida de impulsos), se realiza simplemente comprobando que los impulsos recibidos por el receptor cumplen las reglas de polaridad establecidas por la codificacin HDB3.

Los errores se suelen detectar en el caso de que aparezcan los 4 ceros consecutivos que no permite el HDB3 o en el caso de la insercin de un "uno" y que las dos violaciones V+ queden con la misma polaridad. Sin embargo exiten casos en los cuales hay errores que son imposibles de detectar y que incluso se propagan generando an ms errores. Por ejemplo en la imagen podemos ver una seal HDB3 con errores que no detecta el receptor.

EJEMPLOS DE MATLAB
xn=[1 0 1 1 0 0 0 0 0 0 0 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0]; %Codigo binario de Entrada yn=xn; %Codigo a Modificar num=0; %variable para contar los 1s y determinar si son pares o impares %Generacion de Codigo AMI for k=1:length(xn) if xn(k)==1 num=num+1; if num/2== fix(num/2) %Condicion para numeros de 1s pares yn(k)=-1; else yn(k)=1; %Condicion para numeros de 1s impares end end end %conteo de 0s continuos para cambiar el codigo por 000v o B00V num=0; %Reinicio de la variable de conteo de 1s yh=yn; %Variable nueva del codigo almacenado en yn sign=0; %Variable de signo V=zeros(1,length(yn)); %Variable para guardar las violaciones (V) B=zeros(1,length(yn)); %Varible para guardar las B for k=1:length(yn) if yn(k)==0 num=num+1; %Incremento del contador de 0s if num== 4 %Comprueba si hay 4 ceros continuos para realizar el cambio num=0; %Reestablece el contador de 0s yh(k)=1*yh(k-4); V(k)=yh(k); %Guarda los bits de violacion (V) if yh(k)==sign %Comprueba si el bit yh(k) es igual al signo yh(k)=-1*yh(k); %Invierte el signo para evitar signos iguales en los bits de violacion yh(k-3)=yh(k); %Cambia el primer 0 para generar el codigo B00V B(k-3)=yh(k); %Guarda las B producidas en hdb3 V(k)=yh(k); %Guarda el bit de violacion con el signo ya invertido yh(k+1:length(yn))=-1*yh(k+1:length(yn));%Alterna los signos de los 1s despues de detectar un cambio de signo. end sign=yh(k); %Guarda el signo de la violacion end else num=0; %Reestablece el contador de 0s end end re=[xn',yn',yh',V',B']; %Variable que guarda en forma de columna el codigo de entrada, %codigo AMI,codigo %hdb3,variable con el bit de %violacion, variable con el bit %de relleno.

%Parte para decodificar la seal. Primero se consigue que quede de nuevo la %seal AMI input=yh; %Codigo en Hdb3 decode=input; %Variable con el codigo Hdb3 a reconstruir sign=0; %Variable para guardar el signo de los 1s for k=1:length(yh) if input(k)~=0 if sign==yh(k) %si existen dos 1s con el mismo signo, estos son decode(k-3:k)=[0 0 0 0]; %cambiados por 0000 end sign=input(k); %Va guardando el signo de los 1s end end decode=abs(decode); %Valor Absoluto para volver los 1 negativos a positivos %Parte para graficar figure(1) subplot(3,1,1);stairs([0:length(xn)-1],xn);axis([0 length(xn) -2 2]);title('Codigo Binario Transmitido');grid on;%grafica la el codigo binario de Entrada subplot(3,1,2);stairs([0:length(xn)-1],yh);axis([0 length(xn) -2 2]);title('Codigo HDB3');grid on;%grafica el codigo en hdb3 subplot(3,1,3);stairs([0:length(xn)-1],decode);axis([0 length(xn) -2 2]);title('Codigo Binario Recibido');grid on;%grafica la seal restaurada figure(2) subplot(4,1,1);stairs([0:length(xn)-1],xn);axis([0 length(xn) -2 2]);title('Codigo Binario Transmitido');grid on;%grafica la el codigo binario de Entrada subplot(4,1,2);stairs([0:length(xn)-1],yn);axis([0 length(xn) -2 2]);title('Codigo AMI');grid on;%grafica la el codigo binario de Entrada subplot(4,1,3);stairs([0:length(xn)-1],V);axis([0 length(xn) -2 2]);title('Codigo con bits de Violacion');grid on;%grafica la el codigo binario de Entrada subplot(4,1,4);stairs([0:length(xn)-1],B);axis([0 length(xn) -2 2]);title('Codigo con bits de Relleno');grid on;%grafica la el codigo binario de Entrada

Potrebbero piacerti anche