- •5. Мониторинг процесса выполнения курсового проекта
- •Протокол заседания комиссии по защите курсовой работы
- •Содержание
- •Введение Помехоустойчивое кодирование
- •Циклические коды
- •Алгебраические свойства циклических кодов
- •Порождающая и проверочная матрицы циклического кода
- •Аппаратная реализация циклических кодов
- •Декодирование циклических кодов
- •Листинги программ.
- •Тестирование программ
- •Вывод по курсовой работе.
- •Список литературы
Тестирование программ
Показания программы работы кодера (7,4) у нас есть сообщение 1100 мы их хотим закодировать в результате получаем код 1100010.таким образом при делении на образующий многочлен мы дописали вконец остаток из 3 бит 010.Также мы видим, что каждый бит лежит в своем регистре.
Пример декодирования без ошибок, так как вес остатка w=0.
Пример декодирования с исправлением ошибки. Мы сделали ошибку в 4-м информационном бите.
Декодирование с исправлением ошибки происходит за счет деления на образующий многочлен x^3+x+1 и циклических сдвигов влево до тех пор пока w не равно 1,как только это происходит последний остаток складывается с последним делимым многочленом и делается циклические сдвиги в право ровно столько раз сколько есть весов остатков не равных 1. Мы видим, что сообщение с ошибкой 1101010 успешно исправлено и декодировано и получено 1100.
Вывод по курсовой работе.
В работе рассматриваются свойства циклических кодов. Во введении даны общие сведения о помехоустойчивом кодировании, описаны виды и источники помех. Кратко разобраны общие принципы построения помехоустойчивых кодов, дана их классификация.
В первом разделе дано понятие циклического кода и математический аппарат построения и использования. Подытоживая, скажем, что систематический код можно генерировать так:
1. Умножаем полином сообщения на ;
2. Делим на , чтобы получить остаток ; и
3. Добавляем к .
Ниже мы продемонстрируем, как эти вычисления можно выполнить, используя сдвиговые регистры с обратной связью.
Поскольку или, что эквивалентно, , мы видим, что полиномы и ортогональны. Далее, полиномы и также ортогональны для всех и . Однако, векторы, соответствующие полиномам и , ортогональны только, если порядок следования элементов одного из этих векторов реверсировать. То же утверждение применимо к векторам, соответствующим полиномам и . Действительно, если проверочный полином используется как порождающий для дуального кода, ансамбль кодовых слов, полученный так, включают в себя те же кодовые слова, которые генерируются обратным полиномом, за исключением того, что кодовые векторы реверсированы. Это подразумевает, что порождающая матрица для дуального кода, полученная от обратного полинома , может быть также получить непосредственно от . Поскольку проверочная матрица для циклического кода является порождающей матрицей для дуального кода, следует, что также можно получить от .
Покажем, что код Хемминга Нr является циклическим.
Теорема. Код Нг является циклическим с порождающим многочленом g(x) = M1(x), где M1(x) - минимальный многочлен примитивного элемента а поля GF(2r).
Доказательство. Пусть а - примитивный элемент GF(2r). Ненулевые элементы поля представляются степенями примитивного элемента. Рассматривая GF(2r) как r-мерное векторное пространство над GF(2), используем однозначное соответствие степеней а и двоичных ненулевых г-мерных векторов-столбцов для представления проверочной матрицы кода Нr.
Нг = (1,а,а2,...,а2r)
Пусть
f = (c0,c1,...,cn-1)ϵНr.
Тогда
Последнее равенство означает, что α есть корень многочлена с(х). Обозначим посредством М1(x) минимальный многочлен элемента α. Тогда по свойствам минимального многочлена имеет место M1(x)|C(x), то есть фактор-кольцо [Нr] состоит из всех многочленов, кратных M1(x); следовательно, [Нr] - главный идеал с порождающим многочленом M1(x), а [Нr]- циклический код.
