Está en la página 1de 6

Informe Práctica 6: “Codigos Convolucionales”

Jaime Gabriel Ordoñez Baraja, Marco Alfonso Vinueza Bustamante


Ingeniería Eléctrica y Electrónica, Escuela Politécnica Nacional
Quito, Ecuador
Laboratorio de Comunicación Digital
jaime.ordonez@epn.edu.ec , marco.vinueza01@epn.edu.ec

Resumen — El presente informe tiene como objetivo


analizar el funcionamiento de lo códigos convolucionales, así
como evidenciar los resultados obtenidos durante el desarrollo
de la práctica mediante la documentación de las salidas de los
scripts codificados, así como los diagramas de estados obtenidos
mediante herramientas ofimáticas. Adicionalmente, se realiza la
decodificación de las secuencias obtenidas mediante funciones Fig. 1 Salida codificada con el codificador de Trellis.
de Matlab.
Generamos el diagrama del árbol del ejercicio del literal 2.4.
Keywords— Matlab, convolucional, codificación,
Generar las coordenadas empleando la función treelayoout().
decodificación.
Con el cual se obtiene el diagrama de árbol expuesto a
I. INTRODUCCIÓN continuación, en el cual se evidencia la transición y la salida
al insertar bits.
Los códigos convolucionales, ampliamente usados en el
sector de las telecomunicaciones corresponden a códigos de
corrección de errores hacia adelante, lo cual permite que se
realice este proceso en la recepción. Esto supone una gran
ventaja en cuanto a eficiencia de transmisión dado que no se
debe pedir la retransmisión de las tramas de datos cuando
existe un error [1].

Los codigos convolucionales son de gran utilidad en canales


GSM lo cual permite lograr una transferencia de datos
confiable en aplicaciones de video, audio, datos y
comunicaciones satelitales [1].

II. DESARROLLO DE CONTENIDOS

5.1 Analizar los resultados obtenidos durante la práctica,


así como las dificultades encontradas durante su
implementación. Fig. 2 Diagrama de árbol del codificador de Trellis expuesto.

Cabe recalcar que se debe modificar el script si se modifica


Realizamos la comprobación de los ejercicios del trabajo
el codificador convolucional.
preparatorio como se ven a continuación:
Para el siguiente ejercicio lo que se realizó fue el diagrama de
Grupo Secuencias generadoras estados de la secuencia generada anteriormente.

GR1 𝑔0 = (1 1 1), 𝑔1 = (0 1 1); tasa 1/2

Basado en estos datos obtenemos los siguientes datos de


salida ya una vez ingresados en el Matlab
000001100011011001010011011000110
1100100

Secuencias brindadas por el instructor para realizar las


funciones del diagrama del árbol.
En este caso también utilizamos distintos generadores
convolucionales para ello y también decidimos agregar los
diagramas de estado para que sea una comprobación
adicional del correcto funcionamiento que esperamos en la
práctica.

Secuencia generadora (111/001)

Entrada 1 0 1 0 1 0 1 0 1 0 1 1 1 0 0 0 1 0 1 0

Fig. 3 Diagrama de estados ejercicio 2.4

Después de ello el maestro nos proporciono datos de bits para


ser codificados y obtener los datos de salida con sus
respectivos diagramas de estado y de árbol en las secuencias
dadas para el coloquio.
Tenemos las cinco secuencias las cuales ingresaran a un
generador convolucional con la misma salida que es
(111/011) y ya con ello podemos obtener las salidas
correspondientes como vemos en la siguiente parte:
Secuencia 1
00000111110101000111
Salidas 1
000000000001100101010100101110111
100011001 Fig. 4 Diagrama de estados coloquio 1

Secuencia 2
10101010101110001010
Salidas 2
011110111011101110111010010011000
1111011

Secuencia 3
11001010001010111100
Salidas 3
011000110111101111000111101110100
1010011

Secuencia 4
11111111110000000000
Salidas 4
011001010101010101010011000000000
0000000

