• Nenhum resultado encontrado

NI07

N/A
N/A
Protected

Academic year: 2021

Share "NI07"

Copied!
84
0
0

Texto

(1)

Natureza da Informação

(2)

Comunicação

Até agora trabalhamos com informações e

suas representações por meio de códigos

Informações são armazenadas e/ou transmitidas

Como garantimos que não ocorram erros no

(3)

Códigos

Compressão: representamos mensagens com

menos bits

Existe compressão sem perdas (mensagem recuperada

com exatidão) e com perdas (mensagem sofre alguma

distorção). Dependendo da aplicação, pode-se empregar

uma ou outra. Exemplo: imagem BMP (sem perdas);

Imagem JPEG (com perdas).

Frequentemente compressão é combinada à codificação

Menos bits carregando a mesma informação

cada bit é mais importante

Consequência de erros em um único bit é mais séria

Queremos códigos pequenos e pouco suscetíveis a erros

Veremos técnicas de detecção/correção de erros para geração de representações menos suscetíveis a erros

(4)

Comunicação

Quando transmitimos informações, como

temos certeza que o lado receptor recebeu

corretamente a informação?

(5)

Comunicação

A perda de informação pode ocorrer em

todos os processos de comunicação, mas é

possível convivermos com ela?

Depende!!!

Existem situações nas quais é possível

convivermos com perdas de informações e outras

situações isso não é possível

(6)

Comunicação

Ex.: transmissão de imagem por uma rede de

computadores:

Quando transmitimos um vídeo pelo YouTube (ou

baixamos uma música pela Internet), se alguma

mensagem é perdida não há problema, pois o volume

de dados de uma mensagem é tão grande que a falta

de informação de um frame (quadro) geralmente não

fará diferença

 Mesmo se fizer, a consequência geralmente não é nem

(7)

Comunicação

Quando transmitimos uma imagem médica, como

uma ressonância magnética, através de uma rede de

computadores, a perda de um único quadro pode

impossibilitar a detecção de um tumor!

Portanto, existem situações e aplicações nas

quais os erros no processo de comunicação são

tolerados e outras não

(8)

Modelo de sistema de comunicação

Modelo estendido

Entrada (símbolos)‏ Codificador de fonte (Arrays de bits)‏ Canal ruidoso (Arrays de bits)‏ Decodificador de fonte Saída (símbolos)‏ Compressor Expansor Codificador de canal Decodificador de canal

(9)

Detecção/correção de erros

Codificador de canal

:

Adiciona

bits à mensagem para possibilitar

detecção/reparos de eventuais ruídos

introduzidos

Decodificador de canal

:

Realiza a decodificação da mensagem transmitida

pelo canal ruidoso

Canal

:

Ar, fibra ótica, cabo, satélite, telefone, barramentos de

(10)

Como ocorrem os erros?

Diferentes sistemas diferentes dispositivos como canal

Ex. link de comunicação, pendrive, computador, etc Vários efeitos físicos podem causar erros

Ex. riscos em CD e DVD, memória pode falhar, linha telefônica pode estar ruidosa, quedas de energia etc.

(11)

Erros

Para nossos propósitos,

erros

serão modelados

como mudanças em um ou mais bits

De 0 para 1 e vice-versa

Em cadeias de bits: assumiremos que erros são

independentes

Embora em alguns casos erros em bits adjacentes

não sejam independentes uns dos outros

(12)

Erros

Abordagens para o tratamento de erros:

Ignorar o erro;

Eco (transmissão à origem de reflexos dos dados

recebidos);

Sinalizar o erro;

Detectar e solicitar a retransmissão em caso de

erro;

Detectar e corrigir os erros na recepção de

(13)

Detecção vs Correção

Duas abordagens gerais:

Detectar o erro

Corrigir o erro

Decodificador de canal tenta reparar a mensagem

Em ambos os casos, bits são adicionados à mensagem, tornando-as maiores (adiciona redundância)‏ para informar

(14)

Ideia

Fazer com que a maioria dos padrões de bits

dos códigos não corresponda a mensagens

válidas

Efeito de erro será então mudar mensagem para um

padrão inválido

Decodificador de canal pode então detectar o erro e

tomar alguma ação

Se cada padrão ilegal é mais próximo de uma das mensagens válidas do que de todas as outras, o decodificador pode substituí-lo pela

(15)

