Справочник от Автор24
Поделись лекцией за скидку на Автор24

Линейные коды

  • ⌛ 2020 год
  • 👀 440 просмотров
  • 📌 391 загрузка
  • 🏢️ УрФУ им. Б. Н. Ельцина
Выбери формат для чтения
Загружаем конспект в формате pdf
Это займет всего пару минут! А пока ты можешь прочитать работу в формате Word 👇
Конспект лекции по дисциплине «Линейные коды» pdf
ДИСКРЕТНАЯ МАТЕМАТИКА Линейные коды Белоусов Иван Николаевич Институт радиоэлектронники и информационных технологий Уральский федеральный университет 06 апреля 2020 Код Хэмминга Определение 44. Бинарный код C длины n = 2m − 1, m ≥ 2, с проверочной m × (2m − 1) матрицей H, i-м столбцом которой служит двоичная запись числа i длины m, называется бинарным кодом Хэмминга. Удлиненным кодом Хэмминга называется (2m , 2m − 1 − m)-код C, полученный из (2m − 1, 2m − 1 − m)-кода Хэмминга добавлением одного символа x2m к кодовым словам кода Хэмминга и добавление одного проверочного уравнения x1 + x2 + . . . + x2m = 0 (проверкой на четность). Симплексный код — это (2m − 1, m)-код C∗ , дуальный к (2m − 1, 2m − 1 − m)-коду Хэмминга C, а код ∗ Рида-Малера первого порядка — это (2m , m + 1)-код C , дуальный m m к удлиненному (2 , 2 − 1 − m)-коду C Хэмминга. Теорема 45. Минимальное расстояние (2m − 1, 2m − 1 − m)-кода Хэмминга C равно 3, а минимальное расстояние его удлинненого (2m , 2m − 1 − m)-кода C равно 4. Минимальное расстояние симплексного (2m − 1, m)-кода C∗ и (2m , m + 1)-кода Рида-Малера ∗ первого порядка C равно 2m−1 . Задача 4.   1 1 0 0 0 Пусть G =  1 0 1 0 1  — порождающая матрица 1 0 0 1 0 бинарного линейного (5,3)-кода. Найти для этого кода проверочную матрицу, все кодовые слова, а также дуальный код. Найти весовые спектры этих кодов. Выписать все синдромы и лидеры смежных классов и декодировать при помощи лидеров слово 11010. Решение. Для данного кода C длина сообщений k = 3, длина кодовых слов n = 5 и m = n − k = 2. Приведем матрицу G эквивалентными преобразованиями над полем F2 к каноническому виду G0 = (E3 | −AT ), где A ∈ (F2 )2×3 . Тогда H = (A | E2 ) является каноническим видом проверочной матрицы кода C. Под матрицей будем записывать ее эквивалентные преобразования, обозначая строки матрицы римскими цифрами.  1 G= 1 1 1 1  1  ∼ 1     1 1 1 1 II−I, III−I  ∼    1 1 1 1 I−II 1 1 1 1     ∼ III−II 1      ∼ 1 0 0 G0 =  0 1 0 0 0 1 E3 | 0 | 0 | 1  1 1  −AT   1 1  , следовательно,   0 0 1 T T T T A = −(−A ) = (−A ) = , 1 1 0   0 0 1 1 0 H= . 1 1 0 0 1 Таким образом, −AT =  0 1 Пусть ~a = (a1 , a2 , a3 ), где a1 , a2 , a3 ∈ F2 , — сообщение, тогда по формуле (??) соответствующее кодовое слово равно ~x = (x1 , x2 , x3 , x4 , x5 ) = ~aG0 = (a1 , a2 , a3 , a3 , a1 + a2 ). Приведем таблицу всевозможных сообщений и соответствующих кодовых слов. ~a ~x 000 00000 001 00110 010 01001 011 01111 100 10001 101 10111 110 11000 Таким образом, C = {00000, 00110, 01001, 01111, 10001, 10111, 11000, 11110}. 111 11110 Запишем таблицу лидеров ~ei и соответствующих смежных классов ~ei + C. Напомним, что S(~y) = S(~ei ), если y ∈ ~ei + C и S(~ei ) 6= S(~ej ) для i 6= j. Число лидеров (смежных классов) равно 2n /|C| = 2n /2k = 2m = 4. Заполнение таблицы происходит следующим образом: сначала выписываем все кодовые слова ~x1 , ~x2 , ~x3 , ~x4 , ~x5 , ~x6 , ~x7 ~x8 , (первая строка таблицы). Очевидно, S(~xj ) = (0, 0)T . Затем выбираем лидеры ~e1 , ~e2 , ~e3 , ~e4 cмежных классов, так, чтобы их вес был как можно меньше и S(~ei ) 6= S(~ej ) для i 6= j. Векторы из F52 наименьшего веса — суть ~x1 = 00000, w ~ 1 = 00001, w ~ 2 = 00010, ~ 3 = 00100, w ~ 4 = 01000, w ~ 5 = 10000. w Посчитаем их синдромы: S(~x1 ) = (0, 0)T , S(~ w1 ) = S(~ w4 ) = S(~ w5 ) = (0, 1)T , T S(~ w2 ) = S(~ w3 ) = (1, 0) . ~ 1 , ~e3 = w ~ 2 . Оставшийся лидер e4 Возьмем в качестве ~e1 = ~x1 , ~e2 = w ~ 3, w ~ 4, w ~ 5 выбирать нельзя. Теперь рассмотрим вектора из векторов w из F52 веса два и выберем среди них вектор ~e4 такой, что S(~e4 ) 6∈ {S(~e1 ), S(~e2 ), S(e3 )}, т.е. S(~e4 ) = (1, 1)T . В качестве ~e4 можно взять, например, вектор 00011. Итак, имеем следующую таблицу лидеров и их синдромов ~ei S(~ei ) 00000 (0, 0)T 00001 (0, 1)T 00010 (1, 0)T 00011 (1, 1)T Запишем лидеры в первый столбец таблицы лидеров и их смежных классов. Элемент, стоящий в i-й строке и j-м столбце таблицы равен ~yij = ~ei +~xj . Таким образом, i-я строка таблицы представляет собой смежный класс ~ei + C. 00000 00001 00010 00011 00110 00111 00100 00101 01001 01000 01011 01010 01111 01110 01101 01100 10001 10000 10011 10010 10111 10110 10101 10100 11000 11001 11010 11011 11110 11111 11100 11101 Синдром слова ~y = 11010, которое нужно декодировать, равен S(~y) = (1, 0)T = S(~e3 ), т.е. ~y ∈ ~e3 + C, а именно, слово ~y находится в 3-й строке и 7-м столбце. Следовательно, с наибольшей вероятностью передано слово ~x3 = ~y − ~e3 = 11000. Соответствующее сообщение представляет собой слово ~a = 110. Найдем дуальный (5,2)-код C∗ . Порождающей матрицей G∗ для этого кода является матрица H, а проверочной матрицей — матрица G. Как и выше приведем матрицу G∗ элементарными преобразованиями и над F2 к каноническому виду G∗0 = (E2 | − A∗T ). Столбцы матриц будем обозначать арабскими цифрами.     1 1 0 0 1 0 0 1 1 0 ∼ G∗ = ∼ 0 0 1 1 0 1 1 0 0 1 I↔II ∼ G∗0 =  1 (2)↔(3) 1 E2 | 1 | 0 1 −A∗T 1  Если ~a∗ = (a∗1 , a∗2 ) — сообщение, тогда соответсвующее кодовое слово из дуального кода по формуле (??) равно ~x∗ = (x1∗ , x2∗ , x3∗ , x4∗ , x5∗ ) = ~a∗ G0 = (a1 , a2 , a1 , a2 , a1 ). Приведем таблицу всевозможных сообщений и соответствующих кодовых слов для кода C∗ . ~a∗ ~x∗ 00 00000 01 01010 10 10101 11 11111 Таким образом, C∗ = {00000, 01010, 10101, 11111}. Найдем весовые спектры кодов C = {~x1 ,~x2 ,~x3 ,~x4 ,~x5 ,~x6 ,~x7 ,~x8 } и C∗ = {~x1∗ ,~x2∗ ,~x3∗ ,~x4∗ }. Находим веса слов этих кодов: w(~x1 ) = 0, w(~x2 ) = w(~x3 ) = w(~x5 ) = w(~x7 ) = 2, w(~x4 ) = w(~x6 ) = w(~x8 ) = 4, w(~x1∗ ) = 0, w(~x2∗ ) = 2, w(~x3∗ ) = 3, w(~x4∗ ) = 5. Отсюда имеем следующие весовые спектры для кодов C и C∗ : A0 = 1, A2 = 4, A4 = 3, A1 = A3 = A5 = 0; A∗0 = A∗2 = A∗3 = A∗5 = 1, A1 = A4 = 0. Ответ 1. C = {00000, 00110, 01001,   01111, 10001, 10111, 11000, 11110}; 0 0 1 1 0 H= ; C∗ = {00000, 01010, 10101, 11111}; A0 = 1, 1 1 0 0 1 A2 = 4, A4 = 3, A1 = A3 = A5 = 0, A∗0 = A∗2 = A∗3 = A∗5 = 1, A1 = A4 = 0; 11000(110). Задача 5. Найти порождающую матрицу, все кодовые слова и весовой спектр для линейного тернарного (4,2)-кода с проверочной   0 1 1 1 матрицей H = . Выписать все синдромы и лидеры 1 1 2 1 смежных классов и декодировать при помощи лидеров слово 2001. Оценить вероятность правильного декодирования. Решение. Эквивалентными преобразованиями над F3 приведем порождающую матрицу H кода C к каноническому виду H 0 = (A | E2 ), где A ∈ (F3 )2×2 . Напомним, что в поле F3 справедливо следующее: −1 = 2, −2 = 1, 2 + 2 = 1, 2 + 1 = 0, 2 · 2 = 1, 2−1 = 2.  H= 1 | 1 | 2 1 1 1 1   ∼  1 | 2 | 1 1 1 I↔II,  ∼  2 2 1 | 1 | 1 ∼ 2 2 2 1 | 1 | 0 I−2·II   ∼ 2−1 ·I 2 1    ∼  2 1 | 1 | 0 2 2 2 2   ∼ 2−1 ·II II−I  1 1 2 1  ∼ H0 =  1 2 1 A | 1 | 0 E2 1      1 0 1 0 | 2 1 , G = (E2 | −AT ) = . 2 1 0 1 | 0 2 Пусть ~a = (a1 , a2 ), где a1 , a2 ∈ F3 — некоторое сообщение, тогда соответствующее кодовое слово равно ~x = (x1 , x2 , x3 , x4 ) = ~aG = (a1 , a2 , 2a1 , a1 +2a2 ). И мы имеем следующее соответствие сообщений и кодовых слов. Значит, ~a ~x 00 0000 A= 01 0102 02 0201 10 1021 11 1120 12 1222 20 2012 21 2111 22 2210 Выберем, подобно тому как мы это делали в задаче 4, лидеры ~e1 , ~e2 . . ., ~e9 смежных классов. ~ei 0000 0001 0010 1000 0002 0020 2000 0011 1010 S(~ei ) (0, 0)T (0, 1)T (1, 0)T (1, 2)T (0, 2)T (2, 0)T (2, 1)T (1, 1)T (2, 2)T Теперь напишем таблицу лидеров и соответствующих смежных классов. Как и в задаче 4 первая строка — это множество всех кодовых слов, первый столбец — множество всех лидеров, i-я строка представляет собой смежный класс ~ei + C, а элемент, стоящий на пересечении i-й строки и j-го столбца равен ~yij = ~ei + ~xj . 0000 0001 0010 1000 0002 0020 2000 0011 1010 0102 0100 0112 1102 0101 0122 2102 0110 1112 0201 0202 0211 1201 0200 0221 2201 0212 1211 1021 1022 1001 2021 1020 1011 0021 1002 2001 1120 1121 1100 2120 1122 1110 0120 1101 2100 1222 1220 1202 2222 1221 1212 0222 1200 2202 2012 2010 2022 0012 2011 2002 1012 2020 0022 2111 2112 2121 0111 2110 2101 1111 2122 0121 2210 2211 2220 0210 2212 2200 1210 2221 0220 Слово ~y = 2001 лежит в 9-й строке и 4-м столбце, следовательно, с наибольшей вероятностью оно декодируется в кодовое слово ~x4 = ~y − ~e9 = 2001 − 1010 = 1021, которое соответствует сообщению 11. Минимальное расстояние кода dmin (C) = 3. Значит, код C обнаруживает s = dmin (C) − 1 = 2 ошибки и исправляет t = [(dmin (C) − 1)/2] = 1 ошибку (теорема ??). Следовательно, для вероятности P правильного декодирования (вероятности того, что не произошло ошибок или произошла одна ошибка) справедливо P≥ t   X n i=0 i p     5 5 5 q = p + p4 q = p5 + 5p4 q. 1 n−i i Ответ 2. C = {0000, 0101, 0202, 1021,   1122, 1220, 2012, 2110, 2210}; 1 0 | 2 1 G= ; 1021(10); P ≥ p5 + 5p4 q. 0 1 | 0 1 Задача 6. Найти проверочные и порождающие матрицы и информационные скорости для (7,4)-кода Хэминга и удлиненного (8,4)-кода Хэмминга. Сколько ошибок обнаруживают и исправляют эти коды? Декодировать слова 1101011 и 01011011 в коде Хэмминга и его удлиненном коде соответственно. Решение. Обозначим через H и G соответственно проверочную и порождающую матрицы кода Хэмминга C, а через H и G — проверочную и порождающую матрицы удлиненного кода Хэмминга C. Проверочная матрица (7, 4)-кода Хэмминга является бинарная матрица размера 3 × 7, i-й столбец которой есть двоичная запись числа i. Значит,   0 0 0 1 1 1 1 H= 0 1 1 0 0 1 1  1 0 1 0 1 0 1 Удлиненный (8, 4)-код получен добавлением одного символа x8 к кодовым словам кода Хэмминга и добавление одного проверочного уравнения x1 + x2 + . . . + x8 = 0 (проверкой на четность). Следовательно, матрица H может быть получена из H приписывание сверху строки (1, 1, 1, . . . , 1) и справа столбца (1, 0, 0, . . . , 0)T . Следовательно,   1 1 1 1 1 1 1 1  0 0 0 1 1 1 1 0   H=  0 1 1 0 0 1 1 0  1 0 1 0 1 0 1 0 Эквивалентными преобразованиями также, как и в задачах 4, 5, приводим матрицы H и H к каноническому виду H 0 = (A | E3 ), H = (A | E4 ). В результате получаем:   0 1 1 1 | 1 0 0 H0 =  1 0 1 1 | 0 1 0  1 1 0 1 | 0 0 1   0 1 1 1 | 1 0 0 0  1 0 1 1 | 0 1 0 0   H =  1 1 0 1 | 0 0 1 0  1 1 1 0 | 0 0 0 1 Следовательно,  1 0 0 0  0 1 0 0 G=  0 0 1 0 0 0 0 1  1 0 0 0 |  0 1 0 0 | G=  0 0 1 0 | 0 0 0 1 | | | | | 1 1 1 1 1 1 1 1 1 1 1 1  1 1   0  1  1 1 1 1   0 1  1 0 Строки любой порождающей матрицы, записанной в канонической форме, являются базисом пространства кодовых слов. Далее, кодовые слова удлиненного кода получаются из кодовых слов исходного кода добавлением символа проверки на четность. Следовательно, матрицу G можно было получить из G добавлением справа столбца, i-й элемент которого является сумммой всех элементов i-й строки матрицы G (проверкой на четность). Информационная скорость кода Хэмминга C равна k/n = (2m − 1)/(2m − 1 − m) = 7/3, а информационная скорость удлиненного кода Хэмминга C равна k/n = 2m /(2m − m) = 8/4 = 2. Известно, что dmin (C) = 3, dmin (C)=4 (утверждение 45), следовательно, код C обнаруживает dmin (C) − 1 = 2 ошибки и исправляет [(dmin (C) − 1)/2] = 1 ошибку, а код C обнаруживает dmin (C) − 1 = 3 ошибки и исправляет [(dmin (C) − 1)/2] = 1 ошибку (теорема ??). Слово ~y1 = 1101011 имеет синдром S1 (~y1 ) = H~yT2 = (1, 1, 0)T , который является двоичной записью числа 6, и декодер кода Хэмминга решает, что ошибка произошла в 6-й позиции. Следовательно, слову ~y соответствует кодовое слово ~x1 = ~y1 = 1101011 − 0000010 = 1101111, а соответствующее сообщение будет 110. Синдром слова ~y2 = 01011011 равен  8    1 P 1   i=1 yi   T  S2 (~y2 ) = H~y2 =  =  0 , S1 (~y) где ~y2 = y1 y2 . . . y7 y8 = 01011011, ~y = y1 y2 . . . y7 = 0101101. Следовательно, S1 (~y) = (1, 0, 0)T и ошибка в слове ~y произошла в 4-й позиции кодового слова ~x = x1 x2 . . . x7 кода Хэмминга C. Следовательно, ~x = ~y − 0001000 = 0100101. Соответствующее кодовое слово ~x удлиненного (8,4)-кода Хэмминга C равно слову x1 x2 . . . x7 x8 = 7 P 01001011, где x8 = xi = 1 — есть символ проверки на четность. i=1 Кодовому слову 01001011 соответствует сообщение 010. Ответ 3. H, G, H, G; инфомационные скорости кодов C и C равны соответственно 7/3 и 2; код C обнаруживает две ошибки и исправляет одну ошибку, а код C обнаруживает три ошибки и исправляет одну ошибку; 1101111(110), 01001011(010). Задача 7. Найти проверочные и порождающие матрицы для симплексного (7,3)-кода и (8,4)-кода Рида-Малера первого порядка. Содержат ли слова 0101101 и 11001100 в симплексном коде и в коде Рида-Малера обнаруживаемые ошибки? Оценить вероятность обнаружения ошибки для этих кодов. Решение. Обозначим через H ∗ и G∗ соответственно проверочную и ∗ ∗ порождающую матрицы симплексного кода C∗ , а через H и G — ∗ проверочную и порождающую матрицы кода Рида-Малера C (матрицы G, H, G, H, означают то же, что и в задаче 6). Тогда H ∗ = G, ∗ ∗ G∗ = H, H = G, G = H. Выясним, содержат ли слова ~y1 = 0101101, ~y2 = 11001100 обнару∗ живаемые ошибки в кодах C∗ и C : S1 (~y1 ) = H ∗~yT1 = (1, 1, 1, 1)T 6= (0, 0, 0, 0)T ∗ S2 (~y2 ) = H ~yT2 = (1, 1, 1, 1)T 6= (0, 0, 0, 0)T = (0, 0, 0, 0)T . Значит, декодер кода C∗ будет выдавать сообщение об ошибке в ∗ слове ~y1 , а декодер кода C будет считать слово ~y2 кодовым словом. ∗ Известно, что dmin (C∗ ) = dmin (C ) = 2m−1 = 4 (утверждние 45), ∗ следовательно, коды C∗ и C обнаруживают s = dmin (C∗ ) − 1 = 3 ошибки. Это означает, что для вероятностей P1 , P2 пропуска ошибки этими кодами (т.е. для вероятностей того, что произошло не более трех ошибок) справедливо P1 ≥ P2 ≥ 3 P 7 i i=0 3  P i=0  pn−1 qi = p7 + 7p6 q + 21p5 q2 + 35p4 q3  8 n−1 i q = p8 + 8p7 q + 28p6 q2 + 56p5 q3 i p Ответ 4. ∗ ∗ H ∗ = G, G∗ = H, H = G, G = H (матрицы G, H, G, H найдены в задаче 6); в слове 0101101 произошла ошибка с вероятностью P1 ≥ p7 + 7p6 q + 21p5 q2 + 35p4 q3 ; в слове 11001100 не произошла ошибка с вероятностью P2 ≥ p8 + 8p7 q + 28p6 q2 + 56p5 q3 .
«Линейные коды» 👇
Готовые курсовые работы и рефераты
Купить от 250 ₽
Решение задач от ИИ за 2 минуты
Решить задачу
Помощь с рефератом от нейросети
Написать ИИ

Тебе могут подойти лекции

Автор(ы) Белоусов И. Н.
Смотреть все 938 лекций
Все самое важное и интересное в Telegram

Все сервисы Справочника в твоем телефоне! Просто напиши Боту, что ты ищешь и он быстро найдет нужную статью, лекцию или пособие для тебя!

Перейти в Telegram Bot