codigos corretores de erro

7
CÓDIGOS CORRETORES DE ERRO Como vimos antes, uma forma de reduzir a probabilidade de erro (BER) em um canal de comunicação, sem necessidade de reduzir a taxa de bits, R b , consiste em introduzir bits redundantes de uma forma apropriada (controlada), desde que R b < C, onde C é a capacidade do canal dada por Shannon: onde B T é a largura de banda ( faixa ) de transmissão e S/N é a relação sinal-ruído na entrada do receptor. Os códigos corretores de erro compreendem duas famílias: Códigos de bloco Códigos convolucionais Em códigos de bloco, um bloco de dados de comprimento k é codificado por uma palavra de código (codeword) de comprimento n dígitos (n > k). Para cada seqüência de n bits de dados há uma palavra de código distinta com n dígitos. Será tratado aqui somente seqüências de dígitos binários. Em códigos convolucionais, a seqüências codificada de n dígitos depende não somente dos k bits de dados, mas também, de N – 1 dígitos anteriores (N > 1). Em códigos de bloco, cada k bits são acumulados e então, codificados com uma palavra de código de n bits. Em códigos convolucionais a codificação é feita continuamente (running) em vez de acumular k bits de dados. Se k bits de dados são codificados com palavra de código de comprimento n, o número de dígitos de verificação de erro (check) é igual a m, onde A eficiência do código, também conhecida como taxa de código (code rate) é 1

Upload: breno-nunes

Post on 11-Jan-2016

216 views

Category:

Documents


0 download

DESCRIPTION

aaa

TRANSCRIPT

Page 1: Codigos Corretores de Erro

CÓDIGOS CORRETORES DE ERRO

Como vimos antes, uma forma de reduzir a probabilidade de erro (BER) em um canal de comunicação, sem necessidade de reduzir a taxa de bits, Rb, consiste em introduzir bits redundantes de uma forma apropriada (controlada), desde que Rb < C, onde C é a capacidade do canal dada por Shannon:

onde BT é a largura de banda ( faixa ) de transmissão e S/N é a relação sinal-ruído na entrada do receptor.

Os códigos corretores de erro compreendem duas famílias:

Códigos de bloco Códigos convolucionais

Em códigos de bloco, um bloco de dados de comprimento k é codificado por uma palavra de código (codeword) de comprimento n dígitos (n > k). Para cada seqüência de n bits de dados há uma palavra de código distinta com n dígitos. Será tratado aqui somente seqüências de dígitos binários. Em códigos convolucionais, a seqüências codificada de n dígitos depende não somente dos k bits de dados, mas também, de N – 1 dígitos anteriores (N > 1). Em códigos de bloco, cada k bits são acumulados e então, codificados com uma palavra de código de n bits. Em códigos convolucionais a codificação é feita continuamente (running) em vez de acumular k bits de dados.Se k bits de dados são codificados com palavra de código de comprimento n, o número de dígitos de verificação de erro (check) é igual a m, onde

A eficiência do código, também conhecida como taxa de código (code rate) é

Assim, se a taxa de bits da fonte é igual a Bfonte então a taxa de bits do canal, Bcanal, é

Tal código é conhecido como código (n,k).

Uma forma de representar os blocos de dados e as palavras de código , é a forma matricial, ou seja,

O número t de dígitos que podem ser corrigidos é relacionado à distância de Hamming mínima, através da relação

1

Page 2: Codigos Corretores de Erro

onde a distância de Hamming, , entre duas palavras de código é

Portanto, a distância de Hamming entre duas palavras de código é igual ao número de dígitos binários distintos entre as duas palavras. Por exemplo, se

.

O número de bits de paridade (check), m, capaz de corrigir t bits tem que satisfazer a condição

Esta condição é conhecida como limite de Hamming ( Hamming bound ). Ela é necessária e suficiente para t =1. Quando a igualdade é satisfeita, diz-se que o código é um código perfeito.A Tabela 1 mostra alguns exemplos de códigos corretores de erro e suas eficiências . Nesta tabela usa-se a notação alternativa para identificar o código.

Tabela 1 – Alguns exemplos de códigos corretores de erro.

t n k Taxa de Código

1 3 1 (3,1,3) 0,334 1 (4,1,3) 0,255 2 (5,2,3) 0,46 3 (6,3,3) 0,57 4 (7,4,3) 0,5715 11 (15,11,3) 0,7331 26 (31,26,3) 0,838

2 10 4 (10,4,5) 0,415 8 (15,8,5) 0,533

3 10 2 (10,2,7) 0,215 5 (15,5,7) 0,3323 12 (23,12,7) 0,52

Códigos de Hamming

Um código perfeito, binário, com capacidade de correção de um único erro ( t = 1 ) é chamado de Código de Hamming. Neste caso e

2

Page 3: Codigos Corretores de Erro

Uma forma alternativa de corrigir erro consiste na detecção do erro e pedido de retransmissão da palavra de código (codeword) errada (técnica ARQ). Neste caso (apenas detecção de erro) a relação entre o número de dígitos binários errados que podem ser detectados, t, e a distância de Hamming mínima é dada por

CÓDIGOS DE BLOCOS LINEARES

Em códigos lineares os m = n – k bits de paridade são obtidos através de uma combinação linear dos k bits de dados contidos na palavra de código (codeword) de comprimento n.

Códigos de Blocos Lineares Sistemáticos

Neste caso particular de blocos lineares os ck primeiros bits da palavra de código (codeword) coincidem com os bits de dados, como segue:

onde

A matriz é a geradora ( generator matrix ) do código. Uma forma alternativa da equação de geração é:

3

Page 4: Codigos Corretores de Erro

Exemplo 1 – Para um código ( 6,3 ), seja a matriz :

Substituindo todas as palavras de dados (datacode) na equação acima, resulta a tabela a seguir. Tabela 2 - Exemplo 1

palavra de dado

palavra de código

111 111000110 110110101 101011100 100101011 011101010 010011001 001110000 000000

Decodificação com Correção de Erro no Receptor.

Lembrando que a soma de módulo-2 de qualquer seqüência com ela mesma é nula, tem-se:

onde . A matriz é chamada de matriz de cheque de paridade (parity-check matrix) e tem a forma:

SÍNDROME

Seja r a palavra de código recebida. Em geral tem-se:

onde representa o vetor erro. Se não houve erro de transmissão, então . Caso contrário:

onde o vetor é denominado de síndrome. As posições dos bits 1 no vetor erro indicam as posições dos bits errados na palavra de código. Um mesmo vetor síndrome pode levar a mais de uma solução do vetor erro. A solução aqui é escolher o vetor erro com menor peso, isto é, aquele que tem o número mínimo de bits 1. Prepara-se então uma tabela contendo com peso mínimo. Para o caso do código do Exemplo 1 tem-se os dados da Tabela 3.Nesse exemplo é possível corrigir mais de um erro por que temos folga no limite de Hamming .Para o caso do código de Hamming (7,4) é possível corrigir apenas um erro.

4

Page 5: Codigos Corretores de Erro

Assim, para decodificação sistemática, prepara-se uma tabela para erro com menor peso usando-se Ao receber a palavra de código calcula através de . Agora usa-se a tabela para obter . A decisão a ser tomada é

Tabela 3 - Tabela de Decodificação

000000 000100000 101010000 011001000 110000100 100000010 010000001 001100010 111

5