LTE HDL 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).

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

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

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

В этом примере передатчик передает сигналы 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-код для подсистемы HDL LTE MIMO Transmitter.

Входной запуск является импульсным сигналом для запуска передачи. Можно сконфигурировать другие параметры, включая NDLRB, NCellID, Циклический префикс, Ng, длительность PHICH и CellRefP в рабочей области после загрузки или открытия ltehdlTransmitter.slx модель. The ltehdlTransmitter_init.m скрипт выполняется автоматически моделью InitFcn коллбэк. Этот скрипт конфигурирует отдельные блоки в подсистеме HDL LTE MIMO Transmitter. Передатчик по умолчанию строение используемый 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 MIMO HDL

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

Кадровый контроллер

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

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

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

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

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

  • PSS_indices: Вычисляет адреса памяти, необходимые для записи данных PSS в LTE Memory Bank. Эта подсистема эквивалентна функции 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 Memory Bank. Эта подсистема эквивалентна функции 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 соответственно. Если все сериализованные закодированные биты записаны в перемеженные адреса ОЗУ, биты считываются обратно с использованием перемеженных адресов чтения.

PBCH- Энкодера

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

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

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

  • Сопоставление слоев: Для отображения слоев определены три подсистемы. Эти подсистемы помещены в альтернативную подсистему. На основе количества антенн, используемых во входном строении enb.CellRefP, а ltehdlTransmitter_init.m скрипт выбирает одну из трех подсистем в подсистеме варианта. Этот блок Отображения слоев разделяет входные потоковые выборки на 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 Memory Bank. Подсистема PBCH_indices эквивалентна функции LTE Toolbox™ ltePBCHIndices.

Функции CellRS Цепи

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

  • CellRS_generation: Input 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. Контроллер Read контролирует чтение данных CRS. Он считывает шесть символов OFDM, если используются четыре антенны, и считывает только 4 символа OFDM, если используются одна или две антенны. Он возвращает rd_bank и rd_valid сигналы, чтобы выбрать соответствующий символ для шести/четырех символов OFDM. Последовательность затем преобразуется в комплексные модулированные QPSK символы.

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

Логика записи чтения

Логическая подсистема чтения записи содержит селектор записи, селектор чтения, четыре банка памяти LTE с выбором банка сетки, сопоставленным с каждым из LTE Memory Bank. Емкость памяти LTE Memory Bank представляет собой один подкадр сложных модулированных символов при самой большой поддерживаемой пропускной способности LTE (20 МГц). Каждый банк памяти LTE может хранить 14 x 2048 x 16-разрядные комплексные числа, то есть 14 символов OFDM, каждый из которых содержит 2048 комплексные числа.

Write Selector записывает подкадры данных в банки памяти. 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 элементами, соответствующий одной поднесущей. Grid Bank Select выбирает соответствующую выборку из вектора элемента 14, чтобы сформировать выход сетки ресурса для каждой антенны.

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

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

Данные сетки от LTE Memory Bank модулируются OFDM с помощью блока LTE OFDM Modulator с параметром 'Output data sample rate', установленным на 'Match output data sample rate'. Модулированные данные фильтруются с использованием блока Discrete FIR Filter HDL Optimized (DSP System Toolbox) с коэффициентами, сгенерированными со частотой дискретизации, соответствующей NDLRB. Альтернативные подсистемы управляют количеством модуляторов OFDM и конечной импульсной характеристики фильтров, используемых на основе количества антенн, что уменьшает использование ресурсов, когда используется одна антенна.

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

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

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

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

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

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

Результаты поиска и декодирования MIB камер:

Действительные выборки выходного сигнала передатчика сохраняются в переменной рабочей области txSamples. Эти выборки передаются через канал LTE с замираниями, чтобы создать входной сигнал приемника rxSamples. The 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 structure, и поддерживает изменения только в enb.PHICHDuration и enb.Ng поля.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

         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 ТС 36.211 «Физические каналы и модуляция».

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

Похожие темы