Практикум на ЭВМ (317)/2013/Коды БЧХ

Материал из MachineLearning.

Перейти к: навигация, поиск
Формулировка задания находится в стадии разработки. Убедительная просьба не приступать к выполнению задания до тех пор, пока это предупреждение не будет удалено.


Основная статья: Практикум на ЭВМ (317)


Начало выполнения задания: 6 мая 2013 г.
Срок сдачи: 19 мая 2013 г. (воскресенье), 23:59.

Программная среда для выполнения задания — MATLAB. Неэффективная реализация кода может негативно отразиться на оценке.

Коды БЧХ

Формулировка задания

  1. Реализовать основные операции в поле GF(2^l): сложение, умножение, деление, решение СЛАУ, вычисление значения многочлена для заданного элемента поля, поиск примитивного элемента;
  2. Реализовать процедуру систематического кодирования для циклического кода, заданного своим порождающим многочленом;
  3. Реализовать процедуру построения порождающего многочлена для БЧХ-кода двумя способами: с помощью решения СЛАУ для коэффициентов многочлена и с помощью построения минимальных многочленов для каждого корня кода;
  4. Реализовать процедуру декодирования БЧХ-кода двумя способами: с помощью алгоритма Берлекемпа-Мэсси и с помощью прямого решения СЛАУ (декодер PGZ);
  5. Провести экспериментальное исследование БЧХ-кода на модельных данных;
  6. Составить отчет в формате PDF обо всех проведенных исследованиях.

Рекомендации по выполнению задания

Оформление задания

Выполненное задание следует отправить письмом по адресу bayesml@gmail.com с заголовком письма «[ПРАК13] Задание 6, Фамилия». Убедительная просьба присылать выполненное задание только один раз с окончательным вариантом. Новые версии будут рассматриваться только в самом крайнем случае. Также большая просьба строго следовать указанным ниже прототипам реализуемых функций.

Присланный вариант задания должен содержать в себе:

  • Текстовый файл в формате PDF, содержащий описание проведенных исследований;
  • Все исходные коды с необходимыми комментариями.

 

Основные операции в GF(2^l)
res = gf_sum(X, Y, pp) — поэлементное суммирование двух матриц
res = gf_prod(X, Y, pp) — поэлементное умножение двух матриц
res = gf_times(X, Y, pp) — умножение двух матриц
res = gf_rdivide(A, b, pp) — решение СЛАУ Ax=b
ВХОД
X, Y — матрица из элементов поля GF(2^l), каждый элемент представляет собой десятичное число, двоичная запись которого соответствует коэффициентам полинома над полем GF(2), первый разряд соответствует старшей степени полинома;
pp — неприводимый многочлен степени l над GF(2)[x], десятичное число;
ВЫХОД
res — результат операции, набор элементов из поля GF(2^l), каждый из которых представляется десятичным числом.