Блочный энкодер
code = encode(msg,n,k,'linear/fmt',genmat)
code = encode(msg,n,k,'cyclic/fmt',genpoly)
code = encode(msg,n,k,'hamming/fmt',prim_poly)
code = encode(msg,n,k)
[code,added] = encode(...)
encode функция кодирует сообщения с помощью одного из следующих методов кодирования с коррекцией ошибок:
Линейный блок
Циклический
Хэмминг
Для всех этих методов длиной кодовой комбинации является n и длиной сообщения является k.
msg, то, которое представляет сообщения, может иметь один из нескольких форматов. Таблица Information Formats показывает, какие форматы позволены для msg, как аргумент fmt должен отразить формат msg, и как формат выхода code зависит от этого выбора. Примеры в таблице для k = 4. Если fmt не задан, как введено, его значением по умолчанию является binary.
Информационные форматы
Размерность msg | Значение fmt Аргумента | Размерность code |
|---|---|---|
| Столбец двоичных данных или вектор-строка | binary
| Столбец двоичных данных или вектор-строка |
Пример: msg = [0 1 1 0, 0 1 0 1, 1 0 0 1].' | ||
Бинарная матрица с k столбцы | binary
| Бинарная матрица с n столбцы |
Пример: msg = [0 1 1 0; 0 1 0 1; 1 0 0 1] | ||
Вектор-столбец или вектор-строка из целых чисел в области значений [0, 2^k-1] | decimal
| Вектор-столбец или вектор-строка из целых чисел в области значений [0, 2^n-1] |
Пример: msg = [6, 10, 9].' | ||
Если 2^n или 2^k является большим, используйте binary по умолчанию формат вместо decimal формат. Это вызвано тем, что функция использует двоичный формат внутренне, в то время как ошибка округления, сопоставленная с преобразованием многих битов к большим десятичным числам и назад, может быть существенной.
code = encode(msg,n,k,' кодирует linear/fmt',genmat)msg использование genmat как порождающая матрица для линейного метода кодирования блока. genmat, k- n матрица, требуется, как введено.
code = encode(msg,n,k,' кодирует cyclic/fmt',genpoly)msg и создает систематический циклический код. genpoly полиномиальный вектор символов или вектор-строка, который дает коэффициенты, в порядке возрастающих степеней, бинарного полинома генератора. Значение по умолчанию genpoly cyclpoly(n,k). По определению, полином генератора для [n, k] циклический код должен иметь степень n-k и должен разделить xn-1.
code = encode(msg,n,k,' кодирует hamming/fmt',prim_poly)msg использование метода кодирования Хэмминга. Для этого синтаксиса, n должен иметь форму 2m-1 для некоторого целого числа m больше, чем или равный 3, и k должен равняться nM. prim_poly полиномиальный вектор символов или вектор-строка, который дает бинарные коэффициенты, в порядке возрастающих степеней, примитивного полинома для GF (2 м), который используется в процессе кодирования. Значение по умолчанию prim_poly примитивный полиномиальный gfprimdf по умолчаниюM.
code = encode(msg,n,k) совпадает с code = encode(msg,n,k,'hamming/binary').
[code,added] = encode(...) возвращает дополнительную переменную added. added количество нулей, которые были помещены в конце матрицы сообщения прежде, чем закодировать для матрицы, чтобы иметь соответствующую форму. “Соответствующий” зависит от nK, форма msg, и метод кодирования.
В зависимости от метода кодирования, encode использует такие функции низшего уровня как hammgen и cyclgen.