Você está na página 1de 27

Universidade Eduardo Mondlane

Faculdade de Engenharia
Departamento de Engenharia Electrotécnica

CURSO: Licenciatura em Engenharia Electrónica


DISCIPLINA: Processamento de Informação

Algoritmo de Shanon-Fano
Codigos Ciclicos

06/21/23 1
Codigos Ciclicos
Diagrama do Codificador

2
Codigos Ciclicos
Algoritmo
 
Uma árvore de Shannon-Fano é construída de acordo com uma
especificação projectada para definir uma tabela de códigos. O algoritmo
real é simples:

1.Para uma dada lista de símbolos, desenvolve-se uma lista


correspondente de probabilidades ou frequência , por forma que a
frequência relativa de ocorrência de cada símbolo seja conhecida.

2. Classificar as listas de símbolos de acordo com a frequência,


colocando os símbolos em ordem decrescente.

3. Dividir a lista em duas partes ( tendendo a ser equiprovaveis ), com


as contagens de frequência total da parte superior , sendo próximo do
total da parte inferior possível.

3
Codigos Ciclicos
4. Na parte superior da lista é atribuído o dígito binário 0, e a parte
inferior é atribuido o dígito 1. Isto significa que os códigos para os
símbolos na primeira parte começarão todos com 0, e os códigos na
segunda parte começarão todos com 1.

5. Aplicar recursivamente as etapas 3 e 4 a cada uma das duas


metades, subdividindo grupos e adicionando bits aos códigos até que
cada símbolo tenha se tornado um código correspondente na folha da
árvore.

4
Codigos Ciclicos
Exemplo 1:
A fonte de informação A gera os símbolos {A0, A1, A2, A3 e A4} com
correspondentes probabilidades {0,4, 0,3, 0,15, 0,1 e 0,05}. Codificando os
símbolos da fonte usando um codificador binário e um codificador Shannon-
Fano dá:

5
Codigos Ciclicos
A entropia da fonte sera :

Como temos 5 símbolos (5 <8 = 23) , precisamos de 3 bits, pelo


menos, para representar cada símbolo em binário (código de
comprimento fixo). Assim, o comprimento médio do código
binário é :

A eficiência do código binário :

6
Codigos Ciclicos
O Código Shannon-Fano é uma abordagem de cima para
baixo. Construindo a árvore de código como se segue :

7
Codigos Ciclicos
Calculando a eficiencia do codificador via SFN, teriamos :

Este exemplo demonstra que a eficiência do codificador


Shannon-Fano é muito maior que a do codificador binário.

Cyclic codes 8
 
Codigos Cíclicos

Os códigos cíclicos são códigos lineares


especiais com uma propriedade extra. Num
código cíclico, se uma palavra de código é
deslocada ciclicamente (girada), o resultado é
outra palavra de código.

9
Codigos Ciclicos
Codigos Ciclicos 10
Codigos Ciclicos 11
Codigos Ciclicos 12
Neste capítulo abordaremos :

•Cyclic Redundancy Check

•Implementação do Hardware

•Análise de Códigos Polinomiais Cíclicos

•Vantagens de Códigos Cíclicos

13
Codigos Ciclicos
Uso de Polinómios
•Uso de um polinómio para representar uma
palavra binária;

•Cada bit da esquerda para direita pode ser


mapeado em um termo de potência;

•O bit mais significativo representa a potência


“0” e o termo mais próximo representa a
potência “1” ;

•Se o bit em causa tem valor NULO, o seu


termo de potência elimina-se.
14
Codigos Ciclicos
Representação Binária e Polinomial Forma mais curta

15
Codigos Ciclicos
16
Codigos Ciclicos
O divisor em um código cíclico é normalmente
chamado de polinômio gerador ou simplesmente o
gerador.

Num código cíclico :

Se R(x) ≠ 0, um ou mais bits estão corrompidos.

Se R(x) = 0, ou:

  Nenhum bit está corrompido ;

  Alguns bits estão corrompidos, mas o


decodificador falha detectá-los.
17
Codigos Ciclicos
Num código cíclico, os E(x) erros que são divisíveis por
G(x) não são capturados.

A palavra de código recebida representa-se por (C (x) +


E (x)) / G (x) =C (x) / G (x) + E (x) / G(x)

A primeira parcela é por definição divisível e a segunda


parcela irá determinar o erro.

Se obtivermos "0“ como resultado, conclusão de que não


ocorreu nenhum erro.

Nota: isso pode significar que um erro não foi


detectado.

18
Codigos Ciclicos
O Polinómio Gerador

Um bom gerador polinomial precisa ter as seguintes


características:

• Deve ter pelo menos dois termos.

• O coeficiente do termo x0 deve ser 1.

• Não deve dividir xt + 1, para t entre 2 e n - 1

•Deve ter o factor x + 1.

19
Codigos Ciclicos
20
Codigos Ciclicos
Implementação do Hardware

Basicamente usam circuitos sequenciais ( registros de


deslocamento ) , de acordo com o grau máximo do polinómio
gerador :

Codigos Ciclicos 21
Probabilidades de Erros no Transporte

Ela depende das técnicas utilizadas , das características


de transmissão do meio de transmissão e dos sinais
indesejados.

Os valores típicos de Pe são 10E-4 ,10E-7...

Para aplicações onde os erros são intoleráveis é necessário


o uso de técnicas de recuperação e controle.

22
Codigos Ciclicos
23
Codigos Ciclicos
Supondo C(n,k) um código corrector binário, d o número
máximo de erros que C(n,k) é capaz de detectar, t o número
máximo de erros que C(n,k) é capaz de corrigir e dmin a
distância mínima do código. Então:

24
Codigos Ciclicos
n= Numero de Bits Total da Informação

k= Numero de Bits da Palavra a Transmitir

r=n-k= Número de Bits Redundantes ( Equivalente ao grau do


polinómio gerador )

Rc= Taxa do Codificador

25
Codigos Ciclicos
Rajadas de Erros
 
Definição: Uma rajada de comprimento l é um frame cujos
símbolos não nulos são invertidos a uma extensão de simbolos
nulos.

Uma perda significativa de comprimento l , é qualquer


deslocamento cíclico de uma rajada de comprimento l.

A probabilidade de uma ser recebida sem erros determina-se


por :

26
Codigos Ciclicos
-A probabilidade de uma ser recebida sem que os erros sejam
detectados, num código capaz de detectar l erros, determina-se
por :

Um código polinomial. pode detectar no máximo, rajadas de


comprimento menor ou igual ao grau do gerador. Uma das
técnicas para combater as rajadas , sera usar o
interpaginado .
27
Codigos Ciclicos

Você também pode gostar