Secuencia 5
00110011110011001110
Salidas 5
Fig. 5 Diagrama del árbol coloquio 1
Salida 000000000010110000000010010101011
1001011
101001100110011001100100110111001
0100110 Con eso podemos comprobar todos los casos en el diagrama
de estado tanto para la secuencia 1 y la secuencia 2 con sus
respectivas salidas y con el diagrama del árbol.
Secuencia generadora (101/011)
5.2 Consultar y describir 3 aplicaciones de comunicaciones
Entrada 0 0 0 0 0 1 1 1 1 1 0 1 0 1 0 0 0 1 1 1 que utilicen códigos convolucionales para control de
errores, así mismo indique la tasa k/n y los polinomios
generadores.
• Transmisión de datos por satélite:

Tasa k/n: 1/2


Polinomios generadores: (7, 5)
Los códigos convolucionales se utilizan en la transmisión de
datos por satélite para combatir los errores causados por el
ruido y la atenuación de la señal. La tasa de 1/2 proporciona
un buen equilibrio entre la eficiencia de la transmisión y la
capacidad de corrección de errores. Los polinomios
generadores (7, 5) son comunes en esta aplicación debido a
su buen rendimiento. [2]

• Redes móviles:

Tasa k/n: 3/4


Polinomios generadores: (13, 15, 17)
Los códigos convolucionales también se emplean en las redes
móviles para mejorar la confiabilidad de la transmisión de
datos. La tasa de 3/4 ofrece una mayor eficiencia en
comparación con la de 1/2, lo que la hace ideal para la
Fig. 6 Diagrama de estados coloquio 2 transmisión de grandes cantidades de datos. Los polinomios
generadores (13, 15, 17) son utilizados para obtener una
buena capacidad de corrección de errores en entornos con
interferencias. [2]

• Almacenamiento de datos:

Tasa k/n: 7/8


Polinomios generadores: (133, 171)
Los códigos convolucionales se pueden usar en el
almacenamiento de datos para proteger la información contra
errores de lectura y escritura. La tasa de 7/8 proporciona una
alta eficiencia de almacenamiento, mientras que los
polinomios generadores (133, 171) ofrecen una excelente
capacidad de corrección de errores. [2]

Entre los beneficios de los códigos convolucionales podemos


notar lo siguiente:

- Mayor eficiencia en la transmisión de datos.


- Mejor capacidad de corrección de errores.
- Reducción de la tasa de errores de bits (BER).
Fig. 7 Diagrama del árbol coloquio 2 - Mayor confiabilidad en las comunicaciones.
Salida
5.3 Mediante el uso de la función deconv() realizar la III. CONCLUSIONES Y RECOMENDACIONES
decodificación de la secuencia obtenida en el punto 4.3
de la parte práctica.
Conclusiones
El uso de la función deconv para realizar la decodificacion Marco Vinueza
convolucional complica la implementación del script, a su • Para realizar la decodificación de una secuencia
vez se utiliza una extensión de esta funcion la cual codificada de manera convolucional, se necesita
corresponde a vitdec, que como se encuentra generada la conocer la secuencia generadora. Esto con el fin de
estructura de trellis permite la deocidifacion de una forma generar la estructura de Trellis que permita conocer
sencilla con el código que se encuentra adjunto en Anexos. las decisiones a tomar.
• El diagrama de árbol que se genera mediante el
Mediante la ejecución del codigo se obtiene los resultados script propuesto no se realiza de manera automática,
expuestos en la Fig. 8.
por tal motivo es difícil realizar el diagrama de árbol
para cada secuencia generadora brindada por el
docente.
• Verificar la codificación de manera manual es vital
para la comprensión de los codificadores
convolucionales, dado que con esto es posible
realizar el diagrama del árbol y estados.
• Utilizar funciones como convec y vitdec permiten
realizar la codificación y decodificación
convolucional respectivamente de manera más fácil
que utilizar las funciones conv y deconv.
Gabriel Ordoñez

• Para los diagramas de estados es importante darnos