Intuição

: cada código válido (pontos vermelhos) está

suficientemente separado dos outros códigos válidos

Células rosas: códigos

inválidos, indicam erro

As bordas são

equidistantes dos

centros

(16)

Intuição

: fazer com que exista uma região próxima de

cada código válido, desenhadas como células

Se recebemos código

inválido em uma célula,

sabemos que o correto é

o centro da célula

(17)

Intuição

: por causa da necessidade de se codificar

regiões inválidas, precisamos de bits extras

Ou seja, apenas um

subconjunto das

possíveis cadeias

recebidas é válida

(18)

Intuição

: se recebermos um código inválido na borda

da célula, ele é equidistante a dois centros

Não sabemos corrigir

Mas sabemos que está

errado

Detecção de erro é mais

fácil do que correção de

erro

(19)

Intuição

: usando um bit a mais para detectar erro, só

há centros e bordas

Toda palavra errada é equidistante a mais de uma correta

Detecção é mais fácil do

que correção

Correção precisa de

mais bits extras

(20)

Distância de Hamming

Como dizer se duas cadeias de bits são

diferentes?

Pelo número de bits que são diferentes entre as

duas cadeias

Distância de Hamming

(21)

Distância de Hamming

Ex.: Qual é a distância de Hamming entre

0100 e 1110?

0 1 0 0

1 1 1 0

2 bits

(22)

Distância de Hamming

Definida somente entre

duas

cadeias com o

mesmo número de bits

(palavras de código

de mesmo comprimento)

Efeito de erros introduzidos pelo canal pode

ser descrito pela distância de Hamming entre

Cadeia de entrada e

Cadeia de saída

Sem erros  distância = 0 Um erro  distância = 1 Dois erros  distância = 2

(23)

Redundância

Consideremos primeiro a transmissão de um

único bit

Maneira de proteger: mandá-lo mais de uma vez

Na maioria das vezes espera-se que o valor não mude

Ex. mandar duas vezes

 Mensagem 0 é substituída por 00 pelo codificador de canal  Mensagem 1 é substituída por 11 pelo codificador de canal  Decodificador alerta erro quando os dois bits recebidos são

diferentes

Mas se dois erros ocorrem?

(24)

Redundância

Se múltiplos erros são prováveis, uma maior

redundância pode ajudar

Ex. para detectar erros duplos, mandar o mesmo bit 3

vezes

 000 e 111

 A menos que os 3 bits recebidos sejam iguais, ocorreu erro 

detecta

 Detecta erros simples e duplos

 Mas quantos erros podem ter ocorrido?

 Ex. em 011, primeiro errado  bit enviado foi 1  Dois últimos bits errados  bit enviado foi 0

 E erros triplos?

(25)

Redundância

E se queremos que o decodificador de canal

corrija os erros, não só detecte?

Vamos assumir que há 1 erro no máximo e o bit é

enviado 3 vezes

Se um erro ocorreu (os 3 bits não são iguais),

decodificador pode dizer:

O valor original é o bit que ocorre um maior número de

vezes (lógica de maioria)

Chamada

técnica de tripla redundância

Pode ser usada para proteger canais de comunicação,

memórias, computação arbitrária

(26)

Redundância

Tripla redundância pode ser usada para

corrigir um único erro ou detectar erros

duplos

Mas não corrige erros duplos!

Correção pressupôs ocorrência de um único erro

Para corrigir erros duplos, deve-se aumentar

(27)

Redundância

Entrada Codi fic ad or de fon te 0 Codi fic ad or de c an al 000 Canal rui dos o 001 Dec od ifi c ad or de c an al 0 Decodi fic ad or de fon te Saída

Codificação de canal por redundância tripla e decodificação por correção de um erro, para canal introduzindo um bit de erro

Entrada Codif ic ador de fonte 0 Codi fic ado r de c anal 000 Cana l rui do s o 101 Dec od ifi c ad or de c an al 1 Saída

Codificação de canal por redundância tripla e decodificação por correção de um erro, para canal introduzindo dois bits de erro

Decodi fic ad or de fon te

(28)

Eficiência

de redundância (taxa de código)

Número de bits

antes

da codificação de canal

Número de bits

após

a codificação de canal

 Valor entre 0 e 1

 Ex. redundância dupla = 0,5  Tripla redundância = 0,33

