Escolar Documentos
Profissional Documentos
Cultura Documentos
Lista de Figuras
Objectivos
Metodologia
Resumo
Abstract
Códigos Reed-solomon
Em 1960, Irving Reed e Gus Solomon publicaram o artigo “Polymonial Codes Over Certain
Finite Fields”, no “Journal of the Society for Industrial and Applied Mathematics” . Este
artigo apresentou uma nova classe de códigos corretores de erro que hoje são chamados de
códigos Reed-Solomon. Estes códigos tornaram-se muito úteis devido a sua baixa
complexidade e alto poder de correção,e hoje são utilizados em diversas aplicações de
armazenamento e transmissão de dados.Os códigos Reed-Solomon (RS) são códigos cíclicos
não binários com símbolos formados por seqüências de m bits, onde m é qualquer positivo
inteiro tendo valor maior do que 2. Os códigos RS com símbolos de m bits existem para todo
A capacidade de correção de erro em rajada pode ser entendida a partir do seguinte exemplo:
Considere um código RS (n, k) = (255, 247) onde m = 8 bits (= 1 byte). A capacidade de
correção de erros deste código é:
Campos finitos
Para a obtenção de um conjunto finito de elementos de GF( 2m) a partir de F, uma condição
deve ser imposta sobre F para que ele possa conter 2m elementos e seja fechado sob
multiplicação. A condição que fecha os elementos de um campo sob multiplicação é
se segue: .
Assim, a Equação ( ) pode ser usada para formar uma seqüência finita F* a
partir da seqüência finita F, da seguinte forma:
Cada um dos 2m elementos do campo finito GF( 2m) pode ser representado como um
polinômio distinto de grau m - 1 ou menos. Cada elemento do campo GF( 2m) é representado
por um polinômio ai(X), onde pelo menos um dos m coeficientes de ai(X)é não nulo. Para i =
m
0, 1, 2, ... , 2 - 2, .A adição de dois
elementos do campo finito é definida como a soma módulo-2 de cada coeficiente do
polinômio de mesma potência, i. e.,
Codificação Reed-Solomon
O grau do polinômio gerador é igual ao número de símbolos de paridade que o código possui,
no caso 2t, o que significa que devem existir exatamente 2t potências de α que sejam raízes
deste polinômio. Normalmente são utilizadas as potências α, α 2 ,..., α 2t, porém não é
necessário iniciar com a raiz α, podendo-se iniciar com qualquer potência de α. No caso da
recomendação G.709 OTN, existem 16 símbolos de paridade, o que leva a um polinômio
gerador de grau 16. A equação abaixo mostra como é obtido o polinômio gerador para o
RS(255,239) do padrão OTN :
Para ilustrar o mecanismo de geração dos símbolos de paridade, segue um exemplo utilizando
o código RS(7,3), onde existem 3 símbolos de mensagem e 4 de paridade, levando em conta
o envio da mensagem α 1 , α 3, α 5 . Esta mensagem exemplo corresponde ao envio do símbolo
111(α 5 ), seguido dos símbolos 011(α 3) e 001(α 1 ).Primeiramente representam-se a mensagem
Cada registrador deste LFSR armazena um valor de 3 bits, que pode representar uma das 7
potências de α ou o valor 0. O processo de geração dos símbolos de paridade pelo circuito da
Figura 1(Codificador Reed-Solomon para RS(7,3)) pode ser descrito da seguinte maneira:
1) Durante os primeiros k ciclos de clock, onde k representa o número de símbolos de dados
úteis de uma seqüência, a chave 1 permanece na posição 0, permitindo a realimentação nos n-
k estágios do registrador de deslocamento, onde n-k indica o número de símbolos de
paridade.
4) Nos ciclos de clock restantes (n-k), os símbolos de paridade contidos nos registradores são
deslocados para a saída e os valores dos registradores são zerados. A tabela abaixo mostra o
processo de geração dos símbolos de paridade a partir do LFSR, detalhando o conteúdo dos
registradores durante o processo de entrada dos 3 símbolos de mensagem utilizados
anteriormente: α 1 , α 3 , α 5 .
As raízes da seqüência gerada devem ser as mesmas raízes do polinômio gerador, de maneira
que qualquer uma das raízes de g(X) aplicadas como entrada no polinômio U(X) deve
resultar zero. A partir desta análise é possível verificar se existem erros em uma mensagem
recebida.
Decodificação Reed-Solomon
Para exemplificar o processo de decodificação pode-se assumir que durante a transmissão, a
seqüência tenha sido corrompida de tal maneira que dois símbolos tenham sido recebidos
com erro. Lembrando que um código RS(7,3) pode corrigir no máximo dois erros. Para uma
seqüência de sete símbolos, o padrão de erro pode ser representado pela seguinte equação:
Supondo que para este exemplo o padrão de erro da mensagem corrompida seja:
, é possível obter a
mensagem recebida após corrupção dos dados, como mostra a equação
Neste exemplo existem quatro incógnitas: duas localizações de erro e dois valores de erro. Esta é uma
diferença importante de códigos não binários em relação a códigos binários. Em códigos binários
basta achar a localização do erro, enquanto em códigos não binários é necessário descobrir também o
valor do erro. O processo de decodificação Reed-Solomon possui diversas etapas, tais como:
O cálculo da síndrome;
O cálculo dos coeficientes do polinômio localizador de erro;
O cálculo das localizações de erro e dos valores dos erros.
Como existe um tempo de processamento em cada uma das etapas da decodificação, é necessário
também um bloco de atraso para sincronizar a geração dos valores de erro com a mensagem recebida.
Desta maneira pode-se representar a arquitetura simplificada de um decodificador Reed-Solomon da
seguinte maneira:
Cálculo da Síndrome
Aplicações dos Códigos Reed-solomon