Depuncturer

Схема обратного прокалывания для подготовки к декодированию

  • Библиотека:
  • Беспроводной HDL Toolbox/Обнаружение и коррекция ошибок

  • Depuncturer block

Описание

Блок Depuncturer заменяет проколотые символы на нейтральные значения по направлению входного вектора прокола. Блок возвращает биты стирания, которые указывают на наличие нейтральных символов в выходном потоке данных. Блок поддерживает непрерывный и кадровый режимы работы. Он обеспечивает интерфейс и архитектуру, подходящие для генерации HDL-кода и аппаратного развертывания.

Многие стандарты радиосвязи реализуют различные скорости кода путем прокалывания шаблонов с базовой скоростью кода 1/2. Вход в блок является потоком одной выборки за раз. Можно предоставить выборки, представленные двоичными значениями с твердым решением или коэффициентами логарифмической правдоподобности (LLR) с мягким решением. Блок возвращает выходные выборки как векторы 2 на 1.

Вставленное нейтральное значение зависит от типа данных входов выборки. Для получения дополнительной информации смотрите вход data порт.

Порты

Вход

расширить все

Входная выборка, заданная как скаляр. Блок вставляет нейтральное значение в проколотые местоположения на основе типа данных входных выборок.

Тип входных данныхВставленное нейтральное значение
  • boolean

  • fixdt(0,1,0)

0
fixdt(0,WL,0)2(WL-1)
uint8128
uint1632768
  • fixdt(1,WL,0)

  • int8

  • int16

  • single

  • double

0

Блок обрабатывает вход как выборки с твердым решением, когда тип входа Boolean или fixdt(0,1,0). Для подписанных и беззнаковых числовых типов блок принимает выборки с мягким решением. Блок обрабатывает выборки как целые числа со знаком для single и double типы данных, но эти типы данных не поддерживаются для генерации HDL-кода.

Выборка входа должна иметь размер слова, меньшую или равную 16 битам, и длину дроби, равную 0 битам.

Типы данных: int8 | int16 | uint8 | uint16 | Boolean | fixdt(0,1,0) | fixdt(S,WL,0) | single | double

Вектор прокола, заданный как вектор-столбец двоичных значений. Длина вектора прокола должна быть четным числом в области значений [4, 28]. Длина должна оставаться постоянной. Блок удаляет начальные нули из предоставленного вектора, вплоть до первого 1 (true). После первого 1 (true), вектор прокола не может содержать какой-либо подвектор [1:0], соответствующий [0 0].

Например, стандарт WLAN [1] IEEE 802.11 поддерживает скорости прокола 2/3, 3/4 и 5/6 с соответствующими длинами вектора 4, 6 и 10. Чтобы поддержать эти многочисленные скорости, установите Puncture vector source равным Input port. Чтобы поддержать самый большой размер вектора, длина вектора должна быть 10 для всех скоростей. Для скоростей 2/3 и 3/4 дополните puncVector вход нулями, чтобы создать вектор с 10 элементами. Вектор прокола для скорости 3/4 [1 1 0 1 1 0]'. Для длины вектора 10 используйте [0 0 0 0 1 1 0 1 1 0]' как входной puncVector.

Когда Operation mode установлено на Continuousблок захватывает значение puncVector, когда и syncPunc, и входной valid порты 1 (true).

Когда Operation mode установлено на Frameблок захватывает значение puncVector, когда оба ctrl .start и ctrl .valid являются 1 (true).

Зависимости

Чтобы включить этот порт, установите Puncture vector source равным Input port.

Типы данных: Boolean

Сигнал пунктирной синхронизации, заданный как Boolean скалярное значение. Этот вход является управляющим сигналом, который синхронизирует вход вектора прокола с входной выборкой. Когда и syncPunc, и valid 1 (true), блок выравнивает вектор прокола, чтобы начать проколы. Блок захватывает вектор из порта puncVector входа или из параметра Puncture vector. Блок игнорирует puncVector порт, когда syncPunc 0 (false).

