Vous êtes sur la page 1sur 10

UNIVERSIDAD TECNOLGICA DEL PER

ESCUELA PROFESIONAL DE INGENIERA ELECTRNICA

TEMA :MODELAR CDIGOS DE CANAL EN UN SISTEMA DE COMUNICACIN


LABORATORIO DE TELECOMUNICACIONES III
I NTEGRANTES :
AGUILAR HUAMANI, LUIS M IGUEL
CORDOVA SALCEDO, D AVID
FERNANDEZ POLANCO; H ENRY
RAMIREZ ILLESCA, J HERLY
DOCENTE
: ING. JAVIER SAMANIEGO MANRIQUE

RESUMEN.El presente artculo describe la


codificacin de canal de un sistema de
comunicaciones digitales, mediante el
cdigo
Haming
y
el
cdigo
convolucional para la deteccin y
correccin de errores utilizando el
software libre Scilab.
I.- INTRODUCCION.Al transmitir informacin, siempre
surge los problemas de que los datos
enviados lleguen a su destino con
errores o que no lleguen, uno de los
objetivos principales de un sistema de
transmisin es el de poder detectar y
corregir
la cantidad errores que
pudieran producirse en la transmisin.
Esta transmisin depende del factor
Seal a Ruido, potencia y velocidad de
transmisin. Si optimizando estas
variables se necesita aun mejorar la
calidad de transmisin, entonces se
deben buscar ciertos mtodos que
aseguren y mejoren la fiabilidad. Se han
desarrollado diferentes tipos de cdigos
que permiten de reducir los errores por
las perturbaciones en el canal.
En este laboratorio trataremos de
demostrar el modelamiento de cdigos
de canal de un sistema de comunicacin
por lo cual usaremos simuladores los
cuales afianzara en le uso de los

PRCTICA DE LABORATORIO III

sistemas deteccin de errores en la


transmisin
II.- MARCO TEORICO.Cdigo Hamming (1)
El cdigo de Hamming es un cdigo
detector y corrector de errores que lleva
el nombre de su inventor, Richard
Hamming. En los datos codificados en
Hamming se pueden detectar errores en
un bit y corregirlos, sin embargo no se
distingue entre errores de dos bits y de
un bit (para lo que se usa Hamming
extendido). Esto representa una mejora
respecto a los cdigos con bit de
paridad, que pueden detectar errores en
slo un bit, pero no pueden corregirlo.
Adems el decodificador, denominado
de decisin remanente (hard decisin),
recibe la seal cuan tizada del
demodulador sin importar cun grande
fue el error de la seal analgica
recibida. Es evidente que durante el
proceso
de
decodificacin
ser
indistinto el grado de error de la seal
recibida, producindose una perdida
irreversible de informacin.

Pgina 1

UNIVERSIDAD TECNOLGICA DEL PER


ESCUELA PROFESIONAL DE INGENIERA ELECTRNICA

Figura 2: Formacin de cdigo


convolucional

Figura 1: Codificacin de canal vectores


que representan palabras cdigo

Existen 4 mtodos de representacin de


los cdigos convolucionales:

Cdigo Convolucional
Los cdigos Convolucionales trabajan
bajo patrones estadsticos. Esto significa
que no existe la definicin de correccin
de un error de bit simple. Slo se puede
decir que, en promedio, el uso de
cdigos convolucionales mejorar la
inmunidad al error. Por esto se usa
ampliamente, pues puede proporcionar
una mejora a la inmunidad al error en 3
rdenes de magnitud, con una relacin
de codificacin de 1/2.
En este tipo de codificacin, la
informacin de verificacin est
distribuida sobre un espacio de
smbolos de mensaje, llamado espacio
acotado del cdigo. De esta manera,
pueden
codificarse
continuamente
largas corrientes de bits sin necesidad
de agruparlas en bloques. Esto se
consigue
usando
registros
de
corrimiento cuyas salidas se combinan
de una manera preestablecida para fijar
ciertos lmites en la corriente de bits
codificada. El cdigo convolucional de
espacio acotado K se genera
combinando las salidas de K registros
con vi sumadores mdulo 2,
generndose v smbolos de salida por
cada smbolo de entrada, dando un
cdigo de razn1/v.

Por Conexin
Diagrama de estados
Arbol de cdigo
Diagrama Trellis

Figura 3: Representacin de cdigos


convolucionales
n
PRCTICA DE LABORATORIO III

Pgina 2

word

Calculo de bits d

UNIVERSIDAD TECNOLGICA DEL PER


ESCUELA PROFESIONAL DE INGENIERA ELECTRNICA

1
2
3
4
5
6
7
8
9
1
0
1
1
1
2
1
3
1
4
1
5
1
6

m3 m2 m1
m0
0000
0001
0010
0011
0100
0101
0110
0111
1000

b2 = xor(m0 m3
m1)
0 = xor(0 0 0)
1 = xor(1 0 0)
1 = xor(0 0 1)
0 = xor(1 0 1)
0 = xor(0 0 0)
1 = xor(1 0 0)
1 = xor(0 0 1)
0 = xor(1 0 1)
1 = xor(0 1 0)

1001

0 = xor(1 1 0)

1010

0 = xor(0 1 1)

1011

1 = xor(1 1 1)

1100

1 = xor(0 1 0)

1101

0 = xor(1 1 0)

1110

0 = xor(0 1 1)

1111

1 = xor(1 1 1)

Figura 4: Desarrollo de cdigo Hamming


del laboratorio

PRCTICA DE LABORATORIO III

Pgina 3

UNIVERSIDAD TECNOLGICA DEL PER


ESCUELA PROFESIONAL DE INGENIERA ELECTRNICA

III.- DIAGRAMA DE FLUJO.-

Diagrama de Flujo para


Cdigo Convolucional

Diagrama de Flujo para


Cdigo Hamming (7,4)

INICIO
Codificacin HAMMING
Ingresamos palabra de mensaje

m3, m2, m1, m0

i=1

i<=16
(Se hallan los bits de paridad para cada palabra mensaje)
m3(i) m2(i) m1(i) m0(i)
b2(i) = m0(i)
b1(i) = m1(i)
b0(i) = m0(i)

m3(i)
m2(i)
m1(i)

m1(i)
m3(i)
m2(i)

de mensaje MSB-LSB y bits de paridad y se guarda en array con respectiva ubicacin para posterior muestreo)
m(i,:) = [m3(i) m2(i) m1(i) m0(i)];
b(i,:) = [b2(i) b1(i) b0(i)];

(Se ordena bits de mensaje codificado o palabra cdigo juntando


bits de paridad y los bits de la palabra mensaje)
C = [b m];

i=1

i<=16
(SE IMPRIME PALABRA MENSAJE, BITS DE PARIDAD Y PALABRA CODIGO)
'Message Word' = m[i]
'Parity Bits' = b[i]
'CodeWord' = C[i]

FIN

Figura 5: Diagrama de flujo para la


simulacin de cdigo hamming
PRCTICA DE LABORATORIO III

Pgina 4

UNIVERSIDAD TECNOLGICA DEL PER


ESCUELA PROFESIONAL DE INGENIERA ELECTRNICA
Figura 6: Diagrama de flujo para la

INICIO
Codificacin CONVOLUCIONAL

g = input("1 sequence");
h = input("2 sequence");
N1 = max(size(g));
N2 = max(size(h));
N = max(N1,N2);
N3 = N1-N2;
N3>=0

h = [h,zeros(1,N3)];

g = [g,zeros(1,-N3)];

for n = 1:N
y(1,n) = 0;

for i = 1:N
j = n-i+1;

j = N+j;

j<=0

(Se imprime grafica para cada valor de y)


y(n)=[y(n)+g(i)*h(j)];
Pgina 5
plot2d3('gnn',y)

PRCTICA DE LABORATORIO III

FIN

UNIVERSIDAD TECNOLGICA DEL PER


