exponenta event banner

Индексирование сетки ресурсов

Обзор

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

Размер сетки ресурсов подкадра

Перед применением модуляции OFDM (IFFT) физические каналы и сигналы в LTE отображаются на различные части сетки ресурсов подкадра. Сетка ресурсов подкадра представлена на панели инструментов LTE в виде многомерного массива следующего размера.

12NRB × 2Nsymb × P

В предыдущем выражении NRB - это количество блоков ресурсов, охватывающих доступную полосу пропускания, Nsymb - это количество символов OFDM (или SC-FDMA в восходящей линии связи) на слот, а P - количество антенных портов. Поэтому сетка ресурсов представляет подкадр (два слота) и всю полосу пропускания, поскольку на блок ресурсов приходится 12 поднесущих. Для случая с одной антенной сетка ресурсов может быть двумерной матрицей следующего размера.

12NRB×2Nsymb

Создать пустой массив ресурсов

Создайте пустой массив ресурсов нисходящей линии связи с помощью двух различных методов. Можно создать допустимые и эквивалентные массивы ресурсов субкадров с помощью lteDLResourceGrid функции или zeros функция.

Инициализация обязательных параметров

Создайте структуру параметров для обычного циклического префикса, девяти блоков ресурсов нисходящей линии связи и одной передающей антенны.

enb = struct('CyclicPrefix','Normal','NDLRB',9,'CellRefP',1);

Определите семь символов на слот для использования в zeros функция.

symbolsPerSlot = 7;

Создание пустых массивов ресурсов

Создайте пустой массив ресурсов субкадров с помощью каждого метода.

resourceGrid1 = lteDLResourceGrid(enb);
resourceGrid2 = zeros(enb.NDLRB*12,symbolsPerSlot*2,enb.CellRefP);

Сравнить массивы ресурсов

Сравните два массива ресурсов. Поскольку оба подхода генерируют один и тот же результат, можно использовать для создания пустого массива ресурсов нисходящей линии связи. Аналогично, можно создать пустой массив ресурсов восходящей линии связи, боковой линии связи или узкополосных ресурсов с помощью lteULResourceGrid, lteSLResourceGrid, или lteNBResourceGrid функции, соответственно, или zeros функция.

isequal(resourceGrid1,resourceGrid2)
ans = logical
   1

Индексирование сетки ресурсов

Создайте опорный сигнал и сопоставьте его пустой сетке ресурсов для варианта с одной антенной. LTE- Toolbox™ был разработан для облегчения отображения физических каналов и сигналов в сетке ресурсов.

Настройка параметров для всей ячейки. Создайте структуру и укажите в качестве ее полей параметры для всей ячейки.

enb.CyclicPrefix = 'Normal';
enb.NDLRB = 6;
enb.CellRefP = 1;
enb.NCellID = 1;
enb.NSubframe = 0;
enb.DuplexMode = 'FDD';
antPort = 0;

Создайте пустую сетку ресурсов подкадра с помощью lteDLResourceGrid затем заполните сетку ссылочными символами с помощью lteCellRSIndices и lteCellRS функции.

resourceGrid = lteDLResourceGrid(enb);
ind = lteCellRSIndices(enb,antPort);
rs = lteCellRS(enb,antPort);
resourceGrid(ind) = rs;

Для формирования списка индексов, идентифицирующих место отображения опорного сигнала, используйте функцию lteCellRSIndices. Для генерации символов опорного сигнала используйте lteCellRS функция.

Линейные индексы и подстрочные индексы

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

Стиль линейного индексирования позволяет удобно сопоставлять символы ссылочной последовательности с соответствующим местоположением в сетке ресурсов только одной строкой кода. Отображение ссылочных символов в сетку ресурсов с использованием индексов с подстрочными индексами потребует большей точности.

Создайте структуру, задающую в качестве полей параметры для всей ячейки. Присвойте нулевое значение номеру антенного порта.