cuenta de la secuencia que se realiza a fin de obtener
los datos de salida correctos.
Fig. 8 Resultados de la decodificación. • Las secuencias generadoras son muy importantes
colocarlas de manera ordenada ya que de esto
De lo cual, se obtiene los resultados expuestos en la Tabla 1. dependerá la salida de los bits codificados, si no se
lo realiza bien podemos tener una confusión y por
ende habrá errores en la salida de los bits
Tabla 1 Resumen de resultados de decodificación. codificados.
• En el coloquio se realizó los diagramas de estados
con sus correspondientes salidas para ello tomamos
Entrada Salida esta secuencia para hacer los diferentes diagramas
000000000001100 000001111101010 de árbol de ambos coloquios para visualizar como
101010100101110 00111 queda de manera uniforme.
111100011001
Recomendaciones
011110111011101 Marco Vinueza
110111010010011 101010101011100 • Practicar las codificaciones convolucionales con el
0001111011 01010 fin de realizar los procesos de una manera más ágil
011000110111101 110010100010101 durante el desarrollo de la práctica.
111000111101110 11100 • Utilizar herramientas de diseño online como lo es
1001010011 Creately para generar los diagramas de estado, esto
facilita el generar estos organizadores gráficos.
011001010101010 111111111100000 Gabriel Ordoñez
101010011000000 00000
• Se recomienda que al momento de realizar el
0000000000
diagrama del árbol podamos ser minuciosos para
colocar los estados de manera correcta a fin de que
se genere satisfactoriamente.
000001100011011 001100111100110 • Los codificadores convolucionales dependen de sus
001010011011000 01110 polinomios generadores ya que con ello se puede
1101100100 establecer las salidas correspondientes de los
diagramas de estado y por tal motivo son utilizados
en la corrección de errores y por esto en los ejemplos
tienen distintas salidas por su dependencia de las
secuencias generadoras aunque estos bits sean los
mismos al entrar.

Referencias

[1] «Código convolucional _ AcademiaLab». Accedido: 11


de febrero de 2024. [En línea]. Disponible en:
https://academia-lab.com/enciclopedia/codigo-
convolucional/
[2] «comdig_artes_perez.pdf». Accedido: 10 de febrero de
2024. [En línea]. Disponible en:
https://www.tsc.uc3m.es/~antonio/libro_comunicacione
s/El_libro_files/comdig_artes_perez.pdf
ANEXOS
Código de los resultados obtenidos en la practica

clc, clear all, close all;

%% Se ingresa la información
informacion = [0 0 1 0 1 1 0 1 1 1 0 0 1 0 1 1 0 1 1 1];
%% Se crea el condificacdor convolucional con 3 etapas
trellis = poly2trellis(3,[3 7]);
%% Se obtiene la secuencia codificada
codificado = convenc(informacion,trellis);

clc, clear all, close all;

%% Se ingresa la información
informacion = [0 0 1 0 1 1 0 1 1 1 0 0 1 0 1 1 0 1 1 1];
%% Se crea el condificacdor convolucional con 3 etapas
trellis = poly2trellis(3,[3 7]);
%% Se obtiene la secuencia codificada
codificado = convenc(informacion,trellis);

%% Diagrama del arbol


p = [0 1 1 2 2 3 3 4 4 5 5 6 6 7 7];
treeplot(p)
[x,y] = treelayout(p);
%% Se añade el texto de los estados
text(x + 0.02,y,{'00','00','10','00','10','01','11','00','10','01',...
'11','00','10','01','11'})
%% Se añade el texto de las transiciones y salidas
text(x(2:end)-0.02,y(2:end)+0.1,{'0/00','1/01','0/00','1/01','0/11','1/10' ...
,'0/00','1/01','0/11','1/10','0/11','1/10','0/00', '1/01'})

title("Diagrama del árbol (011,111)")

Código utilizado en el literal 5.3

clear all, close all, clc;

trellis = poly2trellis(3,[3 7]);

datos1 = [0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 1 0 1 0 1 0 0 1 0 1 1 1 0 1 1 1 1 0 0 0 1 1 0];
datos2 = [0 1 1 1 1 0 1 1 1 0 1 1 1 0 1 1 1 0 1 1 1 0 1 0 0 1 0 0 1 1 0 0 0 1 1 1 1 0 1 1];
datos3 = [0 1 1 0 0 0 1 1 0 1 1 1 1 0 1 1 1 1 0 0 0 1 1 1 1 0 1 1 1 0 1 0 0 1 0 1 0 0 1 1];
datos4 = [0 1 1 0 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0];
datos5 = [0 0 0 0 0 1 1 0 0 0 1 1 0 1 1 0 0 1 0 1 0 0 1 1 0 1 1 0 0 0 1 1 0 1 1 0 0 1 0 0];

decodificador= vitdec(datos1,trellis,20,'trunc','hard');

También podría gustarte