Поиск:

Ответ в темуСоздание новой темы Создание опроса
> [?] Модифицированный код Хемминга 
:(
    Опции темы
XuTMAH
  Дата 4.10.2005, 21:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 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

в итоге этот резкльтат подподает под тот случай где ошибка не устранима, т.е. ошибка двойной или большей кратности, а я делал одиночную ошибку...

Отсюда и следует вопрос - в чём я наврал?
PM MAIL   Вверх
cardinal
Дата 4.10.2005, 23:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Инженер
****


Профиль
Группа: Экс. модератор
Сообщений: 6003
Регистрация: 26.3.2002
Где: Германия

Репутация: 5
Всего: 99



Цитата(XuTMAH @ 4.10.2005, 19:42)
k1 = d0 xor d1 xor d3
k2 = d0 xor d2 xor d3

А может тут
Цитата(XuTMAH @ 4.10.2005, 19:42)
k1 = 0
k2 = 1

k2 = 0?

Просто 1 xor 1 xor 0 = 1 xor 0 xor 1
или я торможу... smile


--------------------
Немецкая оппозиция потребовала упростить натурализацию иммигрантов
В моем блоге: Разные истории из жизни в Германии

"Познание бесконечности требует бесконечного времени, а потому работай не работай - все едино".  А. и Б. Стругацкие
PM   Вверх
XuTMAH
Дата 5.10.2005, 11:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 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

Невижу противоречий...
Может я слепой?

Цитата(cardinal @ 4.10.2005, 23:15)
Просто 1 xor 1 xor 0 = 1 xor 0 xor 1

Это бесспорно.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Алгоритмы"

maxim1000

Форум "Алгоритмы" предназначен для обсуждения вопросов, связанных только с алгоритмами и структурами данных, без привязки к конкретному языку программирования и/или программному продукту.


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, maxim1000.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Алгоритмы | Следующая тема »


 




[ Время генерации скрипта: 0.0641 ]   [ Использовано запросов: 20 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.