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) использует валлийский-Costas метод. В валлийском-Costas методе, num+1 должно быть простое число. alph целое число между 1 и num это представляет примитивный элемент конечного поля GF (num+1). Это означает что каждый ненулевой элемент GF (num+1) может быть описан как alph повышенный до некоторой целочисленной степени.

Примеры

свернуть все

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

Задайте num таким образом, что num+1 isprime. Создайте данные, чтобы чередоваться.

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). gfprimfd функция представляет каждый примитивный полином как строку, содержащую коэффициенты в порядке возрастающих степеней.

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

     3     1
     4     1
     5     1
     9     1

Заметьте от выхода что pr имеет два столбца и что второй столбец состоит только из 1 с. Другими словами, каждый примитивный полином является monic степенью один полином. Это вызвано тем, что num+1 isprime. В результате, чтобы найти примитивный элемент, который является корнем каждого примитивного полинома, найдите корень полинома путем вычитания первого столбца 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);

Алгоритмы

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

  • Валлийский-Costas interleaver использует сочетание, которое сопоставляет целочисленный K к mod (AK, num+1)-1.

Ссылки

[1] Heegard, Крис, и Стивен Б. Викер, турбокодирование, Бостон, Kluwer академические издатели, 1999.

[2] Takeshita, O. Y. и Д. Дж. Костелло младший, “Новые Классы Алгебраического Interleavers для Турбокодов”, Proc. 1 998 IEEE Международный Симпозиум по Теории информации, Бостону, 16-21 августа 1998. p. 419.

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

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

Смотрите также

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