Блокируйте декодер
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
.