Maiores eficiências (taxas de código) são melhores

 Representam menos acréscimos à mensagem

(29)

Redundância

Efetividade

de redundância

Se erros são improváveis:

Pode ser razoável ignorar o caso ainda mais raro de

dois erros ocorrerem juntos e próximos

E redundância tripla é bastante efetiva

 Consegue corrigir um erro

Mas erros podem ser concentrados

Ex. risco em CD

Neste caso, um erro é então provavelmente

acompanhado de erros similares em bits adjacentes

Redundância tripla não é efetiva nesse caso

(30)

Múltiplos bits

Há várias técnicas para detectar erros em

uma sequência de vários bits

Algumas também realizam correção de erros

Exemplos:

Paridade

Códigos retangulares

Códigos de Hamming

(31)

Detecção vs correção de erros

Correção de erros é mais útil que apenas

detecção

Mas requer mais bits

(32)

Paridade

Permite

detecção de erro em um único bit

de

uma mensagem

Qualquer grupo de bits tem um número par ou

ímpar de 1s

Bit de paridade é adicionado para tornar o número de 1s

no grupo sempre par ou sempre ímpar

Bit de paridade par: torna número de 1s par

Bit de paridade ímpar: torna número de 1s ímpar

Um sistema opera com paridade par

ou

ímpar

Ex. operando com paridade par, verifica-se em grupos

de bits recebidos se eles possuem número par de 1s

(33)

Paridade

(34)

Paridade

Bit de paridade pode ser acrescentado ao

início ou fim do código

Depende do projeto do sistema

ATENÇÃO:

Número total de 1s, incluindo bit de paridade, é sempre par para a paridade par e sempre ímpar para a paridade ímpar

(35)

Paridade

Detecção de erro:

Bit de paridade provê detecção de erro em

um

único bit

Ou mais genericamente:

número ímpar

de erros

Não pode detectar dois (ou qualquer número par de)

erros em um grupo

Imagine um sistema com paridade par e transmitindo a

seqüência: 0101

 Com o bit de paridade fica 00101

 Supondo que ocorra um erro no 3o bit, o receptor receberá

00001 e apontará um erro, pois perceberá um número ímpar de 1s em uma paridade par

Agora, se ocorrerem 2 erros (ex: receptor recebe 01111),

(36)

Paridade

Decodificador de canal conta número de 1s

Se é ímpar (na paridade par)

há erro

Número ímpar de erros

Não consegue corrigir danos

Não consegue sequer dizer se o erro foi no bit de

paridade

Não detecta erros duplos

(37)

Paridade

É eficiente

Taxa de código no exemplo de um byte = 8/9

Usada em muitas aplicações de hardware (onde uma

operação pode ser repetida em caso de dificuldade, ou

onde é útil a simples detecção de erros)

 Ex. barramento PCI

Mas é pouco efetiva

Mais usada quando probabilidade de erro é muito pequena

E quando não há razão para supor que erros em bits

(38)

Por que bit de paridade funciona?

Para que seja detectado um único erro

, é preciso

que todos os códigos válidos tenham entre si uma

distância de Hamming maior ou igual a 2

No caso da proteção de 1 bit com bit de paridade temos:

Paridade par:

0

0 e

1

1 têm d = 2

Paridade ímpar:

1

0 e

0

1 têm d = 2

E no caso da proteção de 2 bits:

Paridade par:

0

00,

1

01,

1

10 e

0

11 têm d = 2

Paridade ímpar:

1

00,

0

01,

0

10 e

1

11 têm d = 2

etc.

Se a distância fosse 1, um erro faria com que um código

válido se transformasse em outro válido

Ex. 00 e 01

(39)

Paridade (conclusão)

Um único bit de paridade: detecção de erro em

um

único bit

em uma cadeia

Pode indicar que existe

um erro

em um certo grupo de bits

Porém, não temos informação para descobrir onde foi o

erro (ou seja, sua

localização

)

Para corrigir um erro detectado,

mais informação

é

necessária

Posição

(localização)

do bit errado tem que ser

identificada

(40)

Detectando múltiplos erros

No caso geral, para criar um código que

detecte

L

erros, precisamos que a

distância

mínima

(

d

min

) entre os padrões seja

maior ou

igual a L + 1

Exemplo:

Para detectar 3 erros, é preciso uma distância mínima

de 4 entre códigos válidos

(41)

