Código sistemático

Na teoria da codificação, um código sistemático é qualquer código de correção de erros no qual os dados de entrada estão embutidos na saída codificada. Por outro lado, em um código não sistemático a saída não contém os símbolos de entrada.

Os códigos sistemáticos têm a vantagem de que os dados de paridade podem simplesmente ser anexados ao bloco de origem e os receptores não precisam recuperar os símbolos de origem originais se recebidos corretamente. Isso é útil, por exemplo, se a codificação de correção de erros for combinada com uma função hash para determinar rapidamente a exatidão dos símbolos de origem recebidos, ou nos casos em que ocorrem erros em apagamentos e um símbolo recebido está, portanto, sempre correto. Além disso, para fins de engenharia (como sincronização e monitoramento), é desejável obter boas estimativas razoáveis dos símbolos de origem recebidos sem passar pelo longo processo de decodificação que pode ser realizado em um local remoto em um momento posterior.[1]

Propriedades editar

Cada código linear não sistemático pode ser transformado em um código sistemático com essencialmente as mesmas propriedades (ou seja, distância mínima).[1][2] Por causa das vantagens citadas acima, os códigos de correção de erros linear são geralmente implementados como códigos sistemáticos. No entanto, para certos algoritmos de decodificação, como decodificação sequencial ou decodificação de probabilidade máxima, uma estrutura não sistemática pode aumentar o desempenho em termos de probabilidade de erro de decodificação não detectado quando a distância "livre" mínima do código é maior.[1][3]

Para um código linear sistemático, a matriz geradora,  , pode sempre ser escrita como  , onde   é a matriz identidade de tamanho  .

Exemplos editar

  • Checksums e funções hash, combinados com os dados de entrada, podem ser vistos como códigos de detecção de erros sistemáticos.
  • Os códigos lineares são geralmente implementados como códigos de correção de erros sistemáticos (por exemplo, códigos Reed-Solomon em CDs).
  • Os códigos convolucionais são implementados como códigos sistemáticos ou não sistemáticos. Os códigos convolucionais não sistemáticos podem fornecer melhor desempenho na decodificação de máxima verossimilhança (Viterbi).
  • Em DVB-H, para proteção adicional de erro e eficiência de energia para receptores móveis, um código Reed-Solomon sistemático é empregado como um código de eliminação sobre pacotes dentro de uma rajada de dados, onde cada pacote é protegido com um CRC (cyclic redundancy check - verificação cíclica de redundância): os dados em pacotes verificados contam como símbolos recebidos corretamente e, se todos forem recebidos corretamente, a avaliação dos dados de paridade adicionais pode ser omitida e os dispositivos receptores podem desligar a recepção até o início da próxima rajada.
  • Os códigos de fonte podem ser sistemáticos ou não sistemáticos: como eles não exibem uma taxa de código fixa, o conjunto de símbolos fonte é reduzido entre o conjunto de saída possível.

Referências

  1. a b c James L. Massey, Daniel J. Costello, Jr. (1971). «Nonsystematic convolutional codes for sequential decoding in space applications». IEEE Transactions on communication technology. 19 (5). doi:10.1109/TCOM.1971.1090720 
  2. Richard E. Blahut (2003). Algebraic codes for data transmission 2nd ed. [S.l.]: Cambridge. Univ. Press. pp. 53 e 54. ISBN 978-0-521-55374-2 
  3. Shu Lin; Daniel J. Costello, Jr. (1983). Error control coding: Fundamentals and applications. [S.l.]: Prentice Hall. pp. 278 à 280. ISBN 0-13-283796-X