Зависимости

Чтобы включить этот порт, установите Operation mode равным Continuous. Когда Operation mode Frameблок синхронизирует вектор прокола, используя сигналы управления в шине входа ctrl.

Типы данных: Boolean

Управляющий сигнал, который указывает, когда выборка из data входа порта действительна. Когда valid 1 (true), блок захватывает значения data входного порта. Когда valid 0 (false), блок игнорирует вход выборки.

Зависимости

Чтобы включить этот порт, установите Operation mode равным Continuous.

Типы данных: Boolean

Сигналы управления, сопровождающие поток дискретизации, заданные как samplecontrol bus. Шина включает в себя start, end, и valid управляющие сигналы, которые указывают контуры системы координат и валидность выборок.

Зависимости

Чтобы включить этот порт, установите Operation mode равным Frame.

Типы данных: bus

Выход

расширить все

Выходная выборка, возвращенный как вектор-столбец 2 на 1. Тип данных совпадает с типом данных входных выборок.

Типы данных: int8 | int16 | uint8 | uint16 | Boolean | fixdt(0,1,0) | fixdt(S,WL,0) | single | double

Управляющий сигнал, который указывает, когда выборка от data выходного порта действительна. Блок устанавливает valid порт равным 1 (true), когда существует допустимый образец на выход data порте.

Зависимости

Активируйте этот порт, установите Operation mode на Continuous.

Типы данных: Boolean

Управляющие сигналы, сопровождающие поток дискретизации, возвращаются как samplecontrol bus. Шина включает в себя start, end, и valid управляющие сигналы, которые указывают контуры системы координат и валидность выборок.

Зависимости

Чтобы включить этот порт, установите Operation mode равным Frame.

Типы данных: bus

Нейтральные положения символов, возвращенные как вектор-столбец 2 на 1, соответствующий выходным выборкам. Когда erasure 1 (true), соответствующий выход data элемент является депункционированным нейтральным значением.

Типы данных: Boolean

Параметры

расширить все

Конец поведения системы координат, заданный как один из следующих режимов:

  • Continuous - Разрешить изменения в puncVector в любое время. Чтобы заставить блок захватить новый вектор прокола, установите syncPunc на 1(true). Этот сигнал показывает ufix4 входные выборки, вычеркнутые в Continuous режим.

  • Frame - Вы можете изменить puncVector только в начале системы координат, обозначенной ctrl .start. Этот сигнал показывает ufix4 входные выборки, вычеркнутые в Frame режим.

Источник вектора прокола, заданный как:

  • Input port - Задайте вектор прокола, используя puncVector порт.

  • Property - Задайте вектор прокола, используя параметр Puncture vector.

Вектор прокола, заданный как вектор-столбец двоичных значений. Длина вектора прокола должна быть четным числом в области значений [4, 28]. Значение по умолчанию является вектором прокола для скорости кода 3/4 WLAN IEEE 802.11 [1].

Вектор прокола не может содержать никаких подвекторов [1:0], соответствующих [0 0].

Зависимости

Чтобы включить этот порт, установите Puncture vector source равным Property.

Алгоритмы

расширить все

Алгоритм выражения смещается через каждый подвектор [1:0] вектора прокола. Подвектор имеет три допустимых шаблона: [0 1], [1 0] или [1 1]. На основе подвектора вместо проколотых образцов вставляют нейтральные выборки. Выход стирания является обратным подвектору прокола. Блок возвращает ошибку, когда встречается с недопустимым подвектором [0 0].

Ссылки

[1] Стандарт IEEE Std 802.11ac™-2013 IEEE на информационные технологии - Телекоммуникации и обмен информацией между системами - Локальные и столичные сети - Особые требования - Часть 11: Беспроводное управление средним доступом к локальной сети (MAC) и физический уровень (PHY) Спецификации - Поправка 4: Улучшения для очень высокого

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

.

См. также

Блоки

Введенный в R2018b