Corrigindo múltiplos erros

No caso geral, para criar um código que

corrija

L

erros, precisamos que a

distância mínima

(d

min

)

entre os padrões seja

maior ou igual a 2L + 1

Exemplo:

 Para detectar 1 erro, é preciso uma distância mínima de 3

 No código de paridade para 1 bit, podemos apenas detectar o erro: 00 e 11

 Mas se colocarmos 1 bit a mais, teremos: 000 e 111  Neste caso, podemos saber qual era o bit original

(42)

Mágica

1 - Vocês colocam as cartas

aleatoriamente

• 2- Quando coloco as fileiras extras

para “dificultar”, faço todas as

colunas e linhas terem um número

ímpar de cartas de “frente”

(43)

O Segredo da Mágica

3 – Mudo uma carta, qual foi?

4 – O assistente apenas tem

que procurar a linha e coluna

onde há um número par de

cartas de frente

Isso é um algoritmo real de

detecção e correção de erros!

(44)

Mágica

Colocando uma só fileira (paridade simples)

Dá para saber qual linha está errada, mas não que carta nela está virada Entrada

Codificador de canal

(45)

Códigos retangulares

Provêm

correção de um único erro

e

detecção de erro duplo

simultaneamente

Suponha ter que proteger informação de um byte

Oito bits D0 D1 D2 D3 D4 D5 D6 D7

Arranjá-los em uma tabela retangular e adicionar bits de

paridade para cada uma das linhas e colunas:

D0 D1 D2 D3 PL0 D4 D5 D6 D7 PL1 PC0 PC1 PC2 PC3 P

Há outros códigos geométricos também, baseados em arranjar os bits em triângulos, cubos, pirâmides, cunhas ou estruturas de maior dimensão

8 bits de dados (carga) 7 bits de paridade

(46)

Códigos retangulares

Cada bit de paridade de linha e coluna é

ajustado tal que paridade total na linha ou

coluna seja par (ou ímpar, dependendo do

sistema adotado)

(47)

Códigos retangulares

No exemplo dos 8 bits de dados + 7 bits de

paridade, os 15 bits são então enviados pelo canal

Decodificador de canal os analisa na recepção

 Faz um total de 8 checagens de paridade

 Nas 3 linhas e nas 5 colunas

 Um único erro: uma das três paridades de linha e uma das

cinco paridades de coluna estará errada

 Esse bit pode então ser identificado e corrigido

 Na intersecção da linha e coluna com paridades incorretas

 Dois erros: haverá um padrão diferente de falhas de paridade

(48)

Códigos retangulares

A idéia é dispor os bits de dados na forma mais

próxima possível de um quadrado perfeito

Exemplo: 24 bits de dados

Maneiras de arranjá-los em um retângulo

 24 X 1 (requer 26 bits de paridade)  12 X 2 (requer 15 bits de paridade)  8 X 3 (requer 12 bits de paridade)  6 X 4 (requer 11 bits de paridade)

 6 X 4 é o melhor arranjo (mais próximo de um quadrado

perfeito)

(49)

Códigos retangulares

Conclusão: o número de bits de paridade

necessários cresce linearmente com o perímetro

do retângulo utilizado (M+N+1)

Pergunta: dá para produzir códigos mais

eficientes (com o menor número de bits de

paridade possível) para o mesmo propósito de

corrigir 1 erro?

(50)

Códigos de Hamming

Richard Hamming inventou um método para

corrigir 1 erro com número mínimo de bits de

paridade extra

Cada bit de paridade adicional pode ser usado para

ajudar a localizar o erro

(51)

Códigos de Hamming

Ex. 3 bits extra

3 testes podem identificar até 8

condições

Uma‏delas‏será‏a‏condição‏de‏“não‏erro”‏(correto)

7 condições restantes para identificar a localização de até

7 posições onde erro possa estar

Bloco transmitido pode então ter 7 bits

 3 para checagem de erros

 4 para carregar os dados (carga)

Ex. 4 bits de paridade

blocos com 15 bits

(52)

Códigos de Hamming

• Número de bits de paridade

– Se o número de bits de dados for d, o número

de bits de paridade p é determinado por:

não é necessário decorar essa fórmula: ela pode ser

facilmente deduzida!!!

• Ex.: 4 bits de dados (mensagens com 4 bits)

