Как найти возможные ошибки у Рида-Соломона только с синдромом?
Я работаю над заданием для класса, который я беру.
Мне нужно указать местоположение и величину ошибки кодового слова, если это возможно, для пары данных синдромов. Если бы я мог понять методологию того, как сделать это для одного, я мог бы сделать все остальное, но я теряюсь на первом.
Вот синдром: [2, 2, 0, 1]
Я должен использовать код Рида-Соломона с q = 11 и элемент примитива как 2.
Я создал следующую матрицу H, пытаясь решить эту проблему:
1 1 1 1 1 1 1 1 1 1
1 2 4 8 5 10 9 7 3 6
1 4 5 9 3 2 8 10 7 6
1 8 9 6 4 10 3 2 5 7
Но так как все, что у меня есть, это синдром, я не уверен, куда идти дальше. Я уверен, что я упускаю что-то довольно прямолинейное здесь, надеюсь, кто-то может указать мне на это.
Я обнаружил, что подходы Берлекампа, Петерсона и Евклида онлайн, но мы не рассмотрели ни одного из них, и я не понимаю, как они работают из ограниченного объяснения онлайн. Мы использовали полиномиальный подход к обнаружению ошибок, но я не знаю, как применить его к этому сценарию, поскольку для того, чтобы добраться до точки, где у вас есть 4 уравнения с 4 неизвестными, вам нужно знать входное кодовое слово.
Спасибо.
1 ответ
С 4 синдромами и без стираний (известные места ошибок) можно исправить только 2 ошибки. Есть 2 уравнения с 2 неизвестными. Ссылаясь на пример в статье вики:
https://en.wikipedia.org/wiki/Reed%E2%80%93Solomon_error_correction
В вашем случае подписки синдрома от 0 до 3, а не от 1 до 4 в вики.
S0 Λ2 + S1 Λ1 = -S2 (= 11 - S2)
S1 Λ2 + S2 Λ1 = -S3 (= 11 - S3)
Инвертировать матрицу 2 на 2 просто, поэтому нет необходимости использовать Berlekamp Massey или расширенный алгоритм Евклида.
Если все местоположения ошибок известны (стирания), то код должен только решить для значений ошибки, используя E для значения ошибки и L для локатора, и ^ для возведения в степень:
1^L1 E1 + 1^L2 E2 + 1^L3 E3 + 1^L4 E4 = S0
2^L1 E1 + 2^L2 E2 + 2^L3 E3 + 2^L4 E4 = S1
4^L1 E1 + 4^L2 E2 + 4^L3 E3 + 4^L4 E4 = S2
8^L1 E1 + 8^L2 E2 + 8^L3 E3 + 8^L4 E4 = S3