rsenc

Рид-Соломоновы энкодер

Синтаксис

code = rsenc(msg,n,k)
code = rsenc(msg,n,k,genpoly)
code = rsenc(...,paritypos)

Описание

code = rsenc(msg,n,k) кодирует сообщение в msg использование [n, k] Код Рида-Соломона с полиномом генератора с узким смыслом. msg - массив Галуа из символов, имеющих m бит каждый. Каждый k-элементная строка msg представляет слово сообщения, где самый левый символ является самым значимым символом. n самое большее 2m-1. Если n не совсем 2m- 1, rsenc использует укороченный код Рида-Соломона. Символы четности находятся в конце каждого слова в выходе массиве Галуа code.

code = rsenc(msg,n,k,genpoly) совпадает с синтаксисом выше, за исключением того, что непустое значение genpoly задает полином генератора для кода. В этом случае genpoly - вектор-строка Галуа, которая перечисляет коэффициенты, в порядке нисходящих степеней, полинома генератора. Полином генератора должен иметь степень n-k. Чтобы использовать полином генератора с узким смыслом по умолчанию, установите genpoly на [].

code = rsenc(...,paritypos) задает, rsenc добавляет или готовит символы четности к входу сообщению для формирования code. paritypos может быть либо 'end' или 'beginning'. Значение по умолчанию является 'end'.

Примеры

свернуть все

Установите параметры кода.

m = 3;           % Number of bits per symbol
n = 2^m - 1;     % Codeword length 
k = 3;           % Message length

Создайте два сообщения на основе GF (8).

msg = gf([2 7 3; 4 0 6],m)
 
msg = GF(2^3) array. Primitive polynomial = D^3+D+1 (11 decimal)
 
Array elements = 
 
   2   7   3
   4   0   6

Сгенерируйте кодовые слова RS (7,3).

code = rsenc(msg,n,k)
 
code = GF(2^3) array. Primitive polynomial = D^3+D+1 (11 decimal)
 
Array elements = 
 
   2   7   3   3   6   7   6
   4   0   6   4   2   2   0

Коды являются систематическими, поэтому первые три символа каждой строки совпадают с строками msg.

Ограничения

n и k должно отличаться целым числом. n от 7 до 65535.

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