– p = 2  2p = 22 = 4 e d + p + 1 = 4 + 2 + 1 = 7

» 4 < 7, relação não é satisfeita

– p = 3  2p = 23 = 8 e d + p + 1 = 4 + 3 + 1 = 8 » 8  8, relação é satisfeita

1

+

p

+

d

2

p

Precisa de 3 bits de paridade para proporcionar correção de um único erro em quatro bits de dados

(53)

Códigos de Hamming

Detecção e correção são proporcionados por

todos os bits no grupo

De paridade e de dados

(54)

Códigos de Hamming

Inserção de bits de paridade no código:

Arranjar os bits adequadamente no código

Ex. com 4 bits de dados e 3 bits de paridade

 Bit mais à esqueda é designado como bit 1, próximo como

2 e assim por diante

 bit 1, bit 2, bit 3, bit 4, bit 5, bit 6, bit 7

 Bits de paridade são colocados nas posições numeradas

em correspondência às potências de 2 (1, 2, 4, 8, ...)  P1, P2, D1, P3, D2, D3, D4

 Pi é um bit de paridade em particular e Di é um bit de dado em particular

(55)

Códigos de Hamming

Determinação dos valores de bits de

paridade

Designar apropriadamente o valor 0 ou 1 a cada

bit de paridade

Cada bit de paridade provê verificação em outros

determinados bits no código total

 Deve saber valor desses outros bits para determinar o de

(56)

Códigos de Hamming

Determinação dos valores de bits de paridade

Para determinar o valor do bit, primeiro numere cada

posição de bit em binário

Escreva o binário equivalente a cada decimal da

posição

(57)

Códigos de Hamming

Determinação dos valores de bits de paridade

Em seguida, indique a localização dos bits de dados e

de paridade

Primeira linha da tabela:

Número da posição em binário do bit de paridade P1 tem 1 no dígito mais à direita: esse bit verifica as posições de todos os bits, incluindo ele, que têm

(58)

Códigos de Hamming

Determinação dos valores de bits de paridade

Número da posição em binário do bit de paridade P2 tem 1 no dígito do meio: esse bit verifica as posições de todos os bits, incluindo ele, que têm 1

na mesma posição (bits 2, 3, 6 e 7)‏

Número da posição em binário do bit de paridade P3 tem 1 no dígito mais à esquerda: esse bit verifica as posições de todos os bits, incluindo ele, que

(59)

Códigos de Hamming

Determinação dos valores de bits de paridade

Em cada caso, é designado ao bit de paridade o valor

que torna a quantidade de 1s, no conjunto de bits que

ele verifica, par ou ímpar

(60)

Determinação do código

001

p

3

p

2

p

1

010

110

100

011

101

111

(61)

Códigos de Hamming

Ex. 1: Determine o código de Hamming para

o 1001, usando paridade par

Passo 1

: determinar número de bits de paridade

necessários

p = 3 são suficientes (visto em slide anterior)

Total de bits do código = 4 (dados) + 3 (paridade) = 7

(62)

Códigos de Hamming

Ex. 1: Determine o código de Hamming para

o 1001, usando paridade par

Passo 2

: construir tabela de posições de bits e

(63)

Códigos de Hamming

Ex. 1: Determine o código de Hamming para

o 1001, usando paridade par

Passo 3

: Determinar os bits de paridade

• P1 verifica bits das posições 1, 3, 5 e 7: tem que ser 0 para no de 1s ser par no grupo

• P2 verifica bits das posições 2, 3, 6 e 7: tem que ser 0 para no de 1s ser par no grupo

(64)

Códigos de Hamming

Ex. 1: Determine o código de Hamming para

o 1001, usando paridade par

(65)

Códigos de Hamming

Ex. 2: Determinar código de Hamming para

bits de dados 10110 usando paridade ímpar

Passo 1

: determinando número de bits de

paridade necessários

d = 5

Tentando p = 4

 2p = 24 = 16

d + p + 1 = 5 + 4 + 1 = 10   4 bits são suficientes

(66)

Códigos de Hamming

Ex. 2: Determinar código de Hamming para

bits de dados 10110 usando paridade ímpar

Passo 2

: construir tabela de posições de bits e

inserir bits de dados

(67)

Códigos de Hamming

Ex. 2: Determinar código de Hamming para

bits de dados 10110 usando paridade ímpar

Passo 3

: determinar bits de paridade

