Переставьте символы с помощью сдвиговых регистров
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.