кодом Бергера, а ваги елементів первинної комбінації повинні приймати такі значення, починаючи з першого ( старшого ) розряду: 3, 5, 6, 7, 9, 10, 11, 12, 13, 14, 15, 17, 18 тощо, тобто всі числа, крім тих, які дорівнюють значенням числа 2 у будь-якій цілій додатній степені ( 20, 21, 22, ... ). Так наприклад, при k = 8 маємо log 2 = log 2 ( 3 + 5 + 6 + 7 + 9 + 10 + 11 + 12 ) = log 2 63 = 5,977, тобто r = 6. Таким чином перевірочна частина кодової комбінації буде мати 6 розрядів.
Для виправлення помилки в декодері підраховується сума S* вагів тих інформаційних розрядів прийнятої кодової комбінації, на яких розташовані одиниці. Далі інвертуються перевірочні розряди прийнятої кодової комбінації; отримане двійкове число переводиться у десяткове і віднімається від обчисленої суми S*. Якщо в інформаційній частині кодової комбінації є однократна помилка, то модуль різниці буде збігатись із вагою спотвореного розряду; для виправлення помилки відповідний інформаційний розряд потрібно інвертувати.
Надмірність коду R = 1 – k / n = 1 – k / ( k + r ) = r / n.
8.2. Приклади розв’язання задач
Задача 8.2.1
Побудувати твірну матрицю і визначити всі комбінації двійкового систематичного ( групового ) коду, здатного виправляти поодинокі помилки для N0 = 8 повідомлень.
Розв’язання. Кількість інформаційних розрядів коду k = log2 8 = 3. Кількість перевірочних розрядів визначається як найменше ціле r, яке задовольняє нерівності 2r= k + r + 1 ; таким значенням буде r = 3 . Довжина коду n = k + r = 6 . Таким чином, твірна матриця G n,k має 6 стовпців та 3 рядка, а перевірочна підматриця C r,k має 3 стовпця та 3 рядка.