Professional Documents
Culture Documents
Objetivos
Generar una secuencia codificada a partir de los codigos convolucionales vistos en clase
(Figuras 1 y 2), as como los diagramas de Trellis correspondientes:
v ( 0 ) u g (1)
ec.1
v (1) u g ( 2 )
ec.2
ec.3
Para esto se crearon en Matlab las funciones CC2 y CC3 que corresponden a los
codificadores de los esquemticos de las figuras 1 y 2, respectivamente.
Para su ejecucin solo hay que llamarlos desde la lnea de comandos en forma de
funcin agregando el vector de entrada.
Ejemplo:
>> CC2([1 0 1 1 1])
ans =1 1 1 1 0 1 1 0 0 0 1 0 0 0 1 1 1 0 0 1 1
>>CC3([1 0 1 1 1])
ans = 1 1 0 1 1 1 1 1 1 0 0 0 0 1 0 1
Se pueden ver las caractersticas del CC al teclear help + cdigo.m
Ejemplo:
>> help CC2
Codificador Convolucional (3, 1, 2) visto en clase
function [v] = CC2(u)
proporciona una salida codificada (v) para el CC(3, 1, 2)
con respuestas al impulso
g11 = [1 1 0]
g12 = [1 0 1]
g13 = [1 1 1]
para el vector de entrada u con formato [1 0 1 0 1 0...]
Para ver la respuesta al impulso del CC se introduce el vector [1] y se despliega de
manera demulticanalizado:
Ejemplos:
>> salida=CC2(1); [salida(1:3:end);salida(2:3:end);salida(3:3:end)]
ans =
1 1 0
1 0 1
1 1 1
>> salida=CC3(1); [salida(1:2:end);salida(2:2:end)]
ans =
1 0 0 0
1 1 0 1
Se verific su correcto funcionamiento al comparar los ejemplos vistos en clase.
Podra realizarse un script para verificar todas las combinaciones para cierta longitudes
de entradas y as verificar que las secuencias de salidas son absolutamente correctas,
aunque se considera que por ser un sistema lineal invariante en el tiempo (SLIT) y al
tener la respuesta al impulso correcta, la codificacin ser apropiada.
Para el caso del diagrama de Trellis, se escribi un cdigo para generar la tabla de
verdad que incluye: estado_previo, entrada, salida y estado siguiente. De tal manera
que se dio seguimiento a un tiempo posterior para hacer que el estadio siguiente se
convirtiera en el estado previo y as hacer crecer la tabla, tal como se muestra en las
tablas 1 y 2.
00 0 000 00 0 000 00 0 000 00 0 000 00 0 000 00 0 000 00 0 000 00
00 1 111 10 0 101 01 0 011 00 1 111 10 0 101 01 0 011 00 0 000 00
10 0 101 01 0 011 00 1 111 10 0 101 01 0 011 00 0 000 00 0 000 00
10 1 010 11 0 110 01 1 100 10 1 010 11 0 110 01 0 011 00 0 000 00
01 0 011 00 1 111 10 0 101 01 0 011 00 1 111 10 0 101 01 0 011 00
01 1 100 10 1 010 11 0 110 01 1 100 10 1 010 11 0 110 01 0 011 00
11 0 110 01 1 100 10 1 010 11 0 110 01 1 100 10 0 101 01 0 011 00
11 1 001 11 1 001 11 1 001 11 1 001 11 1 001 11 0 110 01 0 011 00
En las siguientes pginas se muestra el cdigo en Matlab del trabajo realizado. Consta
de las funciones CC2.m y CC3.m para realizar la CC(3, 1, 2) y CC(2, 1, 3)
respectivamente. Tambin estan los cdigos TrellisA.m y TrellisB.m para obtener
directamente la grfica Trellis de los CC(3, 1, 2) y CC(2, 1, 3), respectivamente:
Cdigo fuente:
% Codificador Convolucional (3, 1, 2) visto en clase
%
% function [v] = CC2(u)
%
% proporciona una salida codificada (v) para el CC(3, 1, 2)
% con respuestas al impulso
% g11 = [1 1 0]
% g12 = [1 0 1]
% g13 = [1 1 1]
% para el vector de entrada u con formato [1 0 1 0 1 0...]
function [v] = CC2(u)
g11 = [1 1 0];
g12 = [1 0 1];
g13 = [1 1 1];
%% codificacin
v1 = mod(conv(u, g11), 2);
v2 = mod(conv(u, g12), 2);
v3 = mod(conv(u, g13), 2);
%% multicanalizar
% se reacomodan las salidas v1, v2 y v3 en una salida nica siguiendo
% la secuencia:
% v = v1(1)v2(1)v3(1), v1(2)v2(2)v3(1), ..., v1(end)v2(end)v3(end)
v=zeros(1, length(v1)*3);
v(1:3:end) = v1;
v(2:3:end) = v2;
v(3:3:end) = v3;
Conclusiones:
Se puede verificar lo aprendido en clase con respecto a codificacin convolucinal, al
realizar una codificacin en Matlab del algoritmo necesario para obtener la codificacin
convolucional as como graficar el diagrama de Trellis para un cdigo dado.
Bibliografa:
Notas del curso
www.mathworks.com