HDL LTE передатчик PBCH

В этом примере показано, как реализовать передатчик LTE, который несколько - вводят, несколько - выводят (MIMO) проект, включая PSS, SSS, CRS и MIB, оптимизированный для генерации HDL-кода.

Введение

Модель в этом примере генерирует основополосную форму волны, заданную 3GPP TS 36.211. Форма волны включает первичный сигнал синхронизации (PSS), вторичный сигнал синхронизации (SSS), специфичные для ячейки опорные сигналы (CRS) и основной блок информации (MIB) для передачи через физический канал телевизионного вещания (PBCH) для нескольких антенн. Модель поддерживает динамическое изменение NCellID и NDLRB. Проект передатчика MIMO оптимизирован для генерации HDL-кода и, когда реализовано на FPGA, это может использоваться, чтобы передать сигналы MIMO в режиме реального времени по воздуху. Проект MIMO помогает процессу декодирования в присутствии LTE, исчезающего канал. Этот пример поддерживает 1, 2, или 4 антенны и использует разнообразие передачи, как задано в [1].

Архитектура, представленная в этом примере, расширяема и допускает интегрирование дополнительных физических каналов передачи, таких как физический нисходящий канал управления (PDCCH), физический нисходящий канал совместно использованный канал (PDSCH), физический канал индикатора формата управления (PCFICH) и физический канал индикатора HARQ (PHICH).

Архитектура и настройка

Этот рисунок показывает архитектуру Передатчика HDL LTE с PSS, SSS, CRS и цепями передачи PBCH.

Входная частота дискретизации принята, чтобы быть на уровне 10,24 МГц. PSS, SSS, PBCH и сигналы CRS сгенерированы параллельно, на основе входной настройки. Единый поток PSS и сигналов SSS используется для всех антенн. Несколько потоков данных PBCH сгенерированы для нескольких антенн посредством отображения слоя и предварительного кодирования этапов. Каждая антенна сопоставлена с соответствующим сегментом памяти LTE, который измерен, чтобы сохранить один подкадр выборок данных о LTE. Эти сгенерированные потоки данных записаны в сегмент памяти LTE, соответствующий сгенерированным индексам, на основе выхода готовый сигнал LTE Модулятор OFDM. Затем данные считываются из всего сегмента памяти LTE параллельно, модулируются и передаются на антеннах одновременно. Блок LTE OFDM Modulator использует БПФ с 2048 точками, чтобы поддержать весь NDLRBs.

В этом примере передатчик передает LTE сигналы MIMO для следующих настроек:

        Property              Value       
    ________________    __________________

    Duplex mode         FDD               
    CellRefP            1/2/4             
    Bandwidth           1.4 - 20 MHz      
    Cyclic prefix       Normal/Extended   
    Initial subframe    0                 
    Initial frame       0                 
    Ng                  Sixth/Half/One/Two
    PHICH duration      Normal/Extended   

Структура модели в качестве примера

Структуру верхнего уровня ltehdlTransmitter модели показывают ниже. Можно сгенерировать HDL-код для LTE HDL подсистема Передатчика MIMO.

Введите запускаются, импульсный сигнал инициировать передачу. Можно сконфигурировать другие параметры, включая NDLRB, NCellID, Циклический префикс, Ына, длительность PHICH и CellRefP в рабочей области после загрузки или открытия ltehdlTransmitter.slx модель. ltehdlTransmitter_init.m скрипт выполняется автоматически InitFcn модели 'callback'. Этот скрипт конфигурирует отдельные блоки в LTE HDL подсистема Передатчика MIMO. Настройка передатчика по умолчанию используется ltehdlTransmitter_init.m скрипт:

enb.NDLRB = 6;                      % {6,15,25,50,75,100}
enb.CyclicPrefix = 'Normal';        % {'Normal','Extended'}
enb.Ng = 'Sixth';                   % {'Sixth','Half','One','Two'}
enb.PHICHDuration = 'Normal';       % {'Normal','Extended'}
enb.CellRefP = 4;                   % {1,2,4}
tx_cellids = [390 89 501 231 500];  % {0 to 503}
outRate = 1;                        % {1,2}
TotalSubframes = 45;                % {positive integer}

Эта настройка по умолчанию может быть изменена, чтобы использовать другие возможные значения для каждой переменной, как отмечено в комментарии к каждой линии.

LTE HDL передатчик MIMO

