2017-09-19 1 views
0

리드 솔로몬 코드로 인코딩 된 메시지가 이제는 메시지 + 코드 단어 인 전체 데이터를 갖게됩니다. 이제 전송하는 동안 메시지 부분에 변경 사항이있는 경우 코드 워드 자체가 손상되거나 변경된 경우 어떻게 해석 할 수 있습니까? 코드 워드도 수정할 수 있습니까? 그것을하는 방법을 수정할 수 있다면? 아니면 리드 솔로몬 오류 정정 코드 자체가 손상된 코드 단어를 수정 돌볼 것인가?RS 코드에서 오류 수정 코드 단어가 손상된 경우 어떻게됩니까

나는 조금 혼란 스럽다. 나는 관련 답변을 얻을 수 있기를 바랍니다. 미리 감사드립니다.

+0

직접 조사해 보셨습니까? – Marichyasana

+0

@Marichyasana 파이썬에서 reedsolo 0.3 라이브러리를 가지고 놀았으며 코드 워드를 변경하려고 시도해 왔습니다. 그래서 내가 그것을 바꿀 때 나는 메시지를 검색 할 수 없었다. – Praveenupadrasta

답변

0

문제의 용어에 문제가 있습니다. 코드 워드는 메시지 데이터와 패리티 (리던던시) 데이터 (질문에서 코드 워드를 호출 한 것)로 구성됩니다. 또한 코드 워드라는 용어는 일반적으로 오류가없는 메시지 부분 (메시지 부분 또는 패리티 부분), 생성 다항식의 정확한 배수 (유한 필드 계수가 곱한 다항식)를 의미합니다.

오류가 메시지 데이터 또는 패리티 데이터에있는 경우 수정하는 동안 문제가되지 않습니다. 오류가있는 기호의 총 수가 패리티 기호의 수의 1/2보다 작거나 같으면 오류를 수정할 수 있습니다.

리드 솔로몬 보정의 일반적인 구현에서 로케이터 (또는 역 로케이터 (1/위치 지정자)) 다항식이 생성됩니다. 여기서 위치 지정자는 오른쪽으로 위치의 힘까지 올려 진 유한 필드 "프리미티브"입니다. 위치 0을 나타내는 대부분의 기호 (오른쪽 옆에 위치 1 등이 있음). 로케이터 다항식은 다항식 계수의 순서를 뒤집어서 역 위치 다항식으로 또는 그 반대로 변환 할 수 있습니다.

위키의 기사가 도움이 될 수 있습니다. Reed와 Solomon의 원래보기에 대한 섹션을 무시하고 싶을 수 있습니다. 가장 간단한 경우를 제외하고는 수정 작업을 수행하기에는 적합하지 않았기 때문에이 기사에서 언급 한 실제 디코더는 이미 같은 기간 (1960)에 설명되었습니다. 위키 문서의 섹션

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

: 메시지 다항식 P로 취급

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

(x)는, t 패리티 심볼들에 대한 공간을 만들기 위해 X^t 곱한 나머지는 sr (x) = p (x) x^t mod g (x)이고, 여기서 g (x)는 생성자 폴리심입니다. 코드 워드는 s (x) = p (x) x^t mod g (x) - sr (x)이다. Reed Solomon에 대해 2 진 기반 필드를 사용하는 경우, 더하기와 빼기는 모두 배타적입니다.

리드 솔로몬에 대한 다른 기사에서 대개 t는 수정 될 수있는 기호의 수를 나타내며 패리티 기호의 수는 2t (또는 홀수의 패리티 기호 2t + 1)입니다. 위키 기사에서는 위치 다항식의 계수에 대해 람다 : Λ를 사용하지만, 다른 기사에서는 동일한 것을 위해 σ : σ를 사용합니다.

+0

감사합니다. 내 질문에 잘못해서 죄송합니다. – Praveenupadrasta

+0

@Praveenupadrasta - 나는 잠시 후에 더 많은 정보를 가지고 나의 대답을 업데이트했다. 업데이트 된 답변을 놓친 경우를 대비하여이 의견을 게시하고 있습니다. – rcgldr

+0

이것에 대해 더 많은 통찰력을 주셔서 감사합니다. – Praveenupadrasta