•P1 verifica bits das posições 1, 3, 5, 7 e 9: tem que ser 1 para no de 1s ser ímpar no grupo

•P2 verifica bits das posições 2, 3, 6 e 7: tem que ser 0 para no de 1s ser ímpar no grupo

•P3 verifica bits das posições 4, 5, 6 e 7: tem que ser 1 para no de 1s ser ímpar no grupo

(68)

Códigos de Hamming

Ex. 2: Determinar código de Hamming para

bits de dados 10110 usando paridade ímpar

(69)

Códigos de Hamming

Detecção e correção de erro com o código

de Hamming:

Cada bit de paridade e seus grupos de bits

correspondentes tem que ser verificado

Se possui paridade adequada

Se há 3 bits de paridade 3 verificações são feitas  Se há 4 bits de paridade  4 verificações são feitas  Etc.

Cada verificação de paridade produz um

(70)

Códigos de Hamming

Detecção e correção de erro com o código de

Hamming:

Resultado de todas as verificações indica o bit, se houver

algum, que está errado:

 Passo 1: começar com o grupo verificado por P1

 Passo 2: Verifique o grupo quanto à paridade correta

 0 representa verificação de paridade correta

 1 representa verificação de paridade incorreta

 Passo 3: repetir passo 2 para cada grupo de paridade

 Passo 4: Número binário formado pelo resultado de todas as

verificações de paridade determina a posição do bit do código que está errado

Código de posição de erro

 Primeira verificação de paridade gera o bit menos significativo  Todas as verificações corretas indicam que não há erro

(71)

Código de Hamming

Ex. 1: Considere que transmitiu 0011001

(exemplo 1) e 0010001 foi recebido

Receptor não sabe o que foi transmitido

Tem que testar as paridades para determinar se o

código está correto

(72)

Código de Hamming

Ex. 1: Considere que transmitiu 0011001

(exemplo 1) e 0010001 foi recebido

Montar tabela de posição de bit

• Primeira verificação de paridade: Bit P1 verifica as posições 1, 3, 5 e 7 Há dois 1s nesse grupo

(73)

Código de Hamming

Ex. 1: Considere que transmitiu 0011001

(exemplo 1) e 0010001 foi recebido

Montar tabela de posição de bit

• Segunda verificação de paridade: Bit P2 verifica as posições 2, 3, 6 e 7 Há dois 1s nesse grupo

(74)

Código de Hamming

Ex. 1: Considere que transmitiu 0011001

(exemplo 1) e 0010001 foi recebido

Montar tabela de posição de bit

• Terceira verificação de paridade: Bit P3 verifica as posições 4, 5, 6 e 7 Há um 1 nesse grupo

(75)

Código de Hamming

Ex. 1: Considere que transmitiu 0011001

(exemplo 1) e 0010001 foi recebido

Montar tabela de posição de bit

• Resultado:

Código de posição de erro é 100 (binário 4)‏ Bit na posição 4 está errado (deveria ser 1)‏

(76)

Código de Hamming

Ex. 2: O código 101101010 é recebido. Corrija

qualquer erro. Há quatro bits de paridade.

Paridade usada é ímpar.

Tabela de posição de bit:

• Primeira verificação de paridade:

Bit P1 verifica as posições 1, 3, 5, 7 e 9 Há dois 1s nesse grupo

(77)

Código de Hamming

Ex. 2: O código 101101010 é recebido. Corrija

qualquer erro. Há quatro bits de paridade.

Paridade usada é ímpar.

Tabela de posição de bit:

• Segunda verificação de paridade: Bit P2 verifica as posições 2, 3, 6 e 7 Há dois 1s nesse grupo

(78)

Código de Hamming

Ex. 2: O código 101101010 é recebido. Corrija

qualquer erro. Há quatro bits de paridade.

Paridade usada é ímpar.

Tabela de posição de bit:

• Terceira verificação de paridade: Bit P3 verifica as posições 4, 5, 6 e 7 Há dois 1s nesse grupo

(79)

Código de Hamming

Ex. 2: O código 101101010 é recebido. Corrija

qualquer erro. Há quatro bits de paridade.

Paridade usada é ímpar.

Tabela de posição de bit:

• Quarta verificação de paridade: Bit P4 verifica as posições 8 e 9 Há um 1 nesse grupo

(80)

Código de Hamming

