LTE Turbo Encoder

Закодируйте двоичные выборки с помощью турбо алгоритма

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

  • LTE Turbo Encoder block

Описание

Блок LTE Turbo Encoder реализует турбо- энкодер, описанную в стандарте LTE TS 36.212 [1], используя интерфейс и архитектуру, оптимизированную для генерации HDL-кода и оборудования развертывания. Энкодер является параллельным сверточным кодом (PCCC) с двумя составляющими энкодерами 8 состояний и внутренним перемежителем. Первый энкодер работает с входным потоком данных, а второй энкодер работает с перемеженной версией входных данных. Блок завершает каждый выход энкодера независимыми хвостовыми битами. Скорость кодирования составляет 1/3. Закодированные выходные биты для каждого входного бита возвращаются как вектор 3 на 1, [S P1 P2]. В этом векторе S - систематический бит, и P1 и P2 являются битами четности от двух энкодеров.

Этот блок использует интерфейс потоковой выборки с шиной для связанных сигналов управления. Этот интерфейс позволяет блоку работать независимо от формата кадра и легко соединяться с другими блоками Toolbox™ Wireless HDL. Блок принимает и возвращает значение, представляющее одну выборку, и шину, содержащую три сигнала управления. Эти сигналы указывают валидность каждой выборки и контуров системы координат. Чтобы преобразовать матрицу в поток сэмплирования и эти сигналы управления, используйте блок Frame To Samples или whdlFramesToSamples функция. Полное описание интерфейса см. в разделе Потоковый пример интерфейса.

Блок может принять новые входные данные после завершения предыдущей системы координат. Примените входные кадры не менее BlockSize + 16 оборотов холостого хода между ними. 16 циклов состоят из 12 циклов для задержек трубопровода в алгоритме и 4 циклов хвостовых бит. Эта задержка не зависит от размера блока. Или можно использовать сигнал выхода ctrl end. чтобы определить, когда блок готов к новому входу.

Эта форма волны показывает входной кадр из 40 выборок с 57 циклами простоя между системами координат. Входная и выходная шины ctrl расширены, чтобы показать сигналы управления. start и end показать контуры кадра и valid определяет выборки данных. Необязательные сигналы tail1 и tail2 указывают циклы, когда конечные биты от каждого энкодера действительны.

Порты

Вход

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

Входная выборка, заданная как двоичный скаляр. double и single поддерживаются для симуляции, но не для генерации HDL-кода.

Типы данных: single | double | Boolean | ufix1

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

  • start - Указывает начало входного кадра

  • end - Указывает конец входного кадра

  • valid - Указывает, что данные входного data порта действительны

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

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

Размер блока Turbo кода, заданный как целое число. Это значение должно быть одним из 188 значений, заданных в стандарте LTE, от 40 до 6144 в следующих интервалах: [40:8:512 528:16:1024 1056:32:2048 2112:64:6144].

Зависимости

Этот порт появляется, когда вы задаете Block size source Input port.

Типы данных: single | double | uint16 | fixdt(0,13,0)

Выход

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

Закодированный поток сэмпла, возвращенный как вектор-столбец 3 на 1. Каждая закодированная выборка представлена одним систематическим битом и двумя битами четности.

Тип выходных данных соответствует типу входных данных.

Типы данных: single | double | Boolean | ufix1

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

  • start - Указывает начало выходной системы координат

  • end - Указывает конец выходной системы координат

  • valid - Указывает, что данные выходного data порта действительны

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

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

Используйте дополнительные tail1 и tail2 выходные порты, чтобы указать местоположение конечных бит в выходном потоке данных. Эти сигналы 1 (true) для циклов, которые соответствуют конечным битам для каждого энкодера.

Блок возвращает хвостовые биты в порядке, заданном стандартом LTE TS 36.212 [1]. Каждый энкодер возвращает два цикла закодированных хвостовых бит.

Цикл1234
tail11100
tail20011
data[E1inK E1outK E1inK+1] [E1outK+1 E1inK+2 E1outK+2][E2inK E2outK E2inK+1][E2outK+1 E2inK+2 E2outK+2]

Зависимости

Включите эти порты, выбрав Enable trellis termination valid ports.

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

Параметры

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

Выберите, задаете ли вы размер блока с помощью входа порта или введите фиксированное значение в качестве параметра. Если вы выбираете Property, появляется параметр Block size. Если вы выбираете Input portПоявится blockSize порт.

Размер блока Turbo кода, заданный как целое число. Это значение должно быть одним из 188 значений, заданных в стандарте LTE, от 40 до 6144 в следующих интервалах: [40:8:512 528:16:1024 1056:32:2048 2112:64:6144]. Это значение регистрируется для каждой системы координат при ctrl start. = 1 (true).

Зависимости

Этот параметр появляется, когда вы задаете Block size source Property.

Когда вы выбираете этот параметр, на блоке появляются tail1 и tail2 порты. Эти порты возвращают управляющие сигналы, которые указывают циклы, когда выходные выборки являются конечными битами для каждого энкодера.

Совет

Алгоритмы

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

Для аппаратной реализации хранение индексов чередования нецелесообразно. Для поддержки 188 блоков LTE потребуется 4 Мб памяти. Поэтому алгоритм использует спецификацию чередования, чтобы вычислить индексы из размера блока. Это уравнение задает шаблон чередования:

(i)=(f1i+f2i2)modK

K - размер блока, i = 0, 1,..., (K - 1), и f1 и f2 заданы в стандарте LTE TS 36.212 [1].

Вычисление индексов упрощается на основе этих уравнений:

π(i+1)={π(i)+g(i)          если π(i)+g(i)<Kπ(i)+g(i)K   иначеπ(0)=0

g(i+1)={g(i)+2f2          если g(i)+2f2<Kg(i)+2f2K   иначеg(0)=f1+f2

Поэтому блок хранит f1 и f2 в памяти и использует эти две константы и четыре сумматора, чтобы вычислить индексы чередования.

Когда Block size source установлено на Propertyблок использует два постоянных коэффициента, чтобы вывести считанные адреса для фиксированного размера блока. Когда Block size source установлено на Input portалгоритм сохраняет 188 пар коэффициентов в ПЗУ (< 5 Kb). Затем блок считывает соответствующую пару во время исполнения, чтобы вывести адреса чтения чередования памяти.

Ссылки

[1] 3GPP TS 36.212. «Мультиплексирование и канальное кодирование». 3rd Генерация Partnership Project; Группа технических спецификаций Radio Доступа Network; Evolved Universal Terrestrial Radio Access (E-UTRA). URL-адрес: https://www.3gpp.org.

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

.

См. также

Блоки

Функции

Введенный в R2017b