Доклад: Теория кодирования в среде MATLAB
genpoly =
1 0 1 1
>> [parmat, genmat] = cyclgen(n,genpoly)
parmat =
1 0 0 1 1 1 0
0 1 0 0 1 1 1
0 0 1 1 1 0 1
genmat =
1 0 1 1 0 0 0
1 1 1 0 1 0 0
1 1 0 0 0 1 0
0 1 1 0 0 0 1 wts = [gfweight(genmat,'gen'), gfweight(parmat,'par'), gfweight(genpoly,n)] wts =
3 3 3
Генерация таблицы зависимости векторов ошибок от синдрома (таблицы декодирования) для двоичных кодов
Синтаксис:
t = syndtable(parmat);
Описание:
t = syndtable(parmat)
Возвращает таблицу декодирования для двоичного корректирующего кода с длиной кодового слова n и длиной сообщения k. Параметр parmat — проверочная матрица кода, имеющая (n – k) строк и n столбцов. Результат t — двоичная матрица, содержащая 2n – k строк и n столбцов. r-я строка матрицы t представляет собой вектор ошибок для принятого двоичного кодового слова, синдром декодирования которого имеет десятичное целочисленное значение r – 1. (Синдром декодирования равен произведению принятого кодового слова и транспонированной проверочной матрицы.) Иными словами, строки матрицы t представляют собой лидеры смежных классов (coset leaders) из стандартного расположения (standard array) для данного кода.
Пример:
Для кода Хэмминга (7, 4).
m = 3; n = 2^m-1; k = n-m; parmat = hammgen(m) % Проверочная матрица parmat =
1 0 0 1 0 1 1
0 1 0 1 1 1 0
0 0 1 0 1 1 1
trt = syndtable(parmat) % Таблица декодирования trt =
0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 1 0
Пусть принятое кодовое слово - [1 1 0 1 1 0 0]
Путем умножения проверочной матрицы на транспонированное кодовое слово вычисляется синдром декодирования.