Проблема распределения паритета кода Хэмминга
Может кто-нибудь, пожалуйста, уточнить, где я иду не так. Я нахожусь в этом 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 из которых являются битами данных)