Pergunta

A correção de erro de Reed-Solomon funciona em uma instância em que há um byte caído (ou vários bytes caídos)? Por exemplo, digamos que seja um (12,8) código Salomon, portanto, teoricamente, ele deve ser capaz de corrigir 2 erros (ou 4 apagamentos se a posição for conhecida). Mas, o que acontece se apenas 11 (ou 10) bytes forem recebidos e não se sabe quais bytes foram descartados? A correção de erro de Reed-Solomon funcionará?

Obrigado,
Ben

Foi útil?

Solução

A decodificação do RS para apagamento requer a posição dos símbolos "cair" ou perdida. O tipo de erro que você está falando é devido à distorção de fase.

Outras dicas

Você pode fazê -lo funcionar simplesmente pedalando pelas possíveis posições em que o personagem pode estar faltando e deixando -o tentar corrigir seu resultado, então digamos que você tenha recebido 10 caracteres:

1234567890

CORRIR os seguintes valores:

??1234567890
?1?234567890
?12?34567890
 :
1??234567890
1?2?34567890
 :
1234567890??

Cada tentativa provavelmente lhe dará algum resultado, a maioria das quais não é a que você deseja. Mas eu esperaria que haja exatamente um resultado com o número mínimo de modificações adicionais, e essa deve ser a que você deseja usar como a resposta mais correta.

Por exemplo, se você corrigir os três primeiros números do exemplo acima, poderá obter o seguinte resultado:

    v
361274567890
917234567890
312734569897
 :      ^  ^

Para o primeiro e o terceiro caso, você tem correções adicionais feitas além do preenchimento dos dois espaços em branco (marcados com V e ^), enquanto no segundo caso você tem apenas as posições que faltavam e os outros caracteres correspondem à entrada não corrigida. Portanto, eu escolheria a resposta 2 como a mais provável de estar correta.

Claramente, as chances de isso funcionar depende se existem outros erros. Infelizmente, não sou capaz de fornecer um conjunto rigoroso de condições sob as quais esse método funcionará com certeza.

.

Outra coisa que você pode fazer se sua mensagem for longa o suficiente é usar uma técnica de intercalação para basicamente ter vários códigos RS ortogonais cobrem seus dados. Dessa forma, se um falhar, você poderá se recuperar com outro. Este método é, por exemplo, usado em discos compactos (CDs), onde é chamado Circ.

Não, Reed-Solomon não pode corrigir automaticamente as instâncias em que faltam bits, porque, assim como a maioria dos outros algoritmos da FEC, Foi projetado apenas para corrigir bits-flips. Se você conhece a posição dos bits ausentes, poderá preencher seu sinal recebido nessas posições para que o RS possa funcionar normalmente.

No entanto, se você não conhece a posição, precisará usar outro algoritmo que suporta Inserção de bits ou delicadeza de bits como códigos de marcador e códigos de marca d'água.

Observe também que o RS não pode ser usado apenas para apagamentos, mas também para Processar bits ruidosos usando a síndrome de Forney.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top