Структуру LTE HDL подсистема Передатчика MIMO показывают ниже. Контроллер Системы координат управляет индексы системы координат и подкадр. Входной Сэмплер производит входные параметры NDLRB и NCellID и затем распространяет значения с последующими блоками. Генерация The PSS & SSS генерирует PSS, SSS и соответствующий адрес памяти на основе индекса подкадра и NDLRB. Блок генерации MIB генерирует последовательные данные о MIB. Энкодер BCH и Энкодер PBCH генерируют информацию для канала PBCH и адреса памяти для всех антенн. Цепь CellRS генерирует специфичные для ячейки опорные сигналы и соответствующие адреса для каждой антенны. Логика Записи Чтения пишет и считывает данные о сетке из каждого Сегмента памяти LTE и предоставляет данные соответствующему LTE Модулятор OFDM. Оптимизированные фильтры HDL Фильтра Дискретного КИХ модулируемые данные с помощью коэффициентов, которые вычисляются на основе входной настройки.

Структурируйте контроллер

Эта подсистема принимает входную частоту дискретизации 10,24 МГц. Это управляет подкадром и радио-контурами системы координат путем обеспечения cellEnb сигнала произвести NCellID. Это возвращает радио-систему координат и индексы подкадра. Это также обеспечивает syncStart, bchStart, и триггерные сигналы cellRSStart управлять нисходящими блоками.

PSS & SSS Генерация

Эта подсистема генерирует первичный сигнал синхронизации (PSS), вторичный сигнал синхронизации (SSS), и соответствующие адреса записи для Сегмента памяти LTE на основе входных параметров NDLRB и NCellID. syncStart инициировали генерацию PSS и SSS. PSS и SSS занимают те же центральные 62 поднесущих двух символов OFDM в сетке ресурса [1]. Эта подсистема генерирует и сигналы и их соответствующие адреса одновременно, так, чтобы единый поток и PSS и SSS мог быть записан во все Сегменты памяти LTE, соответствующие каждой антенне одновременно.

Последовательность PSS сгенерирована от Последовательности Задова-Чу частотного диапазона [1]. Корневой индекс последовательности Zadoff-Чу зависит от NCellID2, который выведен из NCellID. Существует три возможных значения NCellID2, таким образом, все возможные последовательности PSS предварительно вычисляются и хранятся в PSS_LUT.

  • PSS_generation: Определяет NCellID2 и читает соответствующую последовательность PSS из PSS_LUT последовательно.

  • PSS_indices: Вычисляет адреса памяти, требуемые записать данные PSS в Сегмент памяти LTE. Эта подсистема эквивалентна функции LTE Toolbox™ ltePSSIndices.

Последовательность SSS является чередованной конкатенацией двух 31-битных двоичных последовательностей длины. Конкатенированная последовательность скремблирована с борющейся последовательностью, данной PSS. Комбинация этих последовательностей отличается между подкадром 0 и подкадром 5 [1]. Индексы m0 и m1 выведены из единичной группы ячейки физического уровня, NCellID1 [1]. Эти индексы и последовательности s (n), c (n), и z (n) вычисляются и хранятся в m0_LUT, m1_LUT, S_LUT, C_LUT, и Z_LUT соответственно.

  • SSS_generation: Вычисляет m0 и m1 на основе NCellID и вычисляет индексы, требуемые для последовательностей s (n), c (n), и z (n) на основе индекса подкадра. Генерирует последовательность SSS, как задано в [1].

  • SSS_indices: Вычисляет адреса памяти, требуемые записать данные SSS в Сегмент памяти LTE. Эта подсистема эквивалентна функции LTE Toolbox™ lteSSSIndices.

Энкодер BCH

Канал телевизионного вещания (BCH) обрабатывает информацию о MIB, прибывающую в блок в форме максимума одного транспортного блока для каждого временного интервала передачи (TTI) 40 мс. Блок реализует выполняющие шаги кодирования.

  • Кодирование CRC: целый транспортный блок используется, чтобы вычислить биты четности CRC для полинома, заданного в [2]. Биты четности затем добавлены с транспортным блоком. После добавления биты CRC скремблированы согласно настройке передачи. Блок LTE CRC Encoder использует комплект масок CRC ltehdlTransmitter_init.m скрипт на основе входной настройки.

  • Кодирование канала: блок LTE Convolutional Encoder кодирует информационные биты с помощью кусающего хвост сверточного кода с продолжительностью ограничения 7, и полином$$ G_0 = 133, G_1 = 171, G_2 = 165 $$ в восьмеричном. Поскольку уровень кодирования энкодера является 1/3, закодированные биты затем сериализируются с помощью блока Serializer1D (HDL Coder), и управляющие сигналы передискретизируются к 30,72 МГц (3 * 10,24 МГц).

  • Уровень, Соответствующий: закодированные биты чередуются, сопровождаются выбором битов для особой длины с помощью чередованного адреса [2]. Для канала телевизионного вещания, потому что длина MIB является постоянной, чередованной записью и считала адреса, предварительно вычисляются и хранятся в wr_addrLUT и rd_addrLUT соответственно. Если все сериализированные закодированные биты были записаны в чередованные адреса RAM, биты читаются назад с помощью чередованных адресов чтения.

