Posté par jihele .
En réponse à la dépêche Sortie du noyau Linux 3.5.
Évalué à 10.
Dernière modification le 24 juillet 2012 à 11:05.
d'ailleurs, est-ce que cela existe ?
Oui, il existe des codes de détection d'erreurs et des codes de détection et correction d'erreur (je ne sais pas si c'était ça la question).
Par exemple, le Code Reed-Solomon. Le principe est de définir un alphabet (un sous-ensemble) et une distance à l'intérieur d'un ensemble, et dès qu'on détecte un caractère qui est pas dans l'alphabet, on le remplace par le caractère plus proche. La capacité de correction est donc la moitié de la distance min entre deux caractères. Au-delà, on ne sait pas retrouver le caractère d'origine.
Exemple simpliste : Les multiples de 5 dans l'ensemble des nombres de 1 à 100. Si on a une erreur inférieure ou égale à 2, on sait corriger. Bien sûr, ici, c'est nul parce que la redondance représente 80% du poids alors qu'en Reed Solomon c'est plutôt la proportion inverse.
Dans la pratique, la correction se fait par blocs et l'élément de base est un octet. Une erreur de 1 ou 5 bits dans un octet revient au même, mais une erreur de plusieurs octets dans un mot le rend plus délicat à traiter. Donc pour résister aux burst-errors (erreurs consécutives dues à une rayure, par exemple), on entrelace autant que possible le signal pour éloigner les octets du même mot, et on regroupe les octets sur eux-mêmes, au lieu de mettre les bits en enfilade, de sorte qu'une erreur soit regroupée sur un même octet autant que possible.
Reed-Solomon est utilisé dans les disques compacts, mais aussi dans les DataMatrix (codes barre en 2D) qu'on retrouve sur des médicaments, factures France Telecom, ou sur des circuits intégrés.
[^] # Re: CRC et détection d'erreurs
Posté par jihele . En réponse à la dépêche Sortie du noyau Linux 3.5. Évalué à 10. Dernière modification le 24 juillet 2012 à 11:05.
Oui, il existe des codes de détection d'erreurs et des codes de détection et correction d'erreur (je ne sais pas si c'était ça la question).
Par exemple, le Code Reed-Solomon. Le principe est de définir un alphabet (un sous-ensemble) et une distance à l'intérieur d'un ensemble, et dès qu'on détecte un caractère qui est pas dans l'alphabet, on le remplace par le caractère plus proche. La capacité de correction est donc la moitié de la distance min entre deux caractères. Au-delà, on ne sait pas retrouver le caractère d'origine.
Exemple simpliste : Les multiples de 5 dans l'ensemble des nombres de 1 à 100. Si on a une erreur inférieure ou égale à 2, on sait corriger. Bien sûr, ici, c'est nul parce que la redondance représente 80% du poids alors qu'en Reed Solomon c'est plutôt la proportion inverse.
Dans la pratique, la correction se fait par blocs et l'élément de base est un octet. Une erreur de 1 ou 5 bits dans un octet revient au même, mais une erreur de plusieurs octets dans un mot le rend plus délicat à traiter. Donc pour résister aux burst-errors (erreurs consécutives dues à une rayure, par exemple), on entrelace autant que possible le signal pour éloigner les octets du même mot, et on regroupe les octets sur eux-mêmes, au lieu de mettre les bits en enfilade, de sorte qu'une erreur soit regroupée sur un même octet autant que possible.
Reed-Solomon est utilisé dans les disques compacts, mais aussi dans les DataMatrix (codes barre en 2D) qu'on retrouve sur des médicaments, factures France Telecom, ou sur des circuits intégrés.