29

Введение в алгебраическую теорию кодирования

[35/71%]
Показать
LaTeX
Задача 29.1

Найдите вес Хэмминга каждого кодового слова из таблицы 29.1 (кодовых слов кода Хэмминга (7,4)(7,4) из примера 1):

0000000, 0001011, 0010111, 0100101, 1000110, 1100011, 1010001, 1001101,0110010, 0101110, 0011100, 1110100, 1101000, 1011010, 0111001, 1111111. \begin{aligned} & 0000000, \ 0001011, \ 0010111, \ 0100101, \ 1000110, \ 1100011, \ 1010001, \ 1001101, \\ & 0110010, \ 0101110, \ 0011100, \ 1110100, \ 1101000, \ 1011010, \ 0111001, \ 1111111. \end{aligned}
?
Задача 29.2

Найдите расстояние Хэмминга между следующими парами векторов: {1101,0111}\left\{ 1101, 0111\right\}, {0220,1122}\left\{ 0220, 1122\right\}, {11101,00111}\left\{ 11101, 00111\right\}.

?
Задача 29.3

Обращаясь к примеру 1, используйте метод ближайшего соседа для декодирования принятых слов 00001100000110 и 11101001110100.

?
Задача 29.4

Для любого векторного пространства VV и любых u,v,wu, v, w из FnF^n докажите, что расстояние Хэмминга обладает следующими свойствами.

?
(a)

d(u,v)=d(v,u)d(u, v) = d(v, u) (симметрия).

(b)

d(u,v)=0d(u, v) = 0 тогда и только тогда, когда u=vu = v.

(c)

d(u,v)=d(u+w,v+w)d(u, v) = d(u + w, v + w) (инвариантность относительно переноса).

Задача 29.5

Определите двоичный линейный код (6,3)(6, 3) с порождающей матрицей

G=[100011010101001110]. G = \begin{bmatrix} 1 & 0 & 0 & 0 & 1 & 1 \\ 0 & 1 & 0 & 1 & 0 & 1 \\ 0 & 0 & 1 & 1 & 1 & 0 \end{bmatrix}.
?
Задача 29.6

Покажите, что для двоичных векторов wt⁡(u+v)≥wt⁡(u)=wt⁡(v)\operatorname {wt}(u + v) \ge \operatorname {wt}(u) = \operatorname {wt}(v), причём равенство имеет место тогда и только тогда, когда для всех ii ii-я компонента uu равна 11, если ii-я компонента vv равна 11.

?
Задача 29.7

Если минимальный вес любого ненулевого кодового слова равен 22, что можно сказать о способности кода обнаруживать ошибки?

?
Примечание.
?

Теорема 29.2 «Способность линейного кода к исправлению ошибок» утверждает: если вес Хэмминга линейного кода не меньше 2t+12t + 1, то код может исправить любые tt или меньшее число ошибок. В качестве альтернативы тот же код может обнаружить любые 2t2t или меньшее число ошибок.

Задача 29.8

Пусть CC --- линейный код с весом Хэмминга 33, а C′C' --- код с весом Хэмминга 44. Что может делать C′C', чего не может CC?

?
Задача 29.9

Пусть CC --- двоичный линейный код. Покажите, что кодовые слова чётного веса образуют подкод CC. (Подкодом кода называется подмножество кода, само являющееся кодом.)

?
Задача 29.10

Пусть

C={0000000,1110100,0111010,0011101,1001110,0100111,1010011,1101001}. C = \left\{ 0000000, 1110100, 0111010, 0011101, 1001110, 0100111, 1010011, 1101001\right\} .

Какова способность CC исправлять ошибки? Какова способность CC обнаруживать ошибки?

?
Задача 29.11

Пусть проверочная матрица двоичного линейного кода имеет вид

H=[1001111001]. H = \begin{bmatrix} 1 & 0 \\ 0 & 1 \\ 1 & 1 \\ 1 & 0 \\ 0 & 1 \end{bmatrix}.

Может ли код исправлять любую одиночную ошибку?

?
Задача 29.12

Используйте порождающую матрицу

G=[10110121] G = \begin{bmatrix} 1 & 0 & 1 & 1 \\ 0 & 1 & 2 & 1 \end{bmatrix}

для построения троичного линейного кода (4,2)(4, 2). Какова проверочная матрица этого кода? Какова способность этого кода исправлять ошибки? Какова его способность обнаруживать ошибки? Используйте декодирование по проверочной матрице для декодирования принятого слова 12011201.

?
Задача 29.13

Найдите все кодовые слова двоичного линейного кода (7,4)(7, 4), порождающая матрица которого равна

G=[1000111010010100101100001011]. G = \begin{bmatrix} 1 & 0 & 0 & 0 & 1 & 1 & 1 \\ 0 & 1 & 0 & 0 & 1 & 0 & 1 \\ 0 & 0 & 1 & 0 & 1 & 1 & 0 \\ 0 & 0 & 0 & 1 & 0 & 1 & 1 \end{bmatrix}.

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

?
Задача 29.14

Покажите, что в двоичном линейном коде либо все кодовые слова оканчиваются на 00, либо ровно половина из них оканчивается на 00. Что можно сказать о других компонентах?

?
Задача 29.15

Пусть кодовое слово vv принято в виде вектора uu. Покажите, что декодирование по смежным классам декодирует uu как кодовое слово vv тогда и только тогда, когда u−vu - v является лидером смежного класса.

?
Задача 29.16

Рассмотрите двоичный линейный код

C={00000,10011,01010,11001,00101,10110,01111,11100}. C = \left\{ 00000, 10011, 01010, 11001, 00101, 10110, 01111, 11100\right\} .

