rsgenpoly

Полином генератора кода Рида-Соломона

Описание

пример

genpoly = rsgenpoly(N,K) возвращает порождающий полином узкого смысла [NK] Код Рида-Соломона. Выход genpoly массив Поля Галуа, который представляет коэффициенты порождающего полинома в порядке убывающих степеней. Узкий смысл код BCH является кодом BCH с B = 1. Здесь, порождающий полином узкого смысла (X – α1) (X – α2)... (X – αNK), где α является корнем примитивного полинома по умолчанию для поля GF (N+1). Для получения дополнительной информации смотрите Узкий смысл Коды BCH и коды Рида-Соломона.

пример

genpoly = rsgenpoly(N,K,prim_poly) также задает примитивный полином, prim_poly, для GF (N+1) это имеет α как корень.

пример

genpoly = rsgenpoly(N,K,prim_poly,B) возвращает порождающий полином, (X – αB) (X – αB+1)... (X – αB+NK – 1), где B целое число.

пример

genpoly = rsgenpoly(N,K,prim_poly,B,outputFormat) задает выходной формат genpoly как массив Поля Галуа или массив с двойной точностью.

пример

[genpoly,T] = rsgenpoly(___) также возвращает возможность исправления ошибок [NK] Код Рида-Соломона, T, использование любого из предыдущих синтаксисов входного параметра.

Примеры

свернуть все

Задайте длину кодовой комбинации, n, и передайте длину, k.

n = 7;
k = 3;

Создайте порождающий полином узкого смысла для [n, k] код Рида-Соломона. genpoly массив Поля Галуа, по умолчанию, который представляет коэффициенты этого порождающего полинома в порядке убывающих степеней.

genpoly = rsgenpoly(n,k)
 
genpoly = GF(2^3) array. Primitive polynomial = D^3+D+1 (11 decimal)
 
Array elements = 
 
   1   3   1   2   3

Создайте порождающий полином узкого смысла кода Рида-Соломона относительно примитивного полинома D3+D2+1.

Задайте длину кодовой комбинации, n, передайте длину, k, и примитивный полином D3+D2+1 представленный в десятичной форме.

n = 7;
k = 3;
prim_poly = 13;

Создайте порождающий полином узкого смысла для [nK] Код Рида-Соломона относительно примитивного полинома D3+D2+1 для GF (8). genpoly массив Поля Галуа, по умолчанию, которые представляют коэффициенты этого порождающего полинома в порядке убывающих степеней.

genpoly = rsgenpoly(n,k,prim_poly)
 
genpoly = GF(2^3) array. Primitive polynomial = D^3+D^2+1 (13 decimal)
 
Array elements = 
 
   1   4   5   1   5

Создайте порождающий полином кода Рида-Соломона относительно примитивного полинома по умолчанию.

Задайте длину кодовой комбинации, n, передайте длину, k, и экспонента αB.

n = 7;
k = 3;
b = 4;

Создайте порождающий полином (X-α4)(X-α5)(X-α6)(X-α7), относительно примитивного полинома по умолчанию. genpoly массив Поля Галуа, который представляет коэффициенты этого порождающего полинома в порядке убывающих степеней. Отобразите поддержку с коррекцией ошибок кода.

[genpoly,t] = rsgenpoly(n,k,[],b)
 
genpoly = GF(2^3) array. Primitive polynomial = D^3+D+1 (11 decimal)
 
Array elements = 
 
   1   5   5   3   2
t = 2

Создайте порождающий полином кода Рида-Соломона относительно примитивного полинома D8+D4+D3+D2+1.

Задайте длину кодовой комбинации, n, передайте длину, k, примитивный полином, представленный в десятичной форме и экспоненте αB.

n = 255;
k = 239;
prim_poly = 285;
b = 0;

Создайте порождающий полином для [nK] Код Рида-Соломона. genpoly массив Поля Галуа, который представляет порождающий полином и совместим с DVB-S и WiMAX.

genpoly = rsgenpoly(n,k,prim_poly,b)
 
genpoly = GF(2^8) array. Primitive polynomial = D^8+D^4+D^3+D^2+1 (285 decimal)
 
Array elements = 
 
  Columns 1 through 13

     1    59    13   104   189    68   209    30     8   163    65    41   229

  Columns 14 through 17

    98    50    36    59

Создайте порождающий полином узкого смысла кода Рида-Соломона. Задайте тип выходных данных как массив с двойной точностью.

Задайте длину кодовой комбинации, n, и передайте длину, k.

n = 7;
k = 3;

Создайте порождающий полином узкого смысла для [nK] Код Рида-Соломона. genpoly массив с двойной точностью, который представляет коэффициенты этого порождающего полинома в порядке убывающих степеней. Задайте значения значений по умолчанию для примитивного полинома и экспоненты α входные параметры путем присвоения [] для них.

genpoly = rsgenpoly(n,k,[],[],'double')
genpoly = 1×5

     1     3     1     2     3

Входные параметры

свернуть все

Длина кодовой комбинации в виде целого числа формы N = 2M – 1, где M находится в области значений [3,16]. Для получения дополнительной информации смотрите Ограничения.

Пример: установите N к 15 для M=4.

Передайте длину в виде положительного целого числа. Для получения дополнительной информации смотрите Ограничения.

Примитивный полином в виде положительного целого числа. prim_poly целое число, бинарное представление которого указывает на коэффициенты примитивного полинома. Использовать примитивный полиномиальный GF по умолчанию (N+1), установите prim_poly к []. Для получения дополнительной информации смотрите Примитивные Полиномы По умолчанию.

Пример: 19 задает примитивный полиномиальный D4+D+1 потому что его бинарное представление 10011.

Экспонента α в виде положительного целого числа. α является корнем prim_poly.

Выходной формат genpolyВ виде:

  • 'gf' — выводить массив Поля Галуа.

  • 'double' — выводить массив с двойной точностью значений Поля Галуа.

Для получения дополнительной информации смотрите Работу с Полями Галуа.

Выходные аргументы

свернуть все

Коэффициенты порождающего полинома в порядке убывания, возвращенный как массив Поля Галуа или массив с двойной точностью. genpoly вектор-строка, который представляет коэффициенты порождающего полинома узкого смысла [NK] Код Рида-Соломона в порядке убывающих степеней.

Поддержка исправления ошибок кода, возвращенного как положительное целое число, равняется ⌊ (N K)/2⌋.

Ограничения

  • Допустимые значения для N = 2M – 1, где M является целым числом в области значений [3,16]. Максимальное допустимое значение N = 216 – 1 = 65,535.

  • Допустимые значения для K = [1, N – 1].

Больше о

свернуть все

Примитивные полиномы по умолчанию

Эта таблица приводит примитивный полином по умолчанию, используемый для каждого GF Поля Галуа массивов (2m). Чтобы использовать различный примитивный полином, задайте prim_poly как входной параметр. prim_poly должен быть в области значений [(2m + 1), (2m+1 – 1)] и должен указать на неприводимый полином. Для получения дополнительной информации смотрите Примитивные Полиномы и Представления Элемента.

Значение mПримитивный полином по умолчаниюЦелочисленное представление
1D + 13
2D2 + D + 17
3D3 + D + 111
4D4 + D + 119
5D5 + D2 + 137
6D6 + D + 167
7D7 + D3 + 1137
8D8 + D4 + D3 + D2 + 1285
9D9 + D4 + 1529
10D10 + D3 + 11033
11D11 + D2 + 12053
12D12 + D6 + D4 + D + 14179
13D13 + D4 + D3 + D + 18219
14D14 + D10 + D6 + D + 117475
15D15 + D + 132771
16D16 + D12 + D3 + D + 169643

Расширенные возможности

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