enb.CyclicPrefix = 'Normal';
enb.NDLRB = 6;
enb.CellRefP = 1;
enb.NCellID = 1;
enb.NSubframe = 0;
enb.DuplexMode = 'FDD';
antPort = 0;

Создайте пустую сетку ресурсов подкадра с помощью lteDLResourceGrid затем создайте символы опорного сигнала с помощью lteCellRS function. Просмотр пустой сетки ресурсов.

resourceGrid = lteDLResourceGrid(enb);
rs = lteCellRS(enb,antPort);
mesh(abs(resourceGrid))
view(2)

Figure contains an axes. The axes contains an object of type surface.

Создание линейных индексов.

ind_lin = lteCellRSIndices(enb,antPort);

Сопоставьте символы опорного сигнала с сеткой ресурсов.

resourceGrid(ind_lin) = rs;

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

figure
mesh(abs(resourceGrid))
view(2)

Figure contains an axes. The axes contains an object of type surface.

В качестве альтернативы, создайте индексы в виде подстрочного индекса, предоставив 'sub' строка параметра для lteCellRSIndices. В этом случае выходные индексы представляют сетку ресурсов в виде [поднесущей, символа OFDM, антенного порта].

ind_sub = lteCellRSIndices(enb,antPort,'sub');

Преобразование между линейными индексами и подстрочными индексами

Преобразование между линейными индексами и индексами может быть достигнуто с помощью MATLAB ind2sub и sub2ind функции. Кроме того, все функции создания индексов в LTE Toolbox могут создавать оба формата.

Многоантенные линейные индексы

Сформировать индексы в многоантенном линейном виде. Эта форма представляет собой вариант стиля линейного индексирования MATLAB ®, в котором индексы, соответствующие каждому антенному порту, находятся в разных столбцах. Однако все индексы все еще в линейном виде. Несколько функций панели инструментов возвращают индексы в многоантенной линейной форме.

Чтобы проиллюстрировать это, вызовите функцию ltePDSCH для корпуса с четырьмя антеннами.

enb.CellRefP = 4;
enb.CFI = 1;
enb.NCellID = 1;
enb.NSubframe = 0;
enb.NDLRB = 6;
enb.CyclicPrefix = 'Normal';
enb.DuplexMode = 'FDD';

pdsch.TxScheme = 'TxDiversity';
pdsch.Modulation = 'QPSK';
pdsch.RNTI = 1;
pdsch.PRBSet = (0:5).';

data = ones(768,1);
symb = ltePDSCH(enb,pdsch,data);
size(symb)
ans = 1×2

   384     4

symb(1:10,:)
ans = 10×4 complex

  -0.5000 - 0.5000i   0.0000 + 0.0000i  -0.5000 - 0.5000i   0.0000 + 0.0000i
   0.5000 - 0.5000i   0.0000 + 0.0000i  -0.5000 + 0.5000i   0.0000 + 0.0000i
   0.0000 + 0.0000i  -0.5000 - 0.5000i   0.0000 + 0.0000i   0.5000 - 0.5000i
   0.0000 + 0.0000i  -0.5000 - 0.5000i   0.0000 + 0.0000i  -0.5000 + 0.5000i
   0.5000 - 0.5000i   0.0000 + 0.0000i   0.5000 + 0.5000i   0.0000 + 0.0000i
  -0.5000 + 0.5000i   0.0000 + 0.0000i   0.5000 + 0.5000i   0.0000 + 0.0000i
   0.0000 + 0.0000i   0.5000 + 0.5000i   0.0000 + 0.0000i  -0.5000 + 0.5000i
   0.0000 + 0.0000i   0.5000 + 0.5000i   0.0000 + 0.0000i   0.5000 - 0.5000i
  -0.5000 - 0.5000i   0.0000 + 0.0000i   0.5000 + 0.5000i   0.0000 + 0.0000i
  -0.5000 + 0.5000i   0.0000 + 0.0000i  -0.5000 + 0.5000i   0.0000 + 0.0000i

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

В аналогичном формате создайте индексы для PDSCH путем вызова ltePDSCHIndices.