Энкодер PBCH

Физический канал телевизионного вещания обрабатывает закодированные биты в следующих шагах.

  • Скремблирование: Закодированные биты от Энкодера BCH скремблированы со специфичной для ячейки последовательностью с помощью блока LTE Gold Sequence Generator. Последовательность инициализируется NCellID в каждой радио-системе координат ($$ n_f $$) выполнение$$ n_f mod 4 = 0 $$. Сгенерированная специфичная для ячейки последовательность скремблирована с закодированными битами входа.

  • Отображение QPSK: схема модуляции, заданная для канала PBCH, является QPSK [1]. Блок LTE Symbol Modulator генерирует символы модуляции QPSK с комплексным знаком.

  • Отображение слоя: Три подсистемы заданы для отображения слоя. Эти подсистемы помещаются в различной подсистеме. На основе количества антенн, используемых во входной настройке enb.CellRefP, ltehdlTransmitter_init.m скрипт выбирает одну из этих трех подсистем в различной подсистеме. Этот блок Layer Mapping разделяет входные выборки потоковой передачи в 1, 2, или 4 последовательности на основе количества используемых антенн. Вход передается потоком без любой обработки для одной антенны. Для нескольких антенн этот блок генерирует допустимый сигнал для каждой антенны. Только один из допустимых сигналов будет высок для каждой входной выборки.

  • Предварительное кодирование: Этот блок также использует различную подсистему, чтобы обработать входные выборки по-другому на основе количества антенн в настройке передатчика. Для enb.CellRefP установите на 1, вход передается потоком без любой обработки. Для enb.CellRefP установите на 4 (или 2), каждые четыре (или два) последовательные выборки X0, X1, X2, X3 (или X0, X1) обрабатываются, чтобы сгенерировать четыре (или два) потоки 4 (или 2) выборки каждый в четыре (или два) моменты времени.

Показанная подсистема генерирует выходную последовательность для 4 антенн, как задано в [1].

  • Память: модулируемые символы Комплекса, соответствующие физическому каналу телевизионного вещания для начальной радио-системы координат, хранятся в PBCH_RAM. Для четырех последовательных радио-систем координат количество битов, которые будут переданы на физическом канале телевизионного вещания, 1920 для нормального циклического префикса и 1728 для расширенного циклического префикса. Контроллер Записи Чтения управляет чтением и адресами записи на основе$$ n_f mod 4 $$, поскольку периодичность канала телевизионного вещания (BCH) составляет 40 мс.

  • Индексация PBCH: Вычисляет адреса памяти, требуемые записать данные PBCH в Сегмент памяти LTE. Подсистема PBCH_indices эквивалентна функции LTE Toolbox™ ltePBCHIndices.

Цепь CellRS

Специфичная для ячейки ссылочная последовательность является комплексными модулируемыми значениями псевдослучайной последовательности, как задано в [1]. Псевдослучайный генератор последовательности инициализируется$$ c_{init} $$ в начале каждого символа OFDM, как задано в [1].

  • CellRS_generation: Введите триггеры cellRSStart генерация сигналов CRS. Поскольку CRS доступен в шести символах OFDM (четыре символа OFDM в порте антенны 0 и порте 1, и два символа OFDM в порте антенны 2 и порте 3) одного подкадра, эта подсистема вычисляет$$ c_{init} $$ вектор с 6 элементами для каждого подкадра. Блок LTE Gold Sequence Generator инициализируется вектором$$ c_{init} $$, чтобы представлять несколько каналов и обеспечивает шесть различных специфичных для ячейки псевдослучайных последовательностей. Контроллер Записи управляет записью этих последовательностей в шесть сегментов памяти в CellRS_RAM. Это также возвращает rd_en, который позволяет считать данные из CellRS_RAM. Контроллер Чтения управляет чтением данных о CRS. Это читает шесть символов OFDM, если четыре антенны используются, и читает только 4 символа OFDM, если одна или две антенны используются. Это возвращает rd_bank и сигналы rd_valid выбрать соответствующий символ для шести/четырех символов OFDM. Последовательность затем сопоставлена, чтобы объединить модулируемые символы QPSK.

  • CellRS_indices: Эта подсистема вычисляет адреса для каждого Сегмента памяти LTE, требуемого записать данные о CRS. Это эквивалентно функции LTE Toolbox™ lteCellRSIndices.

