Работа вам нужна срочно. Не волнуйтесь, уложимся!
- 22423 авторов готовы помочь тебе.
- 2402 онлайн
Приемник получил код (7;4): 1111001 P(x)=x^3+x+1 определить есть ли ошибка и если да то в каком разряде
Предмет: Информатика / Теория информации
Раздел: Кодирование информации — Линейные коды, Полиномиальное деление, Коды БЧХ, CRC (циклический избыточный код)
Дан код БЧХ или циклический код с параметрами (7;4):
Кодовое слово: 1111001
Порождающий многочлен: P(x) = x^3 + x + 1
Нужно определить, есть ли ошибка в принятом кодовом слове, и если да — в каком разряде она произошла.
Код (7;4) — это линейный блоковый код длины 7 с 4 информационными битами. Значит, в кодовом слове 4 информационных бита и 3 проверочных (избыточных) бита.
Порождающий многочлен P(x) = x^3 + x + 1 используется для формирования и проверки кода.
Принятое слово: 1111001
Это соответствует многочлену:
R(x) = x^6 + x^5 + x^4 + x^3 + 1
(т.е. коэффициенты при степенях x: 1 1 1 1 0 0 1 → x⁶ + x⁵ + x⁴ + x³ + x⁰)
Чтобы проверить, есть ли ошибка, нужно выполнить деление R(x) на P(x).
Если делится нацело (остаток 0), то ошибок нет.
Если есть остаток — значит, ошибка есть.
Делим R(x) = x^6 + x^5 + x^4 + x^3 + 1 на P(x) = x^3 + x + 1 по модулю 2 (все операции по модулю 2: сложение — это XOR).
Выполним деление в столбик:
Первая часть деления: x^6 ÷ x^3 = x^3
Умножаем x^3 на P(x):
x^3(x^3 + x + 1) = x^6 + x^4 + x^3
Вычитаем (т.е. XOR) из R(x):
(x^6 + x^5 + x^4 + x^3 + 1) ⊕ (x^6 + x^4 + x^3) = x^5 + 1
Осталось: x^5 + 1
x^5 ÷ x^3 = x^2
Умножаем: x^2(x^3 + x + 1) = x^5 + x^3 + x^2
Вычитаем:
(x^5 + 1) ⊕ (x^5 + x^3 + x^2) = x^3 + x^2 + 1
Осталось: x^3 + x^2 + 1
x^3 ÷ x^3 = 1
Умножаем: 1 * (x^3 + x + 1) = x^3 + x + 1
Вычитаем:
(x^3 + x^2 + 1) ⊕ (x^3 + x + 1) = x^2 + x
Остаток от деления: x^2 + x ≠ 0
Значит, в принятом кодовом слове есть ошибка.
Для циклических кодов при одиночной ошибке можно найти позицию ошибки, сравнив остаток с синдромами.
Синдром — это остаток от деления принятого слова на порождающий многочлен.
Если ошибка одиночная, то она соответствует одному из векторов с одной единицей (например, 0000001, 0000010, ..., 1000000), что соответствует многочленам x^0, x^1, ..., x^6.
Найдем, при каком x^i остаток от деления x^i на P(x) равен x^2 + x
Проверим:
Значит, ошибка в разряде, соответствующем x^4 — это пятый бит (нумерация справа налево, начиная с 0).
Изначальное слово: 1111001
Поменяем 5-й бит (слева направо: 1 1 1 1 0 0 1), т.е. третий бит слева (значение 1) → на 0:
Получим: 1101001
Проверим, делится ли 1101001 на P(x) — остаток будет 0 ✅
Ошибка есть, в 5-м разряде (считая справа налево от младшего бита, или 3-й бит слева).