comm.gpu.ConvolutionalEncoder

Сверточное кодирование двоичных данных с GPU

Описание

The GPU ConvolutionalEncoder объект кодирует последовательность двоичных входных векторов, чтобы создать последовательность двоичных выходных векторов.

Примечание

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

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

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

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

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

  1. Определите и настройте объект сверточного энкодера. См. «Конструкция».

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

Примечание

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

Конструкция

H = comm.gpu.ConvolutionalEncoder создает Системный объект, H, который сверточно кодирует двоичные данные.

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

H = comm.gpu.ConvolutionalEncoder(TRELLIS,Name,Value) создает объект сверточного энкодера, H. Этот объект имеет TrellisStructure значение свойства установлено в TRELLIS, и другие заданные свойства устанавливаются на заданные значения.

Свойства

TrellisStructure

Структура Trellis сверточного кода

Задайте шпалеру как структуру MATLAB, которая содержит описание шпалеры сверточного кода. Значение по умолчанию является результатом poly2trellis(7, [171 133]). Используйте istrellis функция для проверки, является ли структура допустимой решетчатой структурой.

TerminationMethod

Метод завершения кодированной системы координат

Задайте, как закодированная система координат завершается как один из Continuous | Truncated | Terminated. Значение по умолчанию является Continuous.

Когда вы устанавливаете это свойство на Continuousобъект сохраняет состояния энкодера в конце каждого входного вектора для использования со следующим входным вектором.

Когда вы устанавливаете это свойство на Truncatedобъект обрабатывает каждый входной вектор независимо и сбрасывает свои состояния в состояние всех нулей.

Когда вы устанавливаете это свойство на Terminatedобъект обрабатывает каждый входной вектор независимо. Для каждого входного вектора объект использует дополнительные биты, чтобы установить состояния энкодера в состояние всех нулей в конце вектора. Для кода скорости K/ N, step метод выводит вектор с длиной N×(L+S)K, где S = constraintLength -1. В случае нескольких длин ограничений S = sum (constraintLength (i) -1)). L - длина входа в step способ.

ResetInputPort

Включите вход сброса энкодера

Вы не можете сбросить этот объект энкодера с помощью входа порта. Единственный допустимый параметр свойства false.

DelayedResetAction

Задержка выходного сброса

Вы не можете сбросить этот объект энкодера с помощью входа порта. Единственный допустимый параметр свойства false.

InitialStateInputPort

Вы не можете задать начальное состояние этого объекта энкодера. Единственный допустимый параметр свойства false.

FinalStateOutputPort

Вы не можете вывести окончательное состояние этого объекта энкодера. Единственный допустимый параметр свойства false.

PuncturePatternSource

Источник шаблона направленности

Укажите источник шаблона прокола как один из None | Property. Значение по умолчанию является None. Когда вы устанавливаете это свойство на None объект не применяет прокалывание. Когда вы устанавливаете это свойство на Propertyобъект проколет код. Эта пункция основана на векторе пунктирного шаблона, который вы задаете в PuncturePattern свойство. Это свойство применяется, когда вы устанавливаете TerminationMethod свойство к Continuous или Truncated.

PuncturePattern

Вектор пунктирного шаблона

Задайте шаблон прокола, который объект использует для прокола закодированных данных как вектора-столбца. Значение по умолчанию является [1; 1; 0; 1; 0; 1]. Вектор содержит 1s и 0s, где 0 указывает проколотый, или исключенный, бит. Это свойство применяется, когда вы устанавливаете TerminationMethod свойство к Continuous или Truncated и PuncturePatternSource свойство к Property.

NumFrames

Количество независимых систем координат, присутствующих в векторах входных и выходных данных.

Задайте количество независимых систем координат, содержащихся в одном векторе ввода/вывода данных. Значение по умолчанию этого свойства 1. Объекты сегментируют вектор входа в NumFrames сегментирует и кодирует их независимо. Выходы содержат NumFrames закодированные сегменты. Это свойство применимо, когда вы устанавливаете TerminationMethod на Terminated или Truncated.

Методы

шагСверточное кодирование двоичных данных
Общий для всех системных объектов
release

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

reset

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

Примеры

свернуть все

Передайте сверточно закодированный, 8-PSK-Modulated битовый поток через канал AWGN.

Создайте объект системы сверточного энкодера на базе GPU.

hConEnc = comm.gpu.ConvolutionalEncoder;

Создайте на базе GPU Системного объекта PSK Modulator, который принимает бит входного сигнала.

hMod = comm.gpu.PSKModulator('BitInput',true);

Создайте объект системы канала AWGN на основе GPU с отношением сигнал/шум семь.

hChan = comm.gpu.AWGNChannel('NoiseMethod', ...
         'Signal to noise ratio (SNR)',...
         'SNR',7);

Создайте на базе GPU объект PSK Demodulator System, который выводит вектор-столбец с битовыми значениями.

hDemod = comm.gpu.PSKDemodulator('BitOutput',true);

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

hDec = comm.gpu.ViterbiDecoder('InputFormat','Hard');

Создайте объект Error Rate System, который игнорирует 3 выборки данных перед сравнением заданий. Полученные данные отстают от передаваемых данных на 34 выборки.

hError = comm.ErrorRate('ComputationDelay',3,'ReceiveDelay', 34);

Запустите симуляцию с помощью метода step, чтобы обработать данные.

for counter = 1:20
  data = randi([0 1],30,1);
  encodedData = step(hConEnc, gpuArray(data));
  modSignal = step(hMod, encodedData);
  receivedSignal = step(hChan, modSignal);
  demodSignal = step(hDemod, receivedSignal);
  receivedBits = step(hDec, demodSignal);
  errors = step(hError, data, gather(receivedBits));
end

Отобразите ошибки.

disp(errors)

Алгоритмы

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

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

Введенный в R2012a