ФЕДЕРАЛЬНОЕ АГЕНСТВО СВЯЗИ Федеральное государственное образовательное бюджетное учреждение
высшего профессионального образования
Московский Технический Университет Связи и Информатики
Кафедра радиотехнических систем
Лабораторная работа № 3 ПК
«Исследование процессов кодирования и декодирования кодов Рида-Соломона»
по дисциплине «Помехоустойчивое кодирование»
Москва 2014
ФЕДЕРАЛЬНОЕ АГЕНСТВО СВЯЗИ Федеральное государственное образовательное бюджетное учреждение
высшего профессионального образования
Московский Технический Университет Связи и Информатики
Кафедра радиотехнических систем
«Утверждено на Совете факультета радио и телевидения»
Декан А.В. Пестряков
Протокол № 7 от «20» марта 2014 г.
Лабораторная работа № 3 ПК
«Исследование процессов кодирования и декодирования кодов Рида-Соломона»
по дисциплине «Помехоустойчивое кодирование»
«Утверждено на заседании кафедры радиотехнических систем
Зав. кафедрой |
Ю.С Шинаков |
Протокол № 4 |
от « 18 » февраля 2014 г. |
Москва 2014
УДК 6820.3.042.5 : 6220.39 План подготовки УМД 2013/2014 уч. года
Лабораторная работа № 3 ПК
«Исследование процессов кодирования и декодирования кодов Рида-Соломона»
по дисциплине «Помехоустойчивое кодирование»
Предлагаемое издание является учебным пособием для лабораторного практикума по курсу «Помехоустойчивое кодирование». Издание содержит описание лабораторной работы и исходные данные для её выполнения. Издание предназначено для студентов радиотехнических и телекоммуникационных специальностей.
Составители: В.Э. Русанов, к.т.н., доцент, С.А. Силина, студентка гр. ПС 0902 МТУСИ.
Рецензент: профессор каф РТС: А.А. Локтев, д.ф-м.н., доцент
Издание утверждено Советом факультета радио и телевидения. Протокол № 7 от 20 марта 2014 г.
Лабораторная работа №3 Исследование процессов кодирования и декодирования
Кодов Рида-Соломона
Цель работы:
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 количество символов в кодовом слове (блоке) циклического кода ; в) количество обнаруживаемых и исправляемых ошибок в блоке t=2.
1. Пусть степень образующего полинома поля согласно заданию: m=6 (либо 7, либо 8 в зависимости от варианта задания).
Построить поле Галуа GF(2m). Его i-тый элемент определяется как степень примитивного элемента a=10 (2 в двоичной системе) по модулю образующего полинома поля G(x), то есть как остаток от деления степени примитивного элемента на образующий полином поля
i 10i modG(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 на “рабочем столе” лабораторного компьютера. В этом же каталоге должны быть 4 вспомогательных файла с расширениями *.dll и *.bpl.
Содержание отчета
1.Наименование и цель работы.
2.Исходные данные для выполнения работы.
3.Результаты выполнения работы.
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. Рассчитаем элементы поля Галуа:
α-∞ |
α0 |
α1 |
α2 |
α3 |
|
|
α12 |
|
α28 |
|
|
α59 |
α60 |
α61 |
α62 |
000000 |
000001 |
000010 |
000100 |
001000 |
---- |
---- |
010101 |
---- |
101101 |
---- |
---- |
111011 |
100110 |
101001 |
100011 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Найдём в данной рассчитанной таблице элементы поля Галуа, равные приведённым шестизначным кодам. Ими оказались элементы с 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 информационным символам 4-х проверочных как
коэффициентов полинома – остатка от деления 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) 10x5 9x9 34x2 90
Вопросы к защите лабораторной работы №3 по кодам Рида-Соломона
1.Как связаны разрядность кода Рида-Соломона и количество неповторяющихся элементов поля Галуа?
2.Какие полиномы пригодны для построения поля Галуа?
3. От чего зависит число корней порождающего полинома?
4. Как учитывается число исправляемых символов при построении порождающего полинома?
5. Какое максимальное количество бит может исправить код РидаСоломона для поля GF(28), имеющего два корня в образующем полиноме?
6. Что определяется в результате декодирования кода Рида-Соломона? 7. Как вычислить проверочные символы систематического кода Рида-
Соломона?
8. Как вычислить синдром ошибки систематического кода РидаСоломона?
9. Чему равен максимальный вес символа кода Рида-Соломона для поля CF(64)?
10. Как выразить нулевой элемент поля Галуа через степень примитивного элемента?
11. Какие данные используются при построении поля Галуа?
12. Алгоритм кодирования систематического кода Рида-Соломона. 13. Алгоритм декодирования систематического кода Рида-Соломона. 14. Как определяется порождающий полином кода Рида-Соломона.
15.Что такое таблица синдромов и вектор ошибки?
16.Как обнаруживаются и исправляются ошибки при декодировании кода Рида-Соломона?
17.В каких каналах применяют код Рида-Соломона?
Учебное издание Русанов Владимир Эдуардович
Силина Светлана Андреевна
Лабораторная работа № 3 ПК
«Исследование процессов кодирования и декодирования кодов Рида-Соломона»
по дисциплине «Помехоустойчивое кодирование»
Учебное пособие
