Введение в алгебраическую теорию кодирования
[35/71%]Найдите вес Хэмминга каждого кодового слова из таблицы 29.1 (кодовых слов кода Хэмминга из примера 1):
Найдите расстояние Хэмминга между следующими парами векторов: , , .
Обращаясь к примеру 1, используйте метод ближайшего соседа для декодирования принятых слов и .
Для любого векторного пространства и любых из докажите, что расстояние Хэмминга обладает следующими свойствами.
(симметрия).
тогда и только тогда, когда .
(инвариантность относительно переноса).
Определите двоичный линейный код с порождающей матрицей
Покажите, что для двоичных векторов , причём равенство имеет место тогда и только тогда, когда для всех -я компонента равна , если -я компонента равна .
Если минимальный вес любого ненулевого кодового слова равен , что можно сказать о способности кода обнаруживать ошибки?
Теорема 29.2 «Способность линейного кода к исправлению ошибок» утверждает: если вес Хэмминга линейного кода не меньше , то код может исправить любые или меньшее число ошибок. В качестве альтернативы тот же код может обнаружить любые или меньшее число ошибок.
Пусть --- линейный код с весом Хэмминга , а --- код с весом Хэмминга . Что может делать , чего не может ?
Пусть --- двоичный линейный код. Покажите, что кодовые слова чётного веса образуют подкод . (Подкодом кода называется подмножество кода, само являющееся кодом.)
Пусть
Какова способность исправлять ошибки? Какова способность обнаруживать ошибки?
Пусть проверочная матрица двоичного линейного кода имеет вид
Может ли код исправлять любую одиночную ошибку?
Используйте порождающую матрицу
для построения троичного линейного кода . Какова проверочная матрица этого кода? Какова способность этого кода исправлять ошибки? Какова его способность обнаруживать ошибки? Используйте декодирование по проверочной матрице для декодирования принятого слова .
Найдите все кодовые слова двоичного линейного кода , порождающая матрица которого равна
Найдите проверочную матрицу этого кода. Будет ли этот код исправлять любую одиночную ошибку?
Покажите, что в двоичном линейном коде либо все кодовые слова оканчиваются на , либо ровно половина из них оканчивается на . Что можно сказать о других компонентах?
Пусть кодовое слово принято в виде вектора . Покажите, что декодирование по смежным классам декодирует как кодовое слово тогда и только тогда, когда является лидером смежного класса.
Рассмотрите двоичный линейный код
Постройте стандартный массив для . Используйте декодирование ближайшего соседа для декодирования и . Если принятое слово содержит ровно одну ошибку, можем ли мы определить предполагаемое кодовое слово? Если принятое слово содержит ровно одну ошибку, можем ли мы определить предполагаемое кодовое слово?
Постройте двоичный линейный код с порождающей матрицей
Декодируйте каждое из принятых слов
следующими методами:
Методом ближайшего соседа.
Методом проверочной матрицы.
Декодированием по смежным классам с использованием стандартного массива.
Декодированием по смежным классам с использованием метода синдромов.
Пусть минимальный вес любого ненулевого кодового слова линейного кода равен . Обсудите возможные варианты исправления и обнаружения ошибок.
Используя код и проверочную матрицу из примера 10, покажите, что декодирование по проверочной матрице не может обнаружить никакие кратные ошибки (то есть две или более ошибок).
Пусть последняя строка стандартного массива для двоичного линейного кода имеет вид
Определите код.
Сколько кодовых слов имеется в троичном линейном коде ? Сколько возможных принятых слов имеется для этого кода?
Если проверочная матрица двоичного линейного кода равна
будет ли код исправлять любую одиночную ошибку? Почему?
Пусть проверочная матрица троичного кода равна
Может ли код исправлять все одиночные ошибки? Обоснуйте свой ответ.
Докажите, что для декодирования ближайшего соседа верно обратное утверждение теоремы 29.2.
Может ли двоичный линейный код исправлять двойные ошибки методом ближайшего соседа? Не предполагайте, что код систематический.
Докажите, что не существует стандартной порождающей матрицы размера , которая порождает линейный код над , способный обнаруживать все возможные тройные ошибки.
Почему метод ближайшего соседа с двоичным линейным кодом не может исправлять все одиночные ошибки?
Пусть одна строка стандартного массива для двоичного кода имеет вид
Определите строку, содержащую .
Используйте поле для построения линейного кода , который исправляет любую одиночную ошибку.
Найдите стандартную порождающую матрицу линейного кода над , который кодирует как , а как . Определите весь код и проверочную матрицу кода. Будет ли код исправлять все одиночные ошибки?
Предположим, что --- двоичный линейный код и что для каждой позиции код содержит хотя бы один вектор с на -й позиции. Покажите, что средний вес кодового слова равен .
Пусть --- линейный код над такой, что минимальный вес любого ненулевого кодового слова равен . Покажите, что не каждый вектор веса из может быть лидером смежного класса.
Пусть --- двоичный линейный код над . Если , но , покажите, что является линейным кодом.
Пусть --- двоичный линейный код. Покажите, что либо каждый элемент имеет чётный вес, либо ровно половина элементов имеет чётный вес. (Сравните с упражнением 27 главы 5.)
Пусть --- линейный код . Для каждого , , положим
. Покажите, что является подкодом .