Detecção de Erros – Paridade

Transcrição

Detecção de Erros – Paridade
Detecção de Erros – Paridade
Verificação de Paridade
– Esse tipo de detecção consiste em acrescentar um bit (de
paridade) a cada conjunto de bits da mensagem (caractere) de
modo a ter as seguintes características:
• Paridade Par
– Acrescenta um bit 1 ou um bit 0 às mensagem para que o número total
de bits 1 seja par
• Paridade Ímpar
– Acrescenta um bit 1 ou um bit 0 às mensagem para que o número total
de bits 1 seja ímpar
– Assim, uma mensagem com k bits se torna uma palavra de
código com n = k + 1 bits
• ASCII: utiliza 7 bits para codificação da informação (k = 7) e 1 bit para
paridade (n = 7)
– O método de detecção de erros por paridade é pouco eficiente
• Se houver um número par de bits errados, o esquema de paridade não
consegue detectar a ocorrência de erros
Detecção de Erros – Paridade
Exemplo de Detecção de Erros – Paridade Par (k=3)
x1
x2
x3
P
0
0
0
0
0
0
1
1
0
1
0
1
0
1
1
0
1
0
0
1
1
0
1
0
1
1
0
0
1
1
1
1
Detecção de Erros – Paridade
Exemplo de Detecção de Erros – Paridade Ímpar (k=3)
x1
x2
x3
P
0
0
0
1
0
0
1
0
0
1
0
0
0
1
1
1
1
0
0
0
1
0
1
1
1
1
0
1
1
1
1
0
Detecção de Erros – BSC
Block Sum Check (BSC)
– Probabilidade de um bloco de caracteres conter erros ⇒ taxa de
erro de bloco
– Usa conj. de bits de paridade calculado pelo no. total de
caracteres transmitidos em um frame
– Exemplo:
x1 x2
x3
x4 | Pr(impar) ⇒
1
0
0
0 |⇒0
0
1
1
0 |⇒1
1
0
1
1 |⇒0
------------------------0
1
0
1
| 1 Pc(par) ⇓
Detecção de Erros – CRC
Cyclic Redundance Check (CRC)
– No Transmissor, um bloco de k bits é representado por um
polinômio de ordem k – 1
• Bloco: 1 0 1 1 0 0 0 1 ⇒ p7 + p5 + p4 + 1
• Polinômio é dividido mod2 por um polinômio gerador de ordem n,
tendo um quociente e um resto de ordem n – 1
• Frame de k bits de informação seguidos dos n bits correspondentes
ao resto da divisão de ordem n – 1 (Frame Check Sum - FCS)
– No Receptor, o polinômio de ordem k – 1, correspondente aos k
primeiros bits recebidos, é dividido pelo mesmo polinômio gerador
usado no Transmissor
• O resto da divisão é comparado com os n últimos bits recebidos
• Se forem iguais, não há erros
• Se os bits forem diferentes, cada bit diferente representa um erro
Detecção de Erros – CRC
– CRC-12
• Caracteres de 6 bits
• FCS de 12 (p12 + p11 + p3 + p2 + p + 1)
– CRC-16
• Caracteres de 8 bits
• FCS de 16 (p16 + p15 + p2 + 1)
– CRC-32
• Caracteres de 8 bits
• FCS de 32 (p32+p26+p23+p22+p16+p12+p11+p10+p8+p7+p5+p4+p2 +p+1)
Exemplos de
Códigos de Bloco
Correção de Erros – Códigos de Bloco
Códigos de Hamming
– Foram descobertos por R.W. Hamming e constituem um código
perfeito (para correção de um único erro)
– Os códigos de Hamming apresentam m ≥ 2 e apresentam:
n = 2m − 1
k = n−m
– A distância mínima é sempre igual a 3, independente do número de
bits de paridade usado, de modo que podem detectar até 2 erros e
corrigir apenas 1 erro:
d min = 3
3 ≥ t1 + 1
3 ≥ 2 ⋅ t2 + 1
– As k linhas da matriz PT consistem em palavras de m bits com 3 ou
mais bits 1
Correção de Erros – Códigos de Golay
Códigos de Golay
– São códigos de correção de erros cíclicos perfeitos (para correção
3 erros) que podem ser gerados pelos polinômios:
g1 ( p ) = 1 + p 2 + p 4 + p 5 + p 6 + p10 + p11
g 2 ( p ) = 1 + p + p 5 + p 6 + p 7 + p 9 + p11
– Os códigos de Golay apresentam as seguintes características:
n = 23
k = 12
– A distância mínima é sempre igual a 7, independente do número
de bits de paridade usado, de modo que podem detectar até 6
erros e corrigir até 3 erros:
d min = 7
7 ≥ t1 + 1
7 ≥ 2 ⋅ t2 + 1
Correção de Erros – Códigos BCH
Códigos BCH
– Foram descobertos por Bose, Chaudhuri e Hocquenghem
– São os códigos de correção de erros cíclicos mais eficientes
• Constituem uma família de códigos de bloco cíclicos que englobam
os códigos de Hamming
• Enquanto os códigos de Hamming conseguem detectar no máximo
2 erros e corrigir apenas 1, os códigos BCH permitem detectar e
corrigir um número bastante grande de erros
– Exemplo: BCH (64,127) pode corrigir até 10 erros
– Os códigos BCH apresentam m ≥ 3 e apresentam:
n = 2m − 1
k ≥ n − m ⋅ t2
– A distância mínima é dada por:
d min ≥ t1 + 1 d min ≥ 2 ⋅ t 2 + 1
Correção de Erros – Códigos Reed Solomon
Códigos de Reed Solomon
– São um subconjunto dos códigos BCH que opera num nível de
bloco ao invés de bit
– Em outras palavras, a seqüência de informação é primeiramente
empacotada em blocos menores que são tratados como um
novo conjunto de k símbolos para serem empacotados num
bloco supercodificado de n símbolos
– Dessa maneira, o decodificador é capaz de detectar e corrigir
blocos completos de erros
– O emprego de códigos de Reed Solomon permite corrigir uma
seqüência grande de erros (erros em rajadas) que ocorrer com
freqüência nas transmissões em canais com desvanecimento e
nas reproduções de CDs contendo riscos
• Normalmente são associados a entrelaçadores
Correção de Erros – Códigos Reed Solomon
– Os códigos de Reed Solomon apresentam:
n = 2m − 1
k = n − 2 ⋅ t2
– Considerando que a palavra de código é composta por m bits,
devem satisfazer a seguinte condição:
0 < k < n < 2m − 2
– A distância mínima é dada por:
d min = n − k + 1
– E a capacidade de correção é dada por:
n − k 
t2 = 
 2 
Modulação Codificada
em Treliça (TCM)
Modulação Codificada em Treliça – TCM
Modulação Codificada em Treliça
Partição – 8PSK
Modulação Codificada em Treliça – TCM
Modulação Codificada em Treliça
Modulação Codificada em Treliça – TCM
Modulação Codificada em Treliça
Modulação Codificada em Treliça – TCM
Modulação Codificada em Treliça

Documentos relacionados

Error Correction

Error Correction Deseja-se construir um código composto de 3 palavras código de 8 bits cada uma. As palavras código devem ser escolhidas de modo a maximizar o número de erros simples que se poderá detectar. Pergunt...

Leia mais

04A - UFBA

04A - UFBA Exemplo de descarte

Leia mais