LTE Toolbox™ предоставляет средства для генерирования последовательностей символов, соответствующих физическим каналам и сигналам. Также генерируются индексы для отображения этих последовательностей в ресурсную сетку. Для удобства в LTE Toolbox используется MATLAB® стиль линейной индексации для представления этих индексов.
Перед применением модуляции OFDM (IFFT) физические каналы и сигналы в LTE отображаются на различные фрагменты ресурсной сетки субкадров. Ресурсная сетка подкадра представлена в LTE Toolbox как многомерный массив следующего размера.
В предыдущем выражении, - количество ресурсных блоков, охватывающих доступную полосу пропускания, количество символов OFDM (или SC-FDMA в восходящем канале) на паз, и Количество портов антенны. Поэтому ресурсная сетка представляет подрамник (два пазов) и целую полосу пропускания, поскольку на каждый ресурсный блок приходится 12 поднесущих. Для случая с одной антенной ресурсная сетка может быть двумерной матрицей следующего размера.
Создайте пустой нисходящий ресурсный массив с помощью двух различных методов. Можно создать допустимые и эквивалентные массивы ресурсов подкадров с помощью 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)
Сгенерируйте линейные индексы.
ind_lin = lteCellRSIndices(enb,antPort);
Сопоставьте символы опорного сигнала с ресурсной сеткой.
resourceGrid(ind_lin) = rs;
Показать ссылки, активные для настроек всей ячейки, назначенных в enb
путем построения графика обновленной ресурсной сетки.
figure mesh(abs(resourceGrid)) view(2)
В качестве альтернативы сгенерируйте индексы в форме индекса путем предоставления '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 относятся к каждому пазу по отдельности.
lteCellRS
| lteCellRSIndices
| lteDLResourceGrid
| ltePDSCH
| ltePDSCHIndices
| zeros