Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Помехоустойчивое кодирование. Почему 2 можно обнаружить, а исправить 1?

Андрей Иванов Ученик (141), на голосовании 5 лет назад
Почему можно обнаружить 2, а исправить только одну?
Голосование за лучший ответ
Aljebro Просветленный (27114) 5 лет назад
Зависит от реализации кодирования, вообще-то. Сколько проверочных бит, сколько информационных.
Андрей ИвановУченик (141) 5 лет назад
Код проверки на четность
Aljebro Просветленный (27114) Рад за код. И что дальше? Исправить по нему ничего нельзя. ... Проверка четности – очень простой метод для обнаружения ошибок в передаваемом пакете данных. С помощью данного кода мы не можем восстановить данные, но можем обнаружить только лишь одиночную ошибку. В каждом пакет данных есть один бит четности, или, так называемый, паритетный бит. Этот бит устанавливается во время записи (или отправки) данных, и затем рассчитывается и сравнивается во время чтения (получения) данных. Он равен сумме по модулю 2 всех бит данных в пакете. То есть число единиц в пакете всегда будет четно . Изменение этого бита (например с 0 на 1) сообщает о возникшей ошибке.
Сергей Плеханов Мудрец (10356) 5 лет назад
Для исправления нужна дополнительная информация о точном положении ошибки. Поэтому исправляется меньше, чем обнаруживается.
Андрей ИвановУченик (141) 5 лет назад
Сергей, а можете объяснить как обнаруживаются эти 2 ошибки.
Сергей Плеханов Мудрец (10356) Реализацию не помню, только теорию. Есть понятие "кодовое расстояние"- сколько бит надо поменять, что бы перейти от одного допустимого значения к другому. Если контроля нет, то КР=1, любое изменение кода, в т. ч. ошибка, дает допустимое значение и отличить ее нельзя. Если КР=2 то одиночное изменение бита даст недопустимое значение и одиночная ошибка будет обнаружена - это вариант с 1 контрольным битом. Но исправить ее нельзя, т. к. ошибочное значение на одинаковом кодовом расстоянии от двух верных значений и выбрать одно из них невозможно. Если КР=3 то одна ошибка даст неверное значение рядом с верным, т. е. ее можно будет исправить. Если ошибки две, то значение кода будет неверным, но он будет находиться не возле исходного значения, а возле соседнего, и их исправление будет неверным.
Похожие вопросы