Перестановка символов с помощью регистров сдвига
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] Хигард, Крис и Стивен Б. Викер, Turbo Coding, Boston, Kluwer Academic Publishers, 1999.