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 является главным. Создайте данные, чтобы чередоваться.

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 является главным. В результате, чтобы найти примитивный элемент, который является корнем каждого примитивного полинома, найдите корень полинома путем вычитания первого столбца 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