Исследование процессов кодирования и декодирования кодов Рида-Соломона. Практикум № 3 ПК
.pdf
ФЕДЕРАЛЬНОЕ АГЕНТСТВО СВЯЗИ
Федеральное государственное образовательное бюджетное учреждение высшего профессионального образования
Московский технический университет связи и информатики
Кафедра радиотехнических систем
Русанов В.Э.
Практикум № 3 ПК
Исследование процессов кодирования и декодирования кодов Рида-Соломона
для студентов 3 к. (направление 11.03.02)
Москва 2014
План УМД на 2014/2015 уч.г.
Практикум № 3 ПК
Исследование процессов кодирования и декодирования кодов Рида-Соломона
Составители: В.Э. Русанов, к.т.н., доцент С.А. Силина, студентка гр. ПС 0902
Издание утверждено Советом факультета РиТ. Протокол № 7 от 20.03.2014г.
Рецензент А.А. Локтев, д.ф-м.н., доцент
2
Цель работы
1.Получение практических навыков по формированию поля Галуа для построения кодов Рида-Соломона, изучение алгоритмов формирования кодовых слов.
2.Изучение процессов декодирования кодов Рида-Соломона, алгоритма обнаружения и исправления ошибок в кодовых словах.
Порядок выполнения работы
1. Исходные данные для выполнения работы:
а) образующий неприводимый полином для построения поля Галуа. Задаётся по таблице для различных вариантов учебных заданий.
Таблица неприводимых полиномов
Вариант |
Двоичный |
Восьмеричный |
Образующий полином |
|
код |
код |
поля Галуа G(x) |
|
|
|
|
1 |
10000112 |
1038 |
x6+ x+1 |
2 |
11001112 |
1478 |
x6+ x5 + x2+x+1 |
3 |
10110112 |
1338 |
x6+ x4 + x3+ x+1 |
4 |
100000112 |
2038 |
x7+ x+1 |
5 |
100010012 |
2118 |
x7+ x3+ 1 |
6 |
100011112 |
2178 |
x7+ x3+ x2+x+1 |
7 |
101001112 |
2478 |
x7+ x5+ x2+x+1 |
8 |
101010112 |
2538 |
x7+ x5+ x3+ x+1 |
9 |
110010112 |
3138 |
x7+ x6+ x5+ x4 + x3+ x2+x+1 |
10 |
100111012 |
2358 |
x7+ x4 + x3+ x2+ 1 |
11 |
101111112 |
2778 |
x7+ x5+ x4 + x3+ x2+x+1 |
12 |
11 101 1112 |
3578 |
x7+ x6+ x5+ x3+ x2+x+1 |
13 |
1100001112 |
6078 |
x8+ x7+ x2+x+1 |
14 |
1001010112 |
4538 |
x8+ x5+ x3+x+1 |
15 |
1011000112 |
5438 |
x8+ x6+ x5 +x+1 |
16 |
1000111012 |
4358 |
x8+ x4 + x3+ x2 +1 |
17 |
1001011012 |
4558 |
x8+ x5+ x3+ x2+ 1 |
18 |
1010011012 |
5158 |
x8+ x6+ x3+ x2 +1 |
19 |
1010111112 |
5378 |
x8+ x6+ x4 + x3+ x2+x+1 |
20 |
1110011112 |
7178 |
x8+ x7+ x6+ x3+ x2+x+1 |
б) разрядность символов 6-8 бит в зависимости от степени образующего полинома поля m;
в) n =15 количество символов в кодовом слове (блоке) циклического кода;
3
г) количество обнаруживаемых и исправляемых ошибок в блоке t = 2.
1. Пусть степень образующего полинома поля, согласно заданию, m = 6 (либо 7, либо 8 в зависимости от варианта задания).
Построить поле Галуа GF(2m). |
Его i-й элемент определяется как |
степень примитивного элемента a = 10 |
(2 в двоичной системе) по модулю |
образующего полинома поля G(x), то |
есть как остаток от деления степени |
примитивного элемента на образующий полином поля
i 10i mod G(x) .
Полученный элемент поля условно обозначается как степень примитивного элемента, хотя, строго говоря, это остаток от деления.
2. Найти порождающий многочлен кода Рида-Соломона с корнями в виде степеней примитивного элемента.
3. Сформировать блок исходной информационной последовательности длиной m*11 бит (11 m-битовых элементов поля Галуа). Первые два m- битовых символа определяются по таблице 1. Остальные биты будут нулевые (9 m-битовых нулевых символов).
4. Сформировать кодовое слово c(x) кода Рида-Соломона длиной 15*m бит путём полиномиального кодирования информационной последовательности в систематическом виде. Для этого определяем проверочные
символы (4*m бит) как p(x)-полином - остаток от деления xr a(x) .
g(x)
Аналитическая запись этого остатка: p(x) xr a(x)mod g(x) .
5. Внести ошибку во втором бите первого символа кодового слова c(x). Выразить искаженные символы через элементы поля Галуа. Выполнить декодирование искажённого кодового слова c(x), определив синдром ошибки
s(x) как остаток от деления: c(x) .
g(x)
То есть, формула вычисления синдрома: s(x) c'(x)mod g(x) .
Для выполнения операции деления полиномов в поле Галуа используется программа Pdiv256.exe из каталога ПК3 на “рабочем столе” лабораторного компьютера. В этом же каталоге должны быть четыре вспомогательных файла с расширениями *.dll и *.bpl.
Содержание отчета
1.Наименование и цель работы.
2.Исходные данные для выполнения работы.
3.Результаты выполнения работы.
4.Выводы.
4
ПРИЛОЖЕНИЕ Формирование информационных блоков
Информационные блоки формируются по таблице П2 с вариантами задания. Номер задания определяется по списочному номеру учащегося. К полученной двоичной последовательности из двух символов по 6, 7 или 8 бит (в зависимости от варианта) добавляются 9 нулевых символов. Оставшиеся 9 символов блока, по 6 (7,8) бит каждое, будут нулевыми. В результате информационный блок будет содержать блок k =11 символов.
Полученную последовательность из 11 символов кода Рида-Соломона надо представить как 11 коэффициентов полинома блока исходной информации. Коэффициенты представляются как элементы поля Галуа, то есть степени примитивного элемента из таблицы элементов поля GF(2m).
Таблица П1 Кодируемая информация
№ |
Код |
|
|
|
№ |
Код |
|
варианта |
|
|
|
|
варианта |
|
|
1 |
010010 |
011101 |
|
17 |
10001010 |
11001100 |
|
2 |
001011 101011 |
|
18 |
10000100 |
10111010 |
||
3 |
010101 101101 |
|
19 |
10011001 |
1101 1100 |
||
4 |
0010010 |
1100101 |
|
20 |
10011111 |
1010 1110 |
|
5 |
0010111 |
0101100 |
|
21 |
10101100 |
10001010 |
|
6 |
0101110 |
0110001 |
|
22 |
10101110 |
01100011 |
|
7 |
1001100 |
1010011 |
|
23 |
10110110 |
10010111 |
|
8 |
1010001 |
1101001 |
|
24 |
10111010 |
11101001 |
|
9 |
1010110 |
1000111 |
|
25 |
11000110 |
11011100 |
|
10 |
0110001 |
0001100 |
|
26 |
11001100 |
10101100 |
|
11 |
0101000 |
0100110 |
|
27 |
11100001 |
01010110 |
|
12 |
0101001 |
1101001 |
|
28 |
11011100 |
10011001 |
|
13 |
0110 0110 |
1111 0011 |
|
29 |
11010011 |
00101101 |
|
14 |
0110 0001 |
1110 1001 |
|
30 |
11101001 |
00101110 |
|
15 |
01111000 11011100 |
|
31 |
11110011 |
10110001 |
||
16 |
01111110 11100001 |
|
32 |
11111110 |
0110 0110 |
||
Пример. Пусть списочный номер 3. Полученная 12-битовая последовательность: 010101 101101. Рассчитаем элементы поля Галуа:
Таблица П2
α-∞ |
α0 |
α1 |
α2 |
α3 |
|
|
α12 |
|
α28 |
|
|
α59 |
α60 |
α61 |
α62 |
000000 |
000001 |
000010 |
000100 |
001000 |
---- |
---- |
010101 |
---- |
101101 |
---- |
---- |
111011 |
100110 |
101001 |
100011 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
5 |
|
|
|
|
|
|
|
Найдём в данной рассчитанной таблице элементы поля Галуа, равные приведённым шестизначным кодам. Ими оказались элементы с 12 и 28 степенью. Тогда кодируемую информацию можно выразить в форме
элементов поля Галуа:
a(x) = α12x+ α28 .
После дополнения информационной последовательности нулевыми элементами получим 66 бит блока (11 шестизначных элементов поля GF(26)) 010101 101101 000000 000000 000000 000000 000000 000000 000000 000000 000000.
Им соответствует полином (слагаемые с нулевыми коэффициентами
можно не писать):
a(x) 12x10 28x9 .
Этот полином и будет использоваться при помехоустойчивом кодировании для расчёта по 11 информационным символам четырех проверочных как
коэффициентов полинома – остатка от деления xr a(x) . g(x)
Работа с программой деления полиномов поля GF(2m)
При запуске программы на экран последовательно выводятся диалоговые окна, в которых надо последовательно задать полиномы делимого (числителя) и делителя (знаменателя). Для задания полинома в диалоговых окнах компьютерной программы последовательно задают каждую степень i его аргумента xi и степень j соответствующего коэффициента aj . Степени задаются целыми числами от 0 до 255 (каждая степень в отдельном окне). Сначала задаются степени в полиноме делимого, а затем - в полиноме делителя, начиная со старших степеней аргумента полинома и кончая нулевой степенью.
Степени для коэффициентов полиномов задаются целыми числами:
|
|
0 |
|
1 |
2 |
3 |
4 |
5 |
6 |
7 |
|
|
98 |
|
99 |
100 |
|
101 |
102 |
… |
-1 |
|
0 |
|
1 |
2 |
3 |
4 |
5 |
6 |
7 |
|
|
98 |
|
99 |
100 |
|
101 |
102 |
… |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||
Нулевые коэффициенты (это 0 , а не |
0 1 ) при вводе в компьютер |
|||||||||||||||||||
можно |
|
игнорировать, так как порядок |
расположения |
коэффициентов |
||||||||||||||||
определяется соответствующими степенями при |
x. Вместо (знак минус |
|||||||||||||||||||
бесконечности) в программе используется символ |
-1. |
|
|
|
|
|
||||||||||||||
Частное и остаток от деления программа выведет в полиномиальной форме, например:
Частное: X^5 * A^10 + X^9 * A^9+ X^2 * A^34+ A^90,
что соответствует полиному:
p(x) 10 x5 9 x9 34 x2 90 .
6
Вопросы к защите практикума № 3 по кодам Рида-Соломона
1.Как связаны разрядность кода Рида-Соломона и количество неповторяющихся элементов поля Галуа?
2.Какие полиномы пригодны для построения поля Галуа?
3. От чего зависит число корней порождающего полинома?
4. Как учитывается число исправляемых символов при построении порождающего полинома?
5. Какое максимальное количество бит может исправить код РидаСоломона для поля GF(28), имеющего два корня в образующем полиноме?
6. Что определяется в результате декодирования кода Рида-Соломона? 7. Как вычислить проверочные символы систематического кода Рида-
Соломона?
8. Как вычислить синдром ошибки систематического кода РидаСоломона?
9. Чему равен максимальный вес символа кода Рида-Соломона для поля CF(64)?
10. Как выразить нулевой элемент поля Галуа через степень примитивного элемента?
11. Какие данные используются при построении поля Галуа?
12. Алгоритм кодирования систематического кода Рида-Соломона. 13. Алгоритм декодирования систематического кода Рида-Соломона. 14. Как определяется порождающий полином кода Рида-Соломона?
15.Что такое таблица синдромов и вектор ошибки?
16.Как обнаруживаются и исправляются ошибки при декодировании кода Рида-Соломона?
17.В каких каналах применяют код Рида-Соломона?
7
Практикум № 3 ПК
Исследование процессов кодирования и декодирования кодов Рида-Соломона
Подписано в печать 23.04.2014г. Формат 60х90 1/16. Объём 0,5 усл.п.л. Тираж 100 экз. Изд. № 47. Заказ 49.
ООО «ТРП». Москва, ул. Правды, д. 24, стр. 5
8