Постройте стандартный массив для CC. Используйте декодирование ближайшего соседа для декодирования 1110111101 и 0110001100. Если принятое слово 1110111101 содержит ровно одну ошибку, можем ли мы определить предполагаемое кодовое слово? Если принятое слово 0110001100 содержит ровно одну ошибку, можем ли мы определить предполагаемое кодовое слово?

?
Задача 29.17

Постройте двоичный линейный код (6,3)(6, 3) с порождающей матрицей

G=[100110010011001101]. G = \begin{bmatrix} 1 & 0 & 0 & 1 & 1 & 0 \\ 0 & 1 & 0 & 0 & 1 & 1 \\ 0 & 0 & 1 & 1 & 0 & 1 \end{bmatrix}.

Декодируйте каждое из принятых слов

001001,011000,000110,100001 001001, \quad 011000, \quad 000110, \quad 100001

следующими методами:

?
(a)

Методом ближайшего соседа.

(b)

Методом проверочной матрицы.

(c)

Декодированием по смежным классам с использованием стандартного массива.

(d)

Декодированием по смежным классам с использованием метода синдромов.

Задача 29.18

Пусть минимальный вес любого ненулевого кодового слова линейного кода равен 66. Обсудите возможные варианты исправления и обнаружения ошибок.

?
Задача 29.19

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

?
Задача 29.20

Пусть последняя строка стандартного массива для двоичного линейного кода имеет вид

1000000011110100100110101001101111101100. 10000 \quad 00011 \quad 11010 \quad 01001 \quad 10101 \quad 00110 \quad 11111 \quad 01100.

Определите код.

?
Задача 29.21

Сколько кодовых слов имеется в троичном линейном коде (6,4)(6, 4)? Сколько возможных принятых слов имеется для этого кода?

?
Задача 29.22

Если проверочная матрица двоичного линейного кода равна

H=[110011101100010001]. H = \begin{bmatrix} 1 & 1 & 0 \\ 0 & 1 & 1 \\ 1 & 0 & 1 \\ 1 & 0 & 0 \\ 0 & 1 & 0 \\ 0 & 0 & 1 \end{bmatrix}.

будет ли код исправлять любую одиночную ошибку? Почему?

?
Задача 29.23

Пусть проверочная матрица троичного кода равна

H=[2122121001]. H = \begin{bmatrix} 2 & 1 \\ 2 & 2 \\ 1 & 2 \\ 1 & 0 \\ 0 & 1 \end{bmatrix}.

Может ли код исправлять все одиночные ошибки? Обоснуйте свой ответ.

?
Задача 29.24

Докажите, что для декодирования ближайшего соседа верно обратное утверждение теоремы 29.2.

?
Задача 29.25

Может ли двоичный линейный код (6,3)(6, 3) исправлять двойные ошибки методом ближайшего соседа? Не предполагайте, что код систематический.

?
Задача 29.26

Докажите, что не существует стандартной порождающей матрицы GG размера 2×52 \times 5, которая порождает линейный код (5,2)(5, 2) над Z3\mathbb {Z}_3, способный обнаруживать все возможные тройные ошибки.

?
Задача 29.27

Почему метод ближайшего соседа с двоичным линейным кодом (4,2)(4, 2) не может исправлять все одиночные ошибки?

?
Задача 29.28

Пусть одна строка стандартного массива для двоичного кода имеет вид

000100110000011110111101101010001001100111010011. 000100 \quad 110000 \quad 011110 \quad 111101 \quad 101010 \quad 001001 \quad 100111 \quad 010011.

Определите строку, содержащую 100001100001.

?
Задача 29.29

Используйте поле F=Z2[x]/⟨x2+x+1⟩F = \mathbb {Z}_2[x]/ \left\langle x^2 + x + 1\right\rangle для построения линейного кода (5,2)(5, 2), который исправляет любую одиночную ошибку.

?
Задача 29.30

Найдите стандартную порождающую матрицу линейного кода (4,2)(4, 2) над Z3\mathbb {Z}_3, который кодирует 2020 как 20122012, а 1111 как 11001100. Определите весь код и проверочную матрицу кода. Будет ли код исправлять все одиночные ошибки?

?
Задача 29.31

Предположим, что CC --- двоичный линейный код (n,k)(n, k) и что для каждой позиции i=1,2,…,ni = 1, 2, \ldots , n код CC содержит хотя бы один вектор с 11 на ii-й позиции. Покажите, что средний вес кодового слова равен n/2n/2.

?
Задача 29.32

Пусть CC --- линейный код (n,k)(n, k) над FF такой, что минимальный вес любого ненулевого кодового слова равен 2t+12t + 1. Покажите, что не каждый вектор веса t+1t+1 из FnF^n может быть лидером смежного класса.

?
Задача 29.33

Пусть CC --- двоичный линейный код (n,k)(n, k) над F=Z2F = \mathbb {Z}_2. Если v∈Fnv \in F^n, но v∉Cv \notin C, покажите, что C∪(v+C)C \cup (v + C) является линейным кодом.

?
Задача 29.34

Пусть CC --- двоичный линейный код. Покажите, что либо каждый элемент CC имеет чётный вес, либо ровно половина элементов CC имеет чётный вес. (Сравните с упражнением 27 главы 5.)

?
Задача 29.35

Пусть CC --- линейный код (n,k)(n, k). Для каждого ii, 1≤i≤n1 \le i \le n, положим

Ci={v∈C∣i-я компонента v равна 0} C_i = \left\{ v \in C \mid i\text{-я компонента } v \text{ равна } 0\right\}

. Покажите, что CiC_i является подкодом CC.

?