rsgenpoly

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

Описание

пример

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

пример

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(___) также возвращает возможность исправления ошибок [N, K] Код Рида-Соломона, 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;

Создайте полином генератора с узким смыслом для [n, k] Код Рида-Соломона относительно примитивного полинома D3+D2+1 для ГФ (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;

Создайте полином генератора для [n, k] Код Рида-Соломона. 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;

Создайте полином генератора с узким смыслом для [n, k] Код Рида-Соломона. 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+ <reservedrangesplaceholder0> +1 потому что его двоичное представление 10011.

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

Выход genpoly, заданный как:

  • 'gf' - для вывода массива полей Галуа.

  • 'double' - для вывода массива двойной точности значений поля Галуа.

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

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

свернуть все

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

Возможность исправления ошибок кода, возвращенная как положительное целое число, равное ⌊ (NK)/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