Переставьте символы с помощью сдвиговых регистров
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 внутренние сдвиговые регистры. Значением задержки kth сдвигового регистра является (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 вывод от предыдущего вызова до этой той же функции и не связан с соответствующим deinterleaver.
Пример ниже показов, что 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
Другой пример с помощью этой функции имеет в действительности Задержки на Восстановлении Convolutionally Чередованные Данные Используя MATLAB.
Пример на странице с описанием muxdeintrlv иллюстрирует, как использовать state вывод и вход init_state с этой функцией; процесс аналогичен для этой функции.
[1] Heegard, Крис, и Стивен Б. Викер, турбокодирование, Бостон, Kluwer академические издатели, 1999.