2017-09-19 3 views
0

Un message qui a été codé avec le code de Reed Solomon et maintenant j'ai l'ensemble des données qui est message + mot de code. Maintenant, pendant le transfert, s'il y a un changement dans la partie du message, alors il est possible de décoder, mais que se passe-t-il si le mot de code lui-même est corrompu/changé? Est-il possible de corriger le mot de code aussi? Si cela peut être corrigé comment le faire? Ou le code de correction d'erreur de Reed Solomon se chargera-t-il de corriger le mot de code corrompu?que se passe-t-il si le mot de code de correction d'erreur est corrompu dans le code RS

Je suis un peu confus. J'espère que j'aurai une réponse pertinente. Merci d'avance.

+0

Qu'avez-vous fait pour l'étudier vous-même? – Marichyasana

+0

@Marichyasana J'ai joué avec une bibliothèque reedsolo 0.3 en python et j'ai changé essayé de changer le mot de code. Donc, quand je le change, je n'ai pas pu récupérer le message. – Praveenupadrasta

Répondre

0

Il y a un problème avec la terminologie dans la question. Un mot de code comprend les données de message plus les données de parité (redondance) (ce que la question appelait le mot de code). De plus, le terme mot code signifie généralement un mot sans erreurs (dans la partie message ou dans la partie parité), un qui est un multiple exact (polynôme avec multiplication par des coefficients de corps finis) du polynôme générateur.

Pendant la correction, peu importe si les erreurs se trouvent dans les données de message ou les données de parité. Tant que le nombre total de symboles erronés est inférieur ou égal à 1/2 fois le nombre de symboles de parité, les erreurs peuvent être corrigées. Dans une implémentation typique de la correction de Reed Solomon, un polynôme localisateur (ou localisateur inverse (1/locator)) est généré, où un localisateur est le "primitif" de champ fini porté à la puissance de l'emplacement, avec le droit. la plupart des symboles représentant l'emplacement zéro (à droite serait l'emplacement un et ainsi de suite). Un polynôme localisateur peut être converti en un polynôme localisateur inverse ou inversement en inversant l'ordre des coefficients polynomiaux.

L'article wiki peut vous aider à comprendre. Vous pouvez ignorer les sections sur l'opinion originale de Reed et Salomon, car il était impossible d'appliquer la correction pour les cas les plus simples, et les décodeurs pratiques mentionnés dans l'article étaient déjà décrits pendant la même période (1960).

https://en.wikipedia.org/wiki/Reed%E2%80%93Solomon_error_correction

Dans cette partie de l'article wiki:

https://en.wikipedia.org/wiki/Reed%E2%80%93Solomon_error_correction#Systematic_encoding_procedure

le message est traité comme un polynôme p (x), multiplié par x^t pour faire place à des symboles de parité t, et le reste sr (x) = p (x) x^t mod g (x), où g (x) est le polymérique du générateur. Le mot de code est s (x) = p (x) x^t mod g (x) - sr (x). Si vous utilisez un champ basé sur binaire pour Reed Solomon, alors l'addition et la soustraction sont à la fois exclusives ou. Notez que dans d'autres articles sur Reed Solomon, habituellement t représente le nombre de symboles qui peuvent être corrigés, et le nombre de symboles de parité serait 2t (ou pour le nombre impair de symboles de parité 2t + 1). L'article wiki utilise lambda: Λ pour les coefficients du polynôme localisateur, alors que d'autres articles utilisent sigma: σ pour la même chose.

+0

Merci et désolé pour les erreurs dans ma question. – Praveenupadrasta

+0

@Praveenupadrasta - J'ai mis à jour ma réponse avec plus d'informations il y a quelques temps, mais le commentaire notant ceci a été perdu. Je poste ce commentaire au cas où vous auriez manqué la réponse mise à jour. – rcgldr

+0

Merci beaucoup d'avoir donné plus d'informations à ce sujet. – Praveenupadrasta