comm.gpu.ConvolutionalEncoder

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

Описание

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

Примечание

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

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

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

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

convolutionally кодировать двоичное сообщение:

  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

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

Задайте решетку как структуру 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 = сумма (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

Позвольте изменения значения свойства Системного объекта

Примеры

свернуть все

Передайте закодированный Convolutionally, 8 PSK модулируемый поток битов через канал AWGN.

Создайте основанный на графическом процессоре Сверточный Системный объект Энкодера.

hConEnc = comm.gpu.ConvolutionalEncoder;

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

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

Создайте основанный на графическом процессоре Системный объект Канала AWGN с отношением сигнал-шум семь.

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

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

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

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

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

Создайте Системный объект Коэффициента ошибок, который игнорирует 3 выборки данных перед сравнениями созданий. Полученные данные отстают от передаваемых данных 34 выборками.

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

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

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