exponenta event banner

comm.gpu. ConvolutionalInterleaver

Перестановка входных символов с помощью регистров сдвига с графическим процессором

Описание

GPU ConvolutionalInterleaver объект переставляет символы во входном сигнале, используя графический процессор (GPU). Внутри этого класса используется набор регистров сдвига.

Примечание

Для использования этого объекта необходимо установить лицензию Parallel Computing Toolbox™ и получить доступ к соответствующему графическому процессору. Дополнительные сведения о графических процессорах см. в разделе Вычисления графических процессоров (панель инструментов параллельных вычислений).

Системный object™ на базе графического процессора принимает типичные массивы или объекты MATLAB ®, созданные с помощью gpuArray класс. Системный объект на основе GPU поддерживает входные сигналы с типами данных с двойной или одинарной точностью. Выходной сигнал наследует тип данных из входного сигнала.

  • Если входной сигнал представляет собой матрицу MATLAB, объект System обрабатывает передачу данных между CPU и GPU. Выходной сигнал представляет собой матрицу MATLAB.

  • Если входной сигнал является gpuArrayданные остаются на GPU. Выходной сигнал представляет собой gpuArray. Когда объекту присваивается значение gpuArrayвычисления выполняются полностью на GPU, и передача данных не происходит. Прохождение gpuArray аргументы обеспечивают повышение производительности за счет сокращения времени моделирования. Дополнительные сведения см. в разделе Создание массивов на графическом процессоре (панель инструментов параллельных вычислений).

Для сверточного перемежения двоичных данных:

  1. Определите и настройте сверточный объект перемежителя. См. раздел Строительство.

  2. Звонить step для сверточного перемежения в соответствии со свойствами comm.gpu.ConvolutionalInterleaver. Поведение step относится к каждому объекту на панели инструментов.

Примечание

Начиная с R2016b, вместо использования step для выполнения операции, определенной объектом System, можно вызвать объект с аргументами, как если бы это была функция. Например, y = step(obj,x) и y = obj(x) выполнять эквивалентные операции.

Строительство

H = comm.gpu.ConvolutionalInterleaver создает объект системы сверточного перемежителя на основе GPU, H. Этот объект переставляет символы во входном сигнале, используя набор регистров сдвига.

H = comm.gpu.ConvolutionalInterleaver(Name,Value) создает объект системы сверточного перемежителя на основе GPU, H, с указанным свойством Name установить в указанное значение Value. Можно указать дополнительные аргументы пары имя-значение в любом порядке как (Name1,Value1,...,NameN,ValueN).

H = comm.gpu.ConvolutionalInterleaver(M,B,IC) создает объект системы сверточного перемежителя на основе GPU H, с NumRegisters свойство имеет значение M, RegisterLengthStep свойство имеет значение B, и InitialConditions свойство имеет значение IC. M, B, и IC являются аргументами, предназначенными только для значений. Чтобы задать аргумент только для значения, необходимо также указать все предшествующие аргументы только для значения.

Свойства

NumRegisters

Количество регистров внутренних смен

Укажите число внутренних регистров сдвига как скалярное положительное целое число. Значение по умолчанию: 6.

RegisterLengthStep

Количество дополнительных символов, которые помещаются в каждом последовательном сдвиговом регистре

Укажите количество дополнительных символов, которые помещаются в каждом последовательном сдвиговом регистре как положительное скалярное целое число. Значение по умолчанию: 2. Первый регистр содержит нулевые символы.

InitialConditions

Исходные условия сдвиговых регистров

Укажите значения, которые первоначально хранятся в каждом сдвиговом регистре как числовой скаляр или вектор. Не нужно указывать значение для первого сдвигового регистра, который имеет нулевую задержку. Значение по умолчанию: 0. Значение первого элемента этого свойства неважно, поскольку первый сдвиговый регистр имеет нулевую задержку. Если для этого свойства задано значение скаляра, то все регистры сдвига, за исключением первого, сохраняют одно и то же заданное значение. Если задать вектор столбца длиной, равной значению NumRegisters свойство, то i-й сдвиговый регистр сохраняет i-й элемент указанного вектора.

Методы

шагПерестановка входных символов с помощью регистров сдвига
Общие для всех системных объектов
release

Разрешить изменение значения свойства объекта системы

reset

Сброс внутренних состояний объекта System

Примеры

свернуть все

Создание сверточного перемежителя и объектов обращенного перемежителя.

interleaver = comm.gpu.ConvolutionalInterleaver('NumRegisters',2, ...
    'RegisterLengthStep',3);
deinterleaver = comm.gpu.ConvolutionalDeinterleaver('NumRegisters',2, ...
    'RegisterLengthStep',3);

Генерируют данные и пропускают их через сверточный перемежитель. Передача перемеженных данных через сверточный обращенный перемежитель.

data = (0:20)';
intrlvData = interleaver(data);
deintrlvData = deinterleaver(intrlvData);

Отображение исходной последовательности, чередующейся последовательности и восстановленной последовательности.

[data intrlvData deintrlvData]
ans =

     0     0     0
     1     0     0
     2     2     0
     3     0     0
     4     4     0
     5     0     0
     6     6     0
     7     1     1
     8     8     2
     9     3     3
    10    10     4
    11     5     5
    12    12     6
    13     7     7
    14    14     8
    15     9     9
    16    16    10
    17    11    11
    18    18    12
    19    13    13
    20    20    14

Задержка через пару перемежителя и обращенного перемежителя равна произведению NumRegisters и RegisterLengthStep свойства. После учета этой задержки подтвердите, что исходные и обращенно перемеженные данные идентичны.

intrlvDelay = interleaver.NumRegisters * interleaver.RegisterLengthStep
numSymErrors = symerr(data(1:end-intrlvDelay),deintrlvData(1+intrlvDelay:end))
intrlvDelay =

     6


numSymErrors =

     0

Алгоритмы

Этот объект реализует алгоритм, входы и выходы, описанные на странице ссылок блока сверточного перемежителя. Свойства объекта соответствуют параметрам блока.

Расширенные возможности

Представлен в R2012a