Декодируйте сверточно закодированные данные с использованием алгоритма Viterbi на графическом процессоре
Чтобы использовать этот объект, необходимо установить Parallel Computing Toolbox™ и иметь доступ к соответствующему графическому процессору. Для больше о графических процессорах, смотрите, что графический процессор Вычисляет (Parallel Computing Toolbox).
comm.gpu.ViterbiDecoder
Система object™ декодирует convolutionally закодированные вводимые символы, чтобы произвести символы двоичного выхода при помощи алгоритма Viterbi с графическим процессором (GPU).
Основанный на графическом процессоре Системный объект принимает типичный MATLAB® массивы или объекты создали использование gpuArray
класс. Основанный на графическом процессоре Системный объект поддерживает входные сигналы с двойным - или типы данных с одинарной точностью. Выходной сигнал наследовал свой тип данных от входного сигнала.
Если входной сигнал является массивом MATLAB, Системный объект обрабатывает передачу данных между центральным процессором и графическим процессором. Выходной сигнал является массивом MATLAB.
Если входным сигналом является gpuArray
, данные остаются на графическом процессоре. Выходным сигналом является gpuArray
. Когда объекту дают gpuArray
, вычисления происходят полностью на графическом процессоре, и никакая передача данных не происходит. Передача gpuArray
аргументы обеспечивают увеличенную эффективность путем сокращения времени симуляции. Для получения дополнительной информации смотрите, Устанавливают Массивы на графическом процессоре (Parallel Computing Toolbox).
Декодировать convolutionally закодированные данные с помощью алгоритма Viterbi с помощью графического процессора:
Создайте comm.gpu.ViterbiDecoder
объект и набор его свойства.
Вызовите объект с аргументами, как будто это была функция.
Чтобы узнать больше, как Системные объекты работают, смотрите то, Что Системные объекты?
создает основанный на графическом процессоре Системный объект Декодера Витерби.gpuViterbiDec
= comm.gpu.ViterbiDecoder
устанавливает gpuViterbiDec
= comm.gpu.ViterbiDecoder(trellis)TrellisStructure
свойство к trellis
.
Свойства наборов с помощью одних или нескольких аргументов name-value в дополнение к любой из комбинаций входных аргументов в предыдущих синтаксисах. Например, gpuViterbiDec
= comm.gpu.ViterbiDecoder(___,Name
,Value
)'TerminationMethod','Continuous'
задает метод завершения как непрерывный, чтобы сохранить метрику внутреннего состояния в конце каждой системы координат для использования со следующей системой координат.
задает вход, чтобы сбросить внутренние состояния декодера. Чтобы включить этот синтаксис, установите decmsg
= gpuViterbiDec(codeword
,resetstate
)TerminationMethod
свойство к 'Continuous'
и ResetInputPort
свойство к true
.
Чтобы использовать объектную функцию, задайте Системный объект как первый входной параметр. Например, чтобы выпустить системные ресурсы Системного объекта под названием obj
, используйте этот синтаксис:
release(obj)
[1] Sklar, Бернард. Цифровая связь: основные принципы и приложения. Englewood Cliffs, NJ: Prentice Hall, 1988.
[2] Moision, B. "Эмпирическое правило глубины усечения для сверточных кодов". В теории информации и семинаре приложений (27 января 2008 - 1 февраля 2008, Сан-Диего, Калифорния), 555-557. Нью-Йорк: IEEE, 2008.
[3] Fettweis, G. и Х. Меир. “Архитектуры прямого распространения для Параллельного Декодирования Viterbi”. Журнал Систем Обработки сигналов VLSI для Сигнала, Изображения и Видео Технологии 3, № 1-2 (июнь 1991): 105–19. https://doi.org/10.1007/BF00927838.