![]() |
|
![]() ![]() ![]() |
|
XuTMAH |
|
|||
Новичок Профиль Группа: Участник Сообщений: 14 Регистрация: 3.6.2005 Репутация: нет Всего: нет |
Для начала - обозначения (чтобы не запутаться):
d3, d2, d1, d0 - информационные разряды k, k3, k2, k1 - контрольные разряды kp, p3, p2, p1 - разряды проверки Если я не ошибаюсь то: Кодирование: k1 = d0 xor d1 xor d3 k2 = d0 xor d2 xor d3 k3 = d1 xor d2 xor d3 k = k1 xor k2 xor d0 xor k3 xor d1 xor d2 xor d3 Декодирование: p1 = k1 xor d0 xor d1 xor d3 p2 = k2 xor d0 xor d2 xor d3 p3 = k3 xor d1 xor d2 xor d3 kp = k1 xor k2 xor d0 xor k3 xor d1 xor d2 xor d3 xor k Насколько я понимаю "Модифицированный код Хеммнга" гарантирует возможность исправления еденичной ошибки, при том это возможно только в случае если kp = 1 а слово p3-p2-p1 принимает ненулевое значение В тех же случаях когда kp = 0 и p3-p2-p1 = ненулевое значение или kp = 1 и p3-p2-p1 = 0 шибку исправить нельзя, т.е. ошибка двойной или большей кратности... kp = 0 и p3-p2-p1 = 0 ошибки нет Если я всё правильно написал(поправьте меня если что), то возьмём следующий пример для проверки: 1101 кодирование k1 = 0 k2 = 1 k3 = 0 k = 0 сделаем одну ошибку 0101 декодирование k1' = 1 k2' = 0 k3' = 1 k' = 0 p1 = 1 p2 = 1 p3 = 1 kp = 0 в итоге этот резкльтат подподает под тот случай где ошибка не устранима, т.е. ошибка двойной или большей кратности, а я делал одиночную ошибку... Отсюда и следует вопрос - в чём я наврал? |
|||
|
||||
cardinal |
|
||||
![]() Инженер ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 6003 Регистрация: 26.3.2002 Где: Германия Репутация: 5 Всего: 99 |
А может тут
k2 = 0? Просто 1 xor 1 xor 0 = 1 xor 0 xor 1 или я торможу... ![]() -------------------- Немецкая оппозиция потребовала упростить натурализацию иммигрантов В моем блоге: Разные истории из жизни в Германии "Познание бесконечности требует бесконечного времени, а потому работай не работай - все едино". А. и Б. Стругацкие |
||||
|
|||||
XuTMAH |
|
|||
Новичок Профиль Группа: Участник Сообщений: 14 Регистрация: 3.6.2005 Репутация: нет Всего: нет |
2cardinal
Я забыл написать что d0 - это младший разряд (нулевой), d1 - первый, d2 - второй, d3 - третий т.е. в исходном примере 1101 d3 = 1 d2 = 1 d1 = 0 d0 = 1 и следовательно по формулам k1 = d0 xor d1 xor d3 k2 = d0 xor d2 xor d3 получаем k1 = 1 xor 0 xor 1 = 0 k2 = 1 xor 1 xor 1 = 1 Невижу противоречий... Может я слепой?
Это бесспорно. |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Алгоритмы" | |
|
Форум "Алгоритмы" предназначен для обсуждения вопросов, связанных только с алгоритмами и структурами данных, без привязки к конкретному языку программирования и/или программному продукту.
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, maxim1000. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Алгоритмы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |