Блокируйте декодер
msg = decode(code,n,k,'hamming/fmt',prim_poly)
msg = decode(code,n,k,'linear/fmt',genmat,trt)
msg = decode(code,n,k,'cyclic/fmt',genpoly,trt)
msg = decode(code,n,k)
[msg,err] = decode(...)
[msg,err,ccode] = decode(...)
[msg,err,ccode,cerr] = decode(...)
| Входной параметр | Значение по умолчанию |
|---|---|
fmt | binary
|
prim_poly | gfprimdf(m), где n = 2^m-1 |
genpoly | cyclpoly (n,k) |
trt | Использование syndtable, чтобы составить таблицу декодирования синдрома, сопоставленную с матрицей проверки четности метода |
Функция decode стремится восстанавливать сообщения, которые были закодированы с помощью метода кодирования с коррекцией ошибок. Метод и параметры определения должны совпадать с теми, которые использовались, чтобы кодировать исходное сообщение.
Раздел For All Syntaxes по странице с описанием encode объясняет значения n и k, возможных значений fmt и возможных форматов для code и msg. Необходимо быть знакомы с соглашениями, описанными там перед тем, чтобы читать остальную часть этого раздела. Используя функцию decode с входным параметром code, который не был создан encode функциональные ошибки причины силы.
msg = decode(code,n,k,' декодирует hamming/fmt',prim_poly)code с помощью метода Хэмминга. Для этого синтаксиса n должен иметь форму 2m-1 для некоторого целого числа m больше, чем или равный 3, и k должен равняться n-m. prim_poly является полиномиальным вектором символов или вектором - строкой, который дает бинарные коэффициенты, в порядке возрастающих степеней, примитивного полинома для GF (2 м), который используется в процессе кодирования. Значением по умолчанию prim_poly является gfprimdf (m). Таблица декодирования, что функциональным использованием, чтобы исправить одну ошибку в каждой кодовой комбинации является syndtable (hammgen (m)).
msg = decode(code,n,k,' декодирует linear/fmt',genmat,trt)code, который является линейным блочным кодом, определенным k-by-n порождающая матрица genmat. genmat требуется, как введено. decode пытается исправить ошибки таблица trt декодирования, где trt является 2^(n-k)-by-n матрица.
msg = decode(code,n,k,' декодирует циклический код cyclic/fmt',genpoly,trt)code и пытается исправить ошибки таблица trt декодирования, где trt является 2^(n-k)-by-n матрица. genpoly является полиномиальным вектором символов или вектором - строкой, который дает коэффициенты, в порядке возрастающих степеней, бинарного полинома генератора кода. Значением по умолчанию genpoly является cyclpoly (n,k). По определению, полином генератора для [n, k] циклический код должен иметь степень n-k и должен разделить xn-1.
msg = decode(code,n,k) совпадает с msg = decode(code,n,k,'hamming/binary').
[msg,err] = decode(...) возвращает вектор-столбец err, который дает информацию об исправлении ошибок. Если код является сверточным кодом, err содержит метрические вычисления, используемые в процессе принятия решений декодирования. Для других типов кодов неотрицательное целое число в rth строке err указывает на количество ошибок, исправленных в rth слове message; отрицательное целое число указывает, что существует больше ошибок в rth слове, чем можно исправить.
[msg,err,ccode] = decode(...) возвращает исправленный код в ccode.
[msg,err,ccode,cerr] = decode(...) возвращает вектор-столбец cerr, значение которого зависит от формата code:
Если code является бинарным вектором, неотрицательным целым числом в rth строке vec2mat, cerr указывает на количество ошибок, исправленных в rth кодовой комбинации; отрицательное целое число указывает, что существует больше ошибок в rth кодовой комбинации, чем можно исправить.
Если code не является бинарным вектором, cerr = err.
В зависимости от метода декодирования decode полагается на такие функции низшего уровня как hammgen, syndtable и cyclgen.