exponenta event banner

algintrlv

Переупорядочение символов с использованием таблицы алгебраически производных перестановок

Синтаксис

intrlvd = algintrlv(data,num,'takeshita-costello',k,h)
intrlvd = algintrlv(data,num,'welch-costas',alph)

Описание

intrlvd = algintrlv(data,num,'takeshita-costello',k,h) переставляет элементы в data используя таблицу перестановок, которая алгебраически выводится с помощью метода Такэситы-Костелло. num - количество элементов в data если data является вектором или числом строк data если data является матрицей с несколькими столбцами. В методе Такэситы-Костелло num должна быть силой 2. Мультипликативный коэффициент, k, должно быть нечетным целым числом, меньшим numи циклический сдвиг, h, должно быть неотрицательным целым числом менее num. Если data является матрицей с несколькими строками и столбцами, функция обрабатывает столбцы независимо.

intrlvd = algintrlv(data,num,'welch-costas',alph) использует метод Welch-Costas. В методе Уэлча-Костаса num+1 должно быть простым числом. alph является целым числом от 1 до num который представляет примитивный элемент конечного поля GF (num+1). Это означает, что каждый ненулевой элемент GF (num+1) может быть выражено как alph возводится к некоторой целочисленной степени.

Примеры

свернуть все

Этот пример иллюстрирует использование метода Уэлча-Костаса алгебраического перемежения.

Определить num такой, что num+1 является простым. Создание данных для чередования.

num = 10; 
ncols = 3; % Number of columns of data to interleave
data = randi([0 num-1],num,ncols); % Random data to interleave

Найдите примитивные многочлены конечного поля GF (число + 1). gfprimfd функция представляет каждый примитивный многочлен в виде строки, содержащей коэффициенты в порядке возрастающих степеней.

pr = gfprimfd(1,'all',num+1)
pr = 4×2

     3     1
     4     1
     5     1
     9     1

Из выходных данных следует, что pr имеет два столбца и что второй столбец состоит только из 1. Другими словами, каждый примитивный многочлен является моническим многочленом первой степени. Это потому, что num+1 является простым. В результате, чтобы найти примитивный элемент, который является корнем каждого примитивного многочлена, найдите корень многочлена, вычитая первый столбец pr из num+1 .

primel = (num+1)-pr(:,1) % Primitive elements of GF(num+1)
primel = 4×1

     8
     7
     6
     2

Теперь определите alph в качестве одного из элементов primel и использовать algintrlv для чередования.

alph = primel(1); 
intrlvd = algintrlv(data,num,'Welch-Costas',alph);

Алгоритмы

  • Перемежитель Такешиты-Костелло использует длинный -num вектор цикла, n-й элемент - mod(k*(n-1)*n/2, num) для целых чисел n от 1 до num. Функция создает вектор перестановки, перечисляя для каждого элемента вектора цикла в порядке возрастания единицу плюс преемник элемента. Фактическая таблица перестановок перемежителя является результатом сдвига элементов вектора перестановок, оставленных на h. (Функция выполняет все вычисления по числам и индексам по модулю num.)

  • Перемежитель Уэлча-Костаса использует перестановку, которая отображает целое число K кому mod(AK,num+1)-1.

Ссылки

[1] Хигард, Крис и Стивен Б. Викер, Turbo Coding, Boston, Kluwer Academic Publishers, 1999.

[2] Такешита, О. Я., и Д. Дж. Костелло, младший, «Новые классы алгебраических перемежителей для турбокодов», Proc. 1998 IEEE Международный симпозиум по теории информации, Бостон, 16-21 августа 1998 года. с. 419.

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

Создание кода C/C + +
Создайте код C и C++ с помощью MATLAB ® Coder™

.

См. также

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