Проблема распределения паритета кода Хэмминга

Может кто-нибудь, пожалуйста, уточнить, где я иду не так. Я нахожусь в этом 2 часа... Я знаю, что первая четность в коде включает себя и пропускает каждое первое число после него в последовательности да и нет. второе пропускает каждый второй набор чисел после себя и следующего числа. 4-й должен пропустить 4 после включения себя и первых 3 чисел.

These are my message bits in its original form: 1101011011000110 
   and I want to add the hamming parity bits onto them.
   ? = Parity
so this means ??1?101?01101100011?0 
Parity 1 = ?110110010 
Parity 2 = ?101111011 
Parity 3 = ?1010110?0 (this is where my issue is so I cant move on)
Parity 4 = cant get to this part...

1 ответ

Похоже, у вас есть 5-й бит четности в неправильном месте.

У тебя есть:

?? 1? 101? 01101100011? 0

Но это должно быть:

?? 1? 101? 0110110? 00110

Итак, пересчитывая биты четности (жирный означает "сохранить", в противном случае пропустить), мы следуем шаблону "сохранить 1, пропустить 1, сохранить 1...":

?? 1? 1 0 1? 0 1 1 0 1 1 0? 0 0 1 1 0

P1: ?1110110010 (even number of 1s, so 0 parity)

(сбросить первый 1 бит) Следуйте шаблону "держать 2, пропустить 2, держать 2...":

? 1? 1 01? 0 11 01 10? 0 01 10

P2: ?101111001 (even number of 1s, so 0 parity)

(отбросить следующие 2 бита) Следуйте шаблону "держать 4, пропустить 4, сохранить 4...":

? 101? 011 0110? 0011 0

P4: ?10101100 (even number of 1s, so 0 parity)

(отбросить следующие 4 бита) Следуйте шаблону "держать 8, пропустить 8, сохранить 8..." (но мы можем только оставить 8, пропустить 6, так что этого достаточно):

? 0110110? 00110

P5: ?0110110 (even number of 1s, so 0 parity)

Итак, последнее закодированное значение Хемминга (21,16):

001010100110110000110

(21 бит, 16 из которых являются битами данных)

Другие вопросы по тегам