exponenta event banner

comm.gpu. BlockInterleaver

Создание чередующейся последовательности блоков с помощью графического процессора

Описание

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

Примечание

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

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

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

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

Для чередования входного сигнала:

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

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

Примечание

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

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

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

H = comm.gpu.BlockInterleaver(Name,Value) создает объект перемежителя блоков на основе GPU, H, с указанным свойством Name установить в указанное значение Value.

H = comm.gpu.BlockInterleaver(PERMVEC) создает объект обращенного перемежителя блоков на основе GPU, H, с PermutationVector свойство имеет значение PERMVEC.

Свойства

PermutationVector

Вектор перестановки

Укажите сопоставление, используемое для перестановки входных символов в виде вектора столбца целых чисел. Значение по умолчанию: [5;4;3;2;1]. Отображение является вектором, где число элементов равно длине, N, ввода в ступенчатый способ. Каждый элемент должен быть целым числом между 1 и N, без повторяющихся значений.

Методы

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

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

Алгоритм

GPU Block Interleaver Системный объект использует тот же алгоритм, что и comm.BlockInterleaver Системный объект. См. раздел Алгоритмы на comm.BlockInterleaver для получения подробной информации.

Примеры

свернуть все

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

interleaver = comm.gpu.BlockInterleaver([3 4 1 2]');
deinterleaver = comm.gpu.BlockDeinterleaver([3 4 1 2]');

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

data = randi(7,4,1);
intData = interleaver(data);
deIntData = deinterleaver(intData);

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

[data intData deIntData]
ans =

     6     1     6
     7     7     7
     1     6     1
     7     7     7

Убедитесь, что исходные и обращенные данные идентичны.

isequal(data,deIntData)
ans =

     1

Создайте случайный вектор уникальных целых чисел в качестве вектора перестановки.

permVec = randperm(7)';

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

interleaver = comm.gpu.BlockInterleaver(permVec);
deinterleaver = comm.gpu.BlockDeinterleaver(permVec);

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

data = randi(10,7,1);
intData = interleaver(data);
deIntData = deinterleaver(intData);

Убедитесь, что исходные и обращенные данные идентичны.

isequal(data,deIntData)
ans =

     1

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

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