Транспозиция символов с помощью регистров сдвига
intrlved = convintrlv(data,nrows,slope)
[intrlved,state] = convintrlv(data,nrows,slope)
[intrlved,state] = convintrlv(data,nrows,slope,init_state)
intrlved = convintrlv(data,nrows,slope)
транспозиция элементов в data
при помощи набора nrows
внутренние регистры сдвига. Значение задержки k-го регистра сдвига (k-1)*slope
, где k = 1, 2, 3,... nrows
. Прежде чем функция начнет обрабатывать данные, она инициализирует все регистры сдвига с нулями. Если data
является матрицей с несколькими строками и столбцами, функция обрабатывает столбцы независимо.
[intrlved,state] = convintrlv(data,nrows,slope)
возвращает структуру, которая содержит окончательное состояние регистров сдвига. state.value
хранит любые нешифрованные символы. state.index
- индекс следующего регистра, который будет сдвинут.
[intrlved,state] = convintrlv(data,nrows,slope,init_state)
инициализирует регистры сдвига с символами, содержащимися в init_state.value
и направляет первый входной символ в регистр сдвига, на который ссылаются init_state.index
. Структура init_state
обычно является state
выход от предыдущего вызова этой же функции, и не связан с соответствующим обратным перемежителем.
Пример ниже показывает, что convintrlv
является частным случаем более общей функции muxintrlv
. Обе функции дают одинаковые числовые результаты.
x = randi([0 1],100,1); % Original data nrows = 5; % Use 5 shift registers slope = 3; % Delays are 0, 3, 6, 9, and 12. y = convintrlv(x,nrows,slope); % Interleaving using convintrlv. delay = [0:3:12]; % Another way to express set of delays y1 = muxintrlv(x,delay); % Interleave using muxintrlv. isequal(y,y1)
Приведенная ниже выход показывает, что y
, полученный с использованием convintrlv
, и y1
, полученный с использованием muxintrlv
, те же самые.
ans = 1
Другой пример, использующий эту функцию, находится в действии задержек на восстановление сверточно чередующихся данных с использованием MATLAB.
Пример на muxdeintrlv
страница с описанием иллюстрирует, как использовать state
выход и init_state
вход этой функцией; процесс аналогичен для этой функции.
[1] Heegard, Chris, and Stephen B. Wicker, Turbo Coding, Boston, Kluwer Academic Publishers, 1999.