Ex. 2: O código 101101010 é recebido. Corrija

qualquer erro. Há quatro bits de paridade.

Paridade usada é ímpar.

Tabela de posição de bit:

• Resultado:

Código de posição de erro é 0111 (binário 7)‏ Bit na posição 7 está errado

(81)

Códigos de Hamming

• Alguns códigos de Hamming:

(255, 247, 3)‏

0,97

247

255

8

(127, 120, 3)‏

0,94

120

127

7

(63, 57, 3)‏

0,90

57

63

6

(31, 26, 3)‏

0,84

26

31

5

(15, 11, 3)‏

0,73

11

15

4

(7, 4, 3)‏

0,57

4

7

3

(3, 1, 3)‏

0,33

1

3

2

Tipo de bloco de

código

Taxa de

código

Carga

Tamanho

de bloco

Bits de

paridade

(82)

(255, 247, 3)‏

0,97

247

255

8

(127, 120, 3)‏

0,94

120

127

7

(63, 57, 3)‏

0,90

57

63

6

(31, 26, 3)‏

0,84

26

31

5

(15, 11, 3)‏

0,73

11

15

4

(7, 4, 3)‏

0,57

4

7

3

(3, 1, 3)‏

0,33

1

3

2

Tipo de bloco de

código

Taxa de

código

Carga

Tamanho

de bloco

Bits de

paridade

Códigos de Hamming

• Alguns códigos de Hamming:

(83)

Códigos de Hamming

• Alguns códigos de Hamming:

(255, 247, 3)‏

0,97

247

255

8

(127, 120, 3)‏

0,94

120

127

7

(63, 57, 3)‏

0,90

57

63

6

(31, 26, 3)‏

0,84

26

31

5

(15, 11, 3)‏

0,73

11

15

4

(7, 4, 3)‏

0,57

4

7

3

(3, 1, 3)‏

0,33

1

3

2

Tipo de bloco de

código

Taxa de

código

Carga

Tamanho

de bloco

Bits de

paridade

Código de Hamming mais simples com eficiência razoável

(84)

Códigos de Hamming

Conclusão

cada bit de paridade adicional

dobra

o número de

localizações codificadas

 1 único bit testa apenas 2 condições:‏erro‏e‏“não‏erro”‏(ou‏

seja, apenas detecta se houve erro, mas não corrige)

 2 bits: testa até 4 condições: 3 possíveis localizações de erro

e‏a‏condição‏“não‏erro”

 3 bits: testa até 8 condições: 7 possíveis localizações de erro

e‏a‏condição‏“não‏erro”

 n bits: testa até 2n condições: 2n -1 localizações de erro e a

condição‏“não‏erro”

 Ou seja, o número de bits de paridade necessários para

corrigir 1 erro cresce logaritmicamente (log2M) com o tamanho da mensagem (M)

Referências

Documentos relacionados

este campo contém um valor calculado por CRC sobre o campo SN (número sequencial) que permite corrigir erros de 1 bit no SN paridade de 1 bit sobre os 7 bits anteriores cabeçalho

SISTEMA DE VIGILÂNCIA EM SERVIÇO – VIGISERV Esse sistema de informação encontra-se implantado, desde 2002, nas 15 unidades de assistência às pessoas vivendo com o HIV da

V- praticar ato de abuso, maus-tratos, ferir ou mutilar animais silvestres, domésticos ou domesticados, nativos ou exóticos.. Considerando-se o direito constitucional ao meio

Nos municípios SEM a presença de Backhaul de Fibra, mais de 50% dos acessos são de PROVEDORES REGIONAIS.. Nos municípios COM fibra, esse percentual é bem

publicado no DOE de 11/05/2011, torna público, para conhecimento dos interessados que fará realizar licitação, na modalidade CONVITE, tipo MENOR PREÇO GLOBAL,

Para obter a melhor qualidade de imagem e som, conecte o dispositivo externo usando um cabo HDMI... No entanto, se o dispositivo não suportar, o mesmo pode não

§ 2º Os cursos técnicos de nível médio autorizados pela Secretaria de Estado de Educação do Distrito Federal, após deliberação do Conselho de Educação do Distrito Federal,

Assim, Continentes: Revista de Geografia do Departamento de Geociências da UFRRJ – Universidade Federal Rural do Rio de Janeiro reafirma seu papel de oferecer