Индексация ресурсной сетки

Обзор

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

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

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

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 function, соответственно, или 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.

Основа индексов

Сгенерируйте индексы на основе нуля или на основе одного. Все операции отображения в документах технической спецификации (TS) LTE относятся к нулевой индексации. Однако индексы 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).';

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

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 относятся к каждому пазу по отдельности.

См. также

| | | | |

Похожие темы