Escolar Documentos
Profissional Documentos
Cultura Documentos
Recife,
03 de dezembro de 2016.
1
SUMRIO
Introduo 03
Hamming (7,4) 04
Exemplo 05
Hamming x Huffman 06
Concluso 07
2
Introduo
3
Hamming (7,4)
Esse cdigo pode ser calculado com recursos da lgebra linear, atravs de
matrizes, visto que um cdigo completamente linear. Para efeito prtico
normalmente considerado 2 matrizes, a matriz geradora do cdigo H e a matriz de
paridade H.
= +
= ( + ) = +
4
Exemplo
%Simulao de Codigo Hamming-JC-4/15/06
%Para rodar pressione F5 e observe a janela de comandos
%Simulao para codificao e decodificao de um Cdigo Hamming (7,4). O
%Decodificador pode corrigir um erro como mostrado e como a teoria nos diz.
%A tabela no final do arquivo mostra as vrias possibilidades de sada com
%diferentes posies de erro. O erro pode ser colocado em qualquer um dos 7
%bits e a sua correo ser feita.
clear
n = 7%Numero de bits de palavra por bloco
k = 4%Numero de bits de mensagem por bloco
A = [ 1 1 1;1 1 0;1 0 1;0 1 1 ];%Parity submatrix-Need binary(decimal
combination of 7,6,5,3)
G = [ eye(k) A ]%Generator matrix
H = [ A' eye(n-k) ]%Parity-check matrix
% CODIFICADOR%
msg = [ 1 1 1 1 ] %Message block vector-change to any 4 bit sequence
code = mod(msg*G,2)%Encode message
%ERRO DO CANAL(ADICIONE UM ERRO NO CDIGO)%
%code(1)= ~code(1);
code(2)= ~code(2);
%code(3)= ~code(3);
%code(4)= ~code(4);%Selecione 1, comente os outros
%code(5)= ~code(5);
%code(6)= ~code(6);
%code(7)= ~code(7);
recd = code %Received codeword with error
% DECODIFICADOR%
syndrome = mod(recd * H',2)
%Find position of the error in codeword (index)
find = 0;
for ii = 1:n
if ~find
errvect = zeros(1,n);
errvect(ii) = 1;
search = mod(errvect * H',2);
if search == syndrome
find = 1;
index = ii;
end
end
end
disp(['Position of error in codeword=',num2str(index)]);
correctedcode = recd;
correctedcode(index) = mod(recd(index)+1,2)%Corrected codeword
%Strip off parity bits
msg_decoded=correctedcode;
msg_decoded=msg_decoded(1:4)
5
%Error position Syndrome Decimal 4 bit word codeword dmin
% 1 111 7 0000 0000000
% 2 110 6 0001 0001011 3
% 3 101 5 0010 0010101 4
% 4 011 3 0011 0011110 3
% 5 100 4 0100 0100110 3
% 6 010 2 0101 0101101 3
% 7 001 1 0110 0110011 4
%No error will give syndrome of 000 0111 0111000 3
% 1000 1000111 4
% 1001 1001100 3
% 1010 1010010 4
% 1011 1011001 3
% 1100 1100001 3
% 1101 1101010 3
% 1110 1110100 4
% 1111 1111111 3
%Any exclusive or additions of any two codewords should give another
%codeword.
Hamming x Huffman
6
Concluso
Nesse trabalho foi possvel termos uma ideia de cdigos corretores de erros,
em especial o Hamming (7,4). Compreendemos o seu funcionamento e vimos um
exemplo prtico, que pode ser visto por um software como, por exemplo, o Matlab.
Tambm chegamos concluso de que o Hamming e o Huffman podem ser
utilizados em conjunto.