ESCUELA PROFESIONAL DE INGENIERA ELECTRNICA
end
disp('_______________________________
__________________________')

IV.- SIMULACIONES.Simulacin 1:
Para el cdigo Hamming (7,4)

Ejecucin del programa:

//HammingEncoding
//H(7,4)
//Code Word Length = 7, Message Word
length = 4, Parity bits =3
//clear;
close;
clc;
//GettingMessage Word

Enterthe 1 bit(MSb) of message


[0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1];
Enterthe 2 bit of message
[0,0,0,0,1,1,1,1,0,0,0,0,1,1,1,1];
Enterthe 3 bit of message
[0,0,1,1,0,0,1,1,0,0,1,1,0,0,1,1];
Enterthe 4 bit(LSb) of message
[0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1];

word
word

2. Message Word
0. 0. 0. 1.
Parity Bits
1. 0. 1.
CodeWord 1. 0. 1. 0. 0. 0. 1.
3. Message Word
0. 0. 1. 0.
Parity Bits
1. 1. 1.
CodeWord 1. 1. 1. 0. 0. 1. 0.

//GeneratingParity bits
for i = 1:(2^4)
b2(i) = xor(m0(i),xor(m3(i),m1(i)));
b1(i) = xor(m1(i),xor(m2(i),m3(i)));
b0(i) = xor(m0(i),xor(m1(i),m2(i)));
m(i,:) = [m3(i) m2(i) m1(i) m0(i)];
b(i,:) = [b2(i) b1(i) b0(i)];
end

4. Message Word
0. 0. 1. 1.
Parity Bits
0. 1. 0.
CodeWord 0. 1. 0. 0. 0. 1. 1.
5. Message Word
0. 1. 0. 0.
Parity Bits
0. 1. 1.
CodeWord 0. 1. 1. 0. 1. 0. 0.

C = [b m];
disp('_______________________________
__________________________')

PRCTICA DE LABORATORIO III

word

1. Message Word
0. 0. 0. 0
Parity Bits
0. 0. 0.
CodeWord 0. 0. 0. 0. 0. 0. 0.

m3 = input('Enterthe 1 bit(MSb) of
messageword');
m2 = input('Enterthe 2 bit of
messageword');
m1 = input('Enterthe 3 bit of
messageword');
m0 = input('Enterthe 4 bit(LSb) of
messageword');

for i = 1:2^4
disp(i)
disp(m(i,:),'Message Word')
disp(b(i,:),'Parity Bits')
disp(C(i,:),'CodeWord')
disp(" ");
disp(" ");

word

6. Message Word
0. 1. 0. 1.
Parity Bits
1. 1. 0.
CodeWord 1. 1. 0. 0. 1. 0. 1.
7. Message Word
0. 1. 1. 0.
Parity Bits
1. 0. 0.
CodeWord 1. 0. 0. 0. 1. 1. 0.
8. Message Word
0. 1. 1. 1.
Parity Bits
0. 0. 1.
CodeWord 0. 0. 1. 0. 1. 1. 1.
9. Message Word
1. 0. 0. 0.
Parity Bits
1. 1. 0.
CodeWord 1. 1. 0. 1. 0. 0. 0.

Pgina 6

UNIVERSIDAD TECNOLGICA DEL PER


ESCUELA PROFESIONAL DE INGENIERA ELECTRNICA
10. Message Word
1. 0. 0. 1.
Parity Bits
0. 1. 1.
CodeWord 0. 1. 1. 1. 0. 0. 1.
11. Message Word
1. 0. 1. 0.
Parity Bits
0. 0. 1.
CodeWord 0. 0. 1. 1. 0. 1. 0.
12. Message Word
1. 0. 1. 1.
Parity Bits
1. 0. 0.
CodeWord 1. 0. 0. 1. 0. 1. 1.
13. Message Word
1. 1. 0. 0.
Parity Bits
1. 0. 1.
CodeWord 1. 0. 1. 1. 1. 0. 0.
14. Message Word
1. 1. 0. 1.
Parity Bits
0. 0. 0.
CodeWord 0. 0. 0. 1. 1. 0. 1.
15. Message Word
1. 1. 1. 0.
Parity Bits
0. 1. 0.
CodeWord 0. 1. 0. 1. 1. 1. 0.
16. Message Word
1. 1. 1. 1.
Parity Bits
1. 1. 1.
CodeWord 1. 1. 1. 1. 1. 1. 1.

Simulacin 2:
Para el cdigo Hamming (15,11)
//HammingEncoding
//H(15,11)
//Code Word Length = 15, Message Word
length = 11, Parity bits =4
//clear;
close;
clc;

m5 = input('Enterthe 6 bit of
messageword');
m4 = input('Enterthe 7 bit of
messageword');
m3 = input('Enterthe 8 bit of
messageword');
m2 = input('Enterthe 9 bit of
messageword');
m1 = input('Enterthe 10 bit of
messageword');
m0 = input('Enterthe 11 bit(LSb) of
messageword');
//GeneratingParity bits
for i = 1:(2^4)
b3(i) = bitxor(m10(i),bitxor(m9(i),m8(i)));
b2(i) = bitxor(m7(i),bitxor(m6(i),m5(i)));
b1(i) = bitxor(m4(i),bitxor(m3(i),m2(i)));
b0(i) = bitxor(m1(i),bitxor(m0(i),m10(i)));
m(i,:) = [m10(i) m9(i) m2(i) m8(i) m7(i)
m6(i) m5(i) m4(i) m3(i) m2(i) m1(i) m0(i)];
b(i,:) = [b3(i) b2(i) b1(i) b0(i)];
end
C = [b m];
disp('_______________________________
__________________________')
for i = 1:2^4
disp(i)
disp(m(i,:),'Message Word')
disp(b(i,:),'Parity Bits')
disp(C(i,:),'CodeWord')
disp(" ");
disp(" ");
end
disp('_______________________________
__________________________')

//GettingMessage Word
m10 = input('Enterthe 1 bit(MSb) of
messageword');
m9 = input('Enterthe 2 bit of
messageword');
m8 = input('Enterthe 3 bit of
messageword');
m7 = input('Enterthe 4 bit of
messageword');
m6 = input('Enterthe 5 bit of
messageword');
PRCTICA DE LABORATORIO III

Ejecucin del programa:


Enterthe 1 bit(MSb) of messageword
[0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1];
Enterthe 2 bit of messageword
[0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,0];
Enterthe 3 bit of messageword
[0,0,0,0,0,0,1,1,1,1,1,1,1,1,0,0];
Enterthe 4 bit of messageword
[0,0,0,0,0,1,1,1,1,1,1,1,1,0,0,0];
Pgina 7

UNIVERSIDAD TECNOLGICA DEL PER


ESCUELA PROFESIONAL DE INGENIERA ELECTRNICA
CodeWord
0. 1. 0.
0. 0. 0.
1. 1.

Enterthe 5 bit of messageword


[0,0,0,0,1,1,1,1,1,1,1,1,0,0,0,0];
Enterthe 6 bit of messageword
[0,0,0,1,1,1,1,1,1,1,1,0,0,0,0,0];
Enterthe 7 bit of messageword
[0,0,1,1,1,1,1,1,1,1,0,0,0,0,0,0];
Enterthe 8 bit of messageword
[1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0];
Enterthe 9 bit of messageword
[1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0];
Enterthe 10 bit of messageword
[0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1];
Enterthe 11 bit(LSb) of messageword
[1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0];
______________________________________
___
1. Message Word
0. 0. 1. 0. 0. 0. 0.
0. 1. 1. 0. 1.
Parity Bits
0. 0. 0. 1.
CodeWord
0. 0. 0. 1. 0. 0. 1.
0. 0. 0. 0. 0. 1. 1.
0. 1.
2. Message Word
0. 0. 0. 0. 0.
0. 1. 0. 1. 1.
Parity Bits
0. 0. 1. 0.
CodeWord
0. 0. 1. 0. 0.
0. 0. 0. 0. 0.
1. 1.
3. Message Word
0. 0. 1. 0. 0.
1. 1. 1. 0. 1.
Parity Bits
0. 0. 1. 1.
CodeWord
0. 0. 1. 1. 0.
0. 0. 0. 0. 1.
0. 1.
4. Message Word
0. 0. 0. 0. 0.
1. 1. 0. 1. 1.
Parity Bits
0. 1. 0. 0.

0.

0.

0.
1.

0.
0.

0.

0.

0.
1.

1.
1.

0.

1.

PRCTICA DE LABORATORIO III

0.
1.

0.
1.

5. Message Word
0. 0. 1. 0. 0.
1. 1. 1. 0. 1.
Parity Bits
0. 0. 1. 1.
CodeWord
0. 0. 1. 1. 0.
0. 0. 1. 1. 1.
0. 1.
6. Message Word
0. 0. 0. 0. 1.
1. 1. 0. 1. 1.
Parity Bits
0. 1. 0. 0.
CodeWord
0. 1. 0. 0. 0.
0. 1. 1. 1. 1.
1. 1.

0.
1.

0.
0.

1.

1.

0.
1.

1.
1.

1.

1.

0.
1.

0.
0.

7. Message Word
0. 0. 1. 1. 1. 1. 1.
1. 1. 1. 0. 1.
Parity Bits
1. 1. 1. 1.
CodeWord
1. 1. 1. 1. 0. 0. 1.
1. 1. 1. 1. 1. 1. 1.
0. 1.
8. Message Word
0. 1. 0. 1. 1. 1. 1.
1. 1. 0. 1. 1.
Parity Bits
0. 1. 0. 0.
CodeWord
0. 1. 0. 0. 0. 1. 0.
1. 1. 1. 1. 1. 1. 0.
1. 1.
9. Message Word
1. 1. 1. 1. 1.
1. 0. 1. 0. 0.
Parity Bits
1. 1. 0. 1.
CodeWord

Pgina 8

1.

1.

UNIVERSIDAD TECNOLGICA DEL PER


ESCUELA PROFESIONAL DE INGENIERA ELECTRNICA
1.
1.
0.

1.
1.
0.

0.
1.

1.
1.

1.
1.

1.
0.

10. Message Word


1. 1. 0. 1. 1. 1.
1. 0. 0. 1. 0.
Parity Bits
1. 1. 1. 0.
CodeWord
1. 1. 1. 0. 1. 1.
1. 1. 1. 1. 1. 0.
1. 0.
11. Message Word
1. 1. 1. 1. 1.
0. 0. 1. 0. 0.
Parity Bits
1. 1. 1. 1.
CodeWord
1. 1. 1. 1. 1.
1. 1. 1. 1. 0.
0. 0.

1.
1.

1.

0.
0.

1.

1.

1.
0.

1.
1.

12. Message Word


1. 1. 0. 1. 1. 1. 0.
0. 0. 0. 1. 0.
Parity Bits
1. 0. 0. 0.
CodeWord
1. 0. 0. 0. 1. 1. 0.
1. 1. 1. 0. 0. 0. 0.
1. 0.
13. Message Word
1. 1. 1. 1. 1. 0.
0. 0. 1. 0. 0.
Parity Bits
1. 1. 1. 1.
CodeWord
1. 1. 1. 1. 1. 1.
1. 1. 0. 0. 0. 0.
0. 0.
14. Message Word
1. 1. 0. 1. 0.
0. 0. 0. 1. 0.
Parity Bits
1. 0. 0. 0.
CodeWord

0.

1.
1.
1.

0.
0.

0.
0.

1.
0.

15. Message Word


1. 1. 1. 0. 0.
0. 0. 1. 0. 0.
Parity Bits
0. 0. 1. 1.
CodeWord
0. 0. 1. 1. 1.
0. 0. 0. 0. 0.
0. 0.

1.
0.

0.
0.

0.

0.

1.
0.

1.
1.

16. Message Word


1. 0. 0. 0. 0. 0. 0.
0. 0. 0. 1. 0.
Parity Bits
1. 0. 0. 0.
CodeWord
1. 0. 0. 0. 1. 0. 0.
0. 0. 0. 0. 0. 0. 0.
1. 0.

Simulacin 3:
Para el codigo convolucional teniendo como
secuencias

1 sequence
[0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1];
2 sequence
[0,0,0,0,1,1,1,1,0,0,0,0,1,1,1,1];

0.

1.
1.

0.

PRCTICA DE LABORATORIO III

0.
0.
0.

Pgina 9

UNIVERSIDAD TECNOLGICA DEL PER


ESCUELA PROFESIONAL DE INGENIERA ELECTRNICA
Figura 8: Grafica de simulacin por SCILAB

V.-CONCLUSIONES Y
COMENTAROS.Son esenciales los diagramas de flujo
para entender los programas de
simulacin.

Figura 7: Grafica de simulacin por SCILAB

Simulacin 4:
Para el codigo convolucional teniendo como
secuencias

1 sequence
[0,0,1,1,0,0,1,1,0,0,1,1,0,0,1,1];
2 sequence
[0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1];

-El Cdigo Hamming, es un sistema de


deteccin y correccin automtica de
errores en informacin electrnica, el
cual asocia una serie de bits
devalidacin o paridad a los bits de
datos, de tal forma que una alteracin en
cualquiera de esos bits de datos pueda
ser
detectada
y
corregida
adecuadamente.

VI.- REFERENCIA. WAYNE_TOMASI__SISTEMAS_DE_COMUNICACIONES_


ELECTRONICAS

PRCTICA DE LABORATORIO III

Pgina 10