exponenta event banner

comm.gpu. ConvolutionalEncoder

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

Описание

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

Примечание

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

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

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

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

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

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

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

Примечание

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

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

H = comm.gpu.ConvolutionalEncoder создает объект System, 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

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

reset

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

Примеры

свернуть все

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

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

hConEnc = comm.gpu.ConvolutionalEncoder;

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

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

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

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

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

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)

Алгоритмы

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

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

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