Допускает ли алгоритм ошибок Рида-Соломона исправление только в случае возникновения ошибки в части входных данных? - PullRequest
1 голос
/ 06 мая 2020

Алгоритм Рида-Соломона добавляет к входу дополнительные данные, поэтому потенциальные ошибки (определенного размера / количества) на таком поврежденном входе могут быть исправлены до исходного состояния. Верный? Защищает ли этот алгоритм такие добавленные данные, которые не являются частью ввода, а используются алгоритмом? Если нет, что произойдет, если ошибка возникнет в такой части, не входящей в данные?

Ответы [ 2 ]

2 голосов
/ 06 мая 2020

Важным аспектом является то, что коды Рида-Соломона (RS) являются циклическими c: набор кодовых слов стабилен циклическим c сдвигом.

Следствием является то, что никакая конкретная часть кода слово более или менее защищено.

Код RS имеет возможность исправления ошибок, равную t = (nk) / 2 , где n - длина кода (обычно выражается в байтах) и k - длина информационной части.

Если общее количество ошибок (в обеих частях) меньше t , декодер RS сможет исправить ошибки (точнее, t ошибочных байтов в общем случае). Если он выше, ошибки не могут быть исправлены (но могут быть обнаружены, другая история).

Размещение ошибок, либо в информационной части, либо в добавленной части, не влияет на возможность исправления ошибок .

РЕДАКТИРОВАТЬ: правило t = (nk) / 2 , о котором я говорил, действительно для кодов Рида-Соломона. Это правило обычно неверно для кодов BCH: t <= (nk) / 2 </em>. Однако, что касается вашего вопроса, это не меняет ответа: эти семейства кодов имеют заданную поправку емкости, соответствующую минимальному расстоянию между кодовыми словами, декодеры могут затем исправить t ошибок, независимо от положения ошибок в кодовом слове

1 голос
/ 06 мая 2020

Пока только половина или меньше добавленных данных содержит ошибку, ошибки, которые есть только в добавленных данных, могут быть исправлены.


С добавленными данными, данные + добавленные данные формируют так называемое кодовое слово, которое соответствует правилам для кодового слова. Обратите внимание, что существует два основных c типа кода Рида-Соломона: «исходное представление» и «представление BCH». То, что составляет действительное кодовое слово, зависит от того, какой тип кода Рида-Соломона используется. Ссылка на статью Wiki, которая объясняет это:

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


Для кода, предназначенного только для стирания, расположение всех ошибок определяется другими способами, и В этом случае, даже если известно, что все добавленные данные плохие, их можно исправить (или восстановить).

...