pdschIndices = ltePDSCHIndices(enb,pdsch,pdsch.PRBSet);
size(pdschIndices)
ans = 1×2

   384     4

pdschIndices(1:10,:)
ans = 10x4 uint32 matrix

    145   1153   2161   3169
    146   1154   2162   3170
    147   1155   2163   3171
    148   1156   2164   3172
    149   1157   2165   3173
    150   1158   2166   3174
    151   1159   2167   3175
    152   1160   2168   3176
    153   1161   2169   3177
    154   1162   2170   3178

Опять же, каждый столбец соответствует каждому из четырех антенных портов. Конкатенация всех четырех столбцов создает вектор индексов столбцов с использованием стиля линейного индексирования MATLAB.

База индекса

Создайте индексы на основе нуля или на основе единицы. Все операции по сопоставлению в документах технических спецификаций LTE (TS) относятся к индексированию на основе нуля. Однако индексы MATLAB ® должны быть одномерными. По умолчанию LTE Toolbox™ генерирует индексы на основе одного элемента, но можно создать индексы на основе нуля, задав соответствующую строку параметров.

Создайте структуру настроек для всей соты и назначьте номер антенного порта.

enb.NDLRB = 6;
enb.NCellID = 1;
enb.CyclicPrefix = 'Normal';
enb.DuplexMode = 'FDD';

antPort = 0;

Поскольку по умолчанию используется индексация на основе одного объекта, можно создать индексы на основе одного объекта, указав '1based' флаг или выход из него.

ind = lteCellRSIndices(enb,antPort);
ind = lteCellRSIndices(enb,antPort,'1based');

Создайте индексы на основе нуля, указав '0based' флаг.

ind = lteCellRSIndices(enb,antPort,'0based');

Блоки ресурсов

В 3GPP документах описывается блок ресурсов, который должен быть группой элементов ресурсов, охватывающих 12 последовательных поднесущих в частотной области и один временной интервал во временной области. Для эффективности обработки LTE Toolbox™ работает на основе подкадра (двух временных интервалов) и описывает пару блоков ресурсов для представления 12 последовательных поднесущих, охватывающих частотную область, и одного подкадра (двух временных интервалов) во временной области. Например, команда ltePDSCHIndices использует параметр PRBSet для определения набора индексов блока физических ресурсов (PRB) для подкадра данных.

Создайте структуру параметров для всей ячейки и определите PDSCH конфигурация.

enb.CellRefP = 4;
enb.CFI = 1;
enb.NCellID = 1;
enb.NSubframe = 0;
enb.NDLRB = 6;
enb.CyclicPrefix = 'Normal';
enb.DuplexMode = 'FDD';

pdsch.TxScheme = 'TxDiversity';
pdsch.Modulation = 'QPSK';
pdsch.RNTI = 1;
pdsch.PRBSet = (0:5).';

Создайте набор индексов PDSCH PRB для инициализированной конфигурации.

pdschIndices = ltePDSCHIndices(enb,pdsch,pdsch.PRBSet);
size(pdschIndices)
ans = 1×2

   384     4

pdschIndices(1:10,:)
ans = 10x4 uint32 matrix

    145   1153   2161   3169
    146   1154   2162   3170
    147   1155   2163   3171
    148   1156   2164   3172
    149   1157   2165   3173
    150   1158   2166   3174
    151   1159   2167   3175
    152   1160   2168   3176
    153   1161   2169   3177
    154   1162   2170   3178

pdsch
pdsch = struct with fields:
      TxScheme: 'TxDiversity'
    Modulation: 'QPSK'
          RNTI: 1
        PRBSet: [6x1 double]

pdsch.PRBSet может быть либо вектором столбца, либо матрицей из двух столбцов. При предоставлении вектора столбца распределение ресурсов в обоих временных интервалах подкадра одинаково, что означает, что набор индексов ресурсов применяется к обоим временным интервалам подкадра. С другой стороны, если предоставляется матрица из двух столбцов, индексы PRB относятся к каждому слоту по отдельности.

См. также

| | | | |

Связанные темы