comm.gpu. ConvolutionalEncoder

Convolutionally кодируют двоичные данные с графическим процессором

Описание

Объект 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, который convolutionally кодирует двоичные данные.

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]. Вектор содержит 1 s и 0 s, где 0 указывает на проколотый, или исключенный, бит. Это свойство применяется, когда вы устанавливаете свойство TerminationMethod на Continuous или Truncated и свойство PuncturePatternSource к Property.

NumFrames

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

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

Методы

сбросСбросьте состояния сверточного объекта энкодера
шагConvolutionally кодируют двоичные данные
Характерный для всех системных объектов
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