Мой профессор для моего курса магистратуры дал нам задачу рассчитать расстояние Хэмминга метода CRC, которое он продемонстрировал на слайде.
Он показал нам, как протокол CRC может обнаруживать все одиночные, двойные, нечетные ошибки в битах, пакетные ошибки 2 ‹= k ‹= n, пакетные ошибки n+1, где остаток равен 0, а сообщение ошибочно воспринимается как 1. / 2 ^ (n-1), поскольку первый и последний биты всегда фиксируются на 1, и, наконец, пакеты ошибок больше n + 1 с вероятностью того, что остаток равен 0 с 1/2 ^ n
Вот мой ответ на его два вопроса:
Вопрос 5
а) Рассмотрим протокол битов четности с битами p, q и дополнительным битом r. Каково расстояние Хэмминга этого протокола? Кратко объясните, почему
Мы знаем, что Хамм (код) >= x + 1. Использование протокола битов четности с p, q и r дает нам 3-битную мощность обнаружения ошибок. Следовательно, x = 3. Это означает, что расстояние Хэмминга этого протокола >= x + 1 = 3 + 1 = 4.
б) Предположим, у нас есть протокол CRC, который удовлетворяет всем желаемым свойствам, которые мы описали на слайдах. Каково расстояние Хэмминга этого протокола? Кратко объясните, почему.
Как указано выше, расстояние Хемминга кода равно x + 1, где x — мощность обнаружения битовой ошибки x. Если у нас есть протокол CRC, который удовлетворяет всем желаемым свойствам, которые мы обсуждали на слайде, а именно: 1) Все однобитовые ошибки 2) Все двойные битовые ошибки 3) Все ошибки с нечетным числом битов 4) Пакеты ошибок из k битов , 2 ‹= k ‹= n
если мы используем эти факторы, мы можем видеть, что протокол CRC удовлетворяет всем пакетам ошибок до включая 2 ‹= k ‹= n пакетов. Это означает, что Hamm(Code) >= x+1 = (n-2) + 1 = n-1.
c) Как для а), так и для б) могут ли эти протоколы использоваться для исправления ошибок, и если да, то сколько битов они могут исправить? (т. е. могут ли они выполнять х-битную коррекцию, и если да, то что такое х?) Объясните, как вы достигли этого значения.
для a) поскольку мы знаем, что обсуждаемый протокол битов четности может обнаруживать все 3 или менее битовых ошибок, x = 3. Мы также знаем, что для выполнения x-битной коррекции: Hamm(code) >= 2x + 1 = 2( 3) + 1 = 7,
. Я не уверен, что это правильно
Но для части б) я запутался в исправлении ошибок протокола CRC. Мой ответ для поправки Хэмминга: Hamm(code) >= 2x+1 ‹= 2(n-1)+1 = 2n - 2 + 1 = 2n - 1 Я даже не уверен, правильно ли это вообще и как я мог определить количество битов, которые он может исправить.