MATLAB è Simulink íà ðóññêîì

https://hub.exponenta.ru/
 

Обработка сигналов и изображений\Communications Toolbox

Список функций CommunicationsToolbox: Низкоуровневые функции помехоустойчивого кодирования и декодирования

  В оглавление \ К следующему разделу \ К предыдущему разделу
CONVINTRLV
Сверточное перемежение с линейным изменением задержки

Синтаксис:

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, которая содержит состояния регистров задержки на момент окончания обработки данных. Поле state.value содержит все еще не попавшие на выход символы. Поле state.index содержит номер регистра, в который должен попасть следующий входной символ.

[intrlved,state] = convintrlv(data,nrows,slope,init_state)
В данном варианте синтаксиса дополнительный входной параметр init_state позволяет задать исходное состояние регистров сдвига. Регистры инициализируются значениями из поля init_state.value, а первый входной символ направляется в регистр с номером, определяемым содержимым поля init_state.index. Структура init_state, как правило, получается в качестве выходного параметра при обработке предыдущего блока данных. Она не имеет отношения к соответствующему деперемежителю.

Примеры

Приведенный ниже пример показывает, что функция convintrlv является частным случаем более общей функции muxintrlv. Обе функции дают одинаковые численные результаты:

x = randint(100,1); % исходные данные 
nrows = 5;          % используем 5 регистров сдвига
slope = 3;          % задержки будут равны 0, 3, 6, 9 и 12
y = convintrlv(x,nrows,slope); % перемежение с помощью convintrlv
delay = [0:3:12];   % явно выражаем набор задережек 
y1 = muxintrlv(x,delay);       % перемежение с помощью muxintrlv
isequal(y,y1)       % сравнение двух результатов
Результат работы этого кода, приведенный ниже, показывает, что вектор y, полученный с помощью функции convintrlv, совпадает с вектором y1, полученным с помощью функции muxintrlv:
ans =
     1
Пример использования выходного параметра state и входного параметра init_state имеется на странице с описанием функции muxdeintrlv; для функции convintrlv все делается аналогично.

Сопутствующие функции: convdeintrlv, muxintrlv, helintrlv.

Литература:
1. Heegard, Chris, and Stephen B. Wicker, Turbo Coding, Boston, Kluwer Academic Publishers, 1999.

В оглавление \ К следующему разделу \ К предыдущему разделу

 

Поиск по сайту:


Система Orphus