decode

Синтаксис

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 функционируйте стремится восстанавливать сообщения, которые были закодированы с помощью метода кодирования с коррекцией ошибок. Метод и параметры определения должны совпадать с теми, которые использовались, чтобы кодировать исходное сообщение.

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 должен равняться nM. prim_poly полиномиальный вектор символов или вектор-строка, который дает бинарные коэффициенты, в порядке возрастающих степеней, примитивного полинома для GF (2 м), который используется в процессе кодирования. Значение по умолчанию prim_poly gfprimdf(m). Таблица декодирования, что функциональным использованием, чтобы откорректировать одну ошибку в каждой кодовой комбинации является syndtable(hammgenM.

msg = decode(code,n,k,'linear/fmt',genmat,trt) декодирует code, который является линейным блочным кодом, определенным k- n порождающая матрица genmat. genmat требуется, как введено. decode попытки откорректировать ошибки таблица trt декодирования, где trt 2^(n-k)- n матрица.

msg = decode(code,n,k,'cyclic/fmt',genpoly,trt) декодирует циклический код code и попытки откорректировать ошибки таблица trt декодирования, где trt 2^(n-k)- n матрица. genpoly полиномиальный вектор символов или вектор-строка, который дает коэффициенты, в порядке возрастающих степеней, бинарного полинома генератора кода. Значение по умолчанию genpoly cyclpoly(n,k). По определению, полином генератора для [nK] циклический код должен иметь степень 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 строке vec2matcerr указывает на количество ошибок, откорректированных в rth кодовой комбинации; отрицательное целое число указывает, что существует больше ошибок в rth кодовой комбинации, чем можно откорректировать.

  • Если code не бинарный вектор, cerr = err.

Примеры

свернуть все

Установите значения длины сообщения и длины кодовой комбинации.

n = 15; % Codeword length
k = 11; % Message length

Создайте случайное двоичное сообщение с длиной, равной длине сообщения.

data = randi([0 1],k,1);

Закодируйте сообщение.

encData = encode(data,n,k,'hamming/binary');

Повредите закодированную последовательность сообщения путем представления ошибки в четвертом бите.

encData(4) = ~encData(4);

Декодируйте поврежденную последовательность. Заметьте, что декодер правильно восстановил сообщение.

decData = decode(encData,n,k,'hamming/binary');
numerr = biterr(data,decData)
numerr = 0

Алгоритмы

В зависимости от метода декодирования, decode использует такие функции низшего уровня как hammgen, syndtable, и cyclgen.

Смотрите также

| | |

Представлено до R2006a