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) использует метод Уэлча-Костаса. В методе Уэлча-Костаса 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 (num + 1). The 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 длины вектор цикла, чей nth-й элемент mod(k*(n-1)*n/2, num) для целых чисел n от 1 до num. Функция создает вектор сочетания путем перечисления, для каждого элемента вектора цикла в порядке возрастания, одного плюс преемник элемента. Фактическая таблица сочетаний является результатом перемены элементов вектора сочетания влево h. (Функция выполняет все расчеты чисел и индексов по модулю num.)

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

Ссылки

[1] Heegard, Chris, and Stephen B. Wicker, Turbo Coding, Boston, Kluwer Academic Publishers, 1999.

[2] Takeshita, O. Y., and D. J. Costello, Jr., «Новые классы алгебраических перемежителей для турбокодов», Proc. 1998 IEEE International Symposium on Information Theory, Boston, 16-21 августа 1998 года. с. 419.

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

Генерация кода C/C + +
Сгенерируйте код C и C++ с помощью Coder™ MATLAB ®

.

См. также

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