Считайте логику записи

Подсистема Логики Записи Чтения содержит Селектор Записи, Селектор Чтения, четыре Сегмента памяти LTE с Выбором Банка Сетки, сопоставленным с каждым Сегментом памяти LTE. Емкость памяти Сегмента памяти LTE является одним подкадром модулируемых символов комплекса в самой большой поддерживаемой пропускной способности LTE (20 МГц). Каждый Сегмент памяти LTE может сохранить 14 x 2 048 x 16-битных комплексных чисел, то есть, 14 символов OFDM, каждый содержащий 2 048 комплексных чисел.

Селектор Записи пишет подкадры данных в сегменты памяти. PSS и SSS занимают центральные поднесущие. Единый поток PSS и данных SSS используется для всех антенн. Данные PBCH состоят из нескольких потоков, соответствующих каждому порту антенны. Сгенерированные данные о CRS сопоставлены с сеткой на основе четырех адресов, сгенерированных для каждого Сегмента памяти LTE в блоке CellRS_indices. Селектор Записи сначала пишет PSS и SSS одновременно в соответствующие местоположения во всех Сегментах памяти LTE. Затем это пишет данные PBCH и данные о CRS в соответствующие Сегменты памяти LTE и возвращает rd_enb, чтобы указать, что запись завершена.

Рид Селектор читает выборки из каждого Сегмента памяти LTE на основе rd_enb и готовый от блока LTE OFDM Modulator. Каждый Сегмент памяти LTE возвращает 14 соответствий вектора элемента одной поднесущей. Выбор Банка Сетки выбирает соответствующую выборку из 14 векторов элемента, чтобы сформировать сетку ресурса выход для каждой антенны.

Поскольку осциллограф этого примера ограничивается PSS, SSS, CRS и передачей PBCH, все Сегменты памяти LTE стираются в начале каждого подкадра, прежде, чем записать новые данные в память.

Модуляция OFDM и фильтрация

Данные о сетке из Сегмента памяти LTE OFDM-модулируются с помощью блока LTE OFDM Modulator с 'Набором параметров' частоты дискретизации выходных данных, чтобы 'Совпадать с частотой дискретизации выходных данных к NDLRB'. Модулируемые данные отфильтрованы с помощью блока Discrete FIR Filter HDL Optimized (DSP System Toolbox) с коэффициентами, сгенерированными на частоте дискретизации, соответствующей NDLRB. Различные подсистемы управляют количеством модуляторов OFDM и КИХ-фильтров, используемых на основе количества антенн, которое уменьшает использование ресурса, когда одна антенна используется.

Верификация и результаты

После выполнения симуляции, ltehdlTransmitter_PostSim.m скрипт выполняется автоматически StopFcn коллбэк модели. В этом примере передатчик вывел, проверяется следующими методами:

Верификация переданного сигнала модели:

Выходной сигнал передатчика в этой модели перекрестный проверяется со ссылочным сигналом передатчика, который сгенерирован с помощью функций LTE Toolbox™ следующими двумя подграфиками для каждой антенны.

  1. Первый подграфик показывает Power Spectral Density (PSD) выход отфильтрованных данных. Результат по сравнению с PSD ссылочного выходного сигнала, сгенерированного с помощью LTE Toolbox™. Это сравнение показывает эквивалентность двух сигналов. Рисунок показывает пропускную способность передачи BW = 1.4 МГц.

  2. Второй подграфик показывает абсолютное значение переданной формы волны. Результат построен сверх абсолютного значения ссылочного сигнала передатчика, сгенерированного с помощью LTE Toolbox™. График также показывает различие между выборками, полученными посредством реализации HDL и опорного сигнала. Это сравнение показывает минимальную ошибку между двумя сигналами передатчика.

Ячейка Search & MIB Decoding Results:

Допустимые выборки выходного сигнала передатчика хранятся к переменной txSamples рабочей области. Эти выборки передаются через LTE, исчезающий канал, чтобы создать входной сигнал приемника, rxSamples. lteFadingChannel (LTE Toolbox) модели функции LTE, исчезающий канал.

Этот пример использует следующую настройку канала:

chcfg.NRxAnts = 1;
chcfg.MIMOCorrelation = 'Medium';
chcfg.NormalizeTxAnts = 'On';
chcfg.DelayProfile = 'EPA';               % {'off','EPA'}
% The below model configuration exist only if Delay profile is not set
% to 'off'.
chcfg.DopplerFreq = 5;
chcfg.SamplingRate = 30.72e6;
chcfg.InitTime = 0;
chcfg.NTerms = 16;
chcfg.ModelType = 'GMEDS';
chcfg.NormalizePathGains = 'On';
chcfg.InitPhase = 'Random';
chcfg.Seed = 1;

Чтобы создать канал без исчезновений, установите chcfg.DelayProfile к 'off' в ltehdlTransmitter_PostSim.m скрипт.

Эта настройка канала работает с enb по умолчанию структура и поддержки изменяются только в enb.PHICHDuration и enb.Ng поля .

Следующие рисунки показывают результаты поиска ячейки и декодирования MIB канала выход, rxSamples, использование LTE toolbox™ функции. Эти фигуры проверяют эффективность передатчика и сравнивают реализацию передатчика HDL с входной настройкой, заданной в tx_cellids и enb.

  • NCellID после Поиска Ячейки: Отображает результаты поиска ячейки LTE, выполняемые на исчезающем канале выход.

  • Настройки всей ячейки после декодирования MIB: Отображает поля MIB после декодирования MIB - NDLRB, Ын, длительность PHICH и Системный номер системы координат (SFN), выполняемый на исчезающем канале выход.

Модель в качестве примера не поддерживает симуляцию в быстром режиме Accelerator.

Валидация с поиском ячейки и примером восстановления MIB

Можно проверить HDL LTE пример Передатчика PBCH путем соединения его с моделью Восстановления MIB HDL LTE в качестве примера и проверки, что выход передатчика декодируется правильно. Чтобы сделать модель передатчика совместимой с моделью приемника, внесите эти изменения в передатчик:

  • Установите outRate = 2 (значение по умолчанию 1) прежде, чем запустить модель. Это установит норму выработки каждого LTE Модулятор OFDM и сгенерирует коэффициенты фильтра ели, сопоставленные с каждым антенны.

  • Установите enb.CellRefP = 2 (значение по умолчанию 4) прежде, чем запустить модель.

  • Используйте тот же NCellID поскольку все радио структурирует в передаче. т.е. набор tx_cellids к скалярному значению в области значений 0-503.

Рисунок показывает LTE HDL Передатчик MIMO и подсистемы Восстановления MIB LTE HDL, соединенные вместе. Это также показывает результат симуляции модели. Блоки отображения показывают поля CellID и MIB (NDLRB, Ын, длительность PHICH и Системный номер системы координат (SFN)), что приемник декодировал от выхода LTE HDL подсистему Передатчика MIMO.

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

Генерация HDL-кода

Чтобы проверять и сгенерировать HDL для этого примера, у вас должна быть лицензия HDL Coder™. Используйте makehdl и makehdltb команды, чтобы сгенерировать HDL-код и испытательный стенд для LTE HDL подсистема Передатчика MIMO. Поскольку stopTime в этом примере зависит от TotalSubframes, время генерации испытательного стенда зависит от TotalSubframes.

LTE HDL подсистема Передатчика MIMO синтезируется на оценочной плате Xilinx® Zynq®-7000 ZC706. Место сообщения и результаты использования ресурса маршрута показывают в приведенной ниже таблице.

         Resources          No. of antennas used = 1    No. of antennas used = 2    No. of antennas used = 4
    ____________________    ________________________    ________________________    ________________________

    Slice Registers                  12788                       23839                       45787          
    Slice LUT                        11984                       22220                       42861          
    RAMB36                           41                          82                          164            
    RAMB18                           11                          21                          41             
    DSP                              49                          93                          177            
    Max. Frequency (MHz)             210.08                      206.39                      204.75         

Ссылки

  1. 3GPP TS 36.211 "Физические каналы и модуляция".

  2. 3GPP TS 36.212 "Мультиплексирование и кодирование канала".

Похожие темы