MATLAB è Simulink íà ðóññêîì

https://hub.exponenta.ru/
Обработка сигналов и изображений\Communications Toolbox

Список функций CommunicationsToolbox: Помехоустойчивое кодирование и декодирование

  В оглавление \ К следующему разделу \ К предыдущему разделу

BCHPOLY
Генерация параметров или порождающего полинома для двоичного кода БЧХ

Синтаксис:

bchpoly
params = bchpoly
params = bchpoly(n);
genpoly = bchpoly(n,k);
genpoly = bchpoly(primpoly,k);
[genpoly,factors] = bchpoly(...,k);
[genpoly,factors,cosets] = bchpoly(...,k);
[genpoly,factors,cosets,parmat] = bchpoly(...,k);
[genpoly,factors,cosets,parmat,errorcorr] = bchpoly(...,k);

Описание:

  • bchpoly

Выводит графическое окно, содержащее таблицу возможных длин кодового слова (N) и блока исходного сообщения (K), а также корректирующих способностей (T) для двоичных кодов БЧХ. Данная информация выводится для длин кодового слова, равных 7, 15, 31, 63, 127, 255 и 511.

  • params = bchpoly

Возвращает трехстолбцовую матрицу, содержащую ту же информацию, что и таблица, выводимая на экран в предыдущем варианте синтаксиса. Первый столбец матрицы params содержит длину кодового слова, второй — длину блока исходного сообщения, третий — корректирующую способность кода.

  • params = bchpoly(n)

Возвращает ту же информацию, что и в предыдущем варианте синтаксиса, для кодов с минимально возможной длиной кодового слова, не меньшей чем n. Таким образом, длина кодового слова, указанная в первом столбце матрицы params, равна минимальному целому числу вида 2m – 1 (m — целое число, не меньшее трех), не меньшему чем n. Третий столбец матрицы, содержащий корректирующую способность кодов, возвращается только при n < 1024.

  • genpoly = bchpoly(n,k)

Возвращает порождающий полином для двоичного кода БЧХ с длиной кодового слова n и длиной блоков исходного сообщения k. Результат genpoly представляет собой вектор-строку, содержащий коэффициенты порождающего полинома кода в порядке возрастания степеней. Значение n должно быть равно 2m – 1 для некоторого целого m, не меньшего 3. Значение k должно быть допустимой длиной блока исходного сообщения (эти допустимые значения содержатся во втором столбце матрицы, возвращаемой при вызове функции в форме params = bchpoly(n)). Для вычислений в конечном поле GF(2m) используется примитивный полином по умолчанию, возвращаемый функцией gfprimdf(m).

  • genpoly = bchpoly(primpoly,k)

Возвращает порождающий полином для двоичного кода БЧХ с длиной кодового слова n и длиной блоков исходного сообщения k. Входной параметр primpoly представляет примитивный полином степени m над конечным полем GF(2m). Параметры primpoly и genpoly представляют собой векторы-строки, содержащие коэффициенты полиномов в порядке возрастания степеней. Длина кодового слова n определяется степенью примитивного полинома m следующим образом: n = 2m – 1. Второй входной параметр k должен быть допустимой длиной блока исходного сообщения (эти допустимые значения содержатся во втором столбце матрицы, возвращаемой при вызове функции в форме params = bchpoly(n)).

Возможны также дополнительные варианты синтаксиса, имеющие вид

  • [genpoly,...] = bchpoly(...,k)

и возвращающие ряд дополнительных параметров, перечисленных в следующей таблице.

Таблица. Дополнительные выходные параметры для синтаксиса bchpoly(...,k) 

Выходной параметр Significance Format
factors Неприводимые множители, произведение которых дает порождающий полином Двоичная матрица, каждая строка которой содержит коэффициенты полиномов-множителей в порядке возрастания степеней
cosets Циклотомические классы для конечного поля GF(2m) То же, что gfcosets(m)
parmat Проверочная матрица кода Двоичная матрица с (n – k) столбцами и n строками
errorcorr Корректирующая способность кода Положительное целое число

Примеры

Приведенный ниже код использует функцию bchpoly для поиска допустимых длин блоков исходного сообщения при длине кодового слова кода БЧХ, равной 24 – 1 = 15. Затем выбирается одна из допустимых длин блоков исходного сообщения и еще раз используется функция bchpoly — для расчета порождающего полинома и проверочной матрицы кода.

m = 4;
n = 2^m-1; % Длина кодового слова равна 15
% Поиск допустимых длин блоков исходного сообщения
params = bchpoly(n);
disp(['Possible message lengths are ',num2str(params(:,2)')])
disp(' ')
ii = 1; % Выбираем первый из предложенных вариантов
k = params(ii,2); % Длины блоков исходного сообщения содержатся во втором столбце матрицы
% Получаем порождающий полином и другую информацию о выбранном коде
[genpoly,factors,cosets,parmat,errorcorr] = bchpoly(n,k);
disp(['For k = ',num2str(k),' the generator polynomial is'])
gfpretty(genpoly)
disp('and the parity-check matrix is')
parmat

Далее представлен экранный вывод, производимый данным примером.

Possible message lengths are    11    7     5
For k = 11 the generator polynomial is
                     4
        1 + X + X
and the parity-check matrix is
parmat =
Columns 1 through 12

1 0 0 0 1 0 0 1 1 0 1 0
0 1 0 0 1 1 0 1 0 1 1 1
0 0 1 0 0 1 1 0 1 0 1 1
0 0 0 1 0 0 1 1 0 1 0 1

Columns 13 through 15
1 1 1
1 0 0
1 1 0
1 1 1

Сопутствующие функции: cyclpoly, encode, decode.

Литература:

Peterson, W. Wesley and E. J. Weldon, Jr. Error-correcting Codes, 2nd ed. Cambridge, Mass.: MIT Press, 1972.

  В оглавление \ К следующему разделу \ К предыдущему разделу


Поиск по сайту:


Система Orphus