Этот пример показывает включенные шаги и различные способы параметрировать сквозные симуляции и статическую генерацию сигналов с помощью LTE Toolbox™. В этом примере мы фокусируемся на нисходящем канале, но обсужденные концепции применяются к восходящему каналу также.
LTE Toolbox может использоваться, чтобы сгенерировать стандартный совместимый восходящий канал LTE/LTE-Advanced, нисходящие и непрямые комплексные основополосные формы волны, которые могли использоваться для многих приложений конечного пользователя включая сквозные симуляции, статическую генерацию сигналов, регрессионное тестирование и анализ эффективности. Тулбокс обеспечивает функции для гибкой и легкой генерации полной ссылки, адаптированной в соответствии с требованиями пользователя. Из-за нескольких каналов и сигналов в каждой ссылке, тулбокс также обеспечивает, средние значения, чтобы сгенерировать предопределенные наборы параметров, соответствующие стандарту, задали каналы измерения, которые могут использоваться как таковые или могут быть далее изменены, чтобы параметрировать генерацию сигналов и сквозные симуляции. Для нисходящего канала тулбокс включает эти предопределенные наборы параметров в форме Ссылочных каналов измерения (RMC), заданных в TS 36.101 [1]. Этот пример демонстрирует как lteRMCDL
и lteRMCDLTool
функции объединяются, чтобы поддержать генерацию сигналов нисходящего канала LTE для различных требований пользователя. Соответствующими восходящими функциями является lteRMCUL
и lteRMCULTool
.
В этом примере мы обсуждаем две функции верхнего уровня, обеспеченные тулбоксом: lteRMCDL
, который создает полный набор параметров и lteRMCDLTool
, который генерирует нисходящую форму волны. Путем объединения этих двух функций совместимые стандартами формы волны LTE могут быть сгенерированы легко.
Нисходящая функция генератора формы волны требует одной иерархической структуры MATLAB, которая задает набор всех параметров для транспортных каналов, физических каналов и физических сигналов, существующих в выходной форме волны. Функция генератора возвращает форму волны области времени, заполненную сетку ресурса и набор параметров, используемый в создании формы волны.
Тулбокс включает lteRMCDL
функция, которая может обеспечить полностью заполненную структуру параметра для предварительно сконфигурированных Ссылочных каналов измерения (RMC), а также пользовательских конфигураций. Эта структура параметра может непосредственно использоваться lteRMCDLTool
функция, чтобы сгенерировать формы волны или это может использоваться в качестве шаблона для создания форм волны с пользовательскими заданными значениями для любого из составляющих каналов или сигналов. Например, изменяя схему/режим передачи, схему модуляции, скорость кода или изменяя уровень мощности физических каналов. Важно отметить, что введенные значения всего пользователя заданы до вызова lteRMCDL
функция. Это вызвано тем, что lteRMCDL
функция не перезаписывает значений параметров, уже заданных во входе (за исключением параметров только для чтения). Следующая схема показывает параметризацию для типичных настроек симуляции.
LTE Toolbox поддерживает различные способы задать набор параметров, задающий составляющие физические каналы и сигналы. Они объяснены далее в последующих разделах:
Создайте набор параметров из важных параметров PDSCH и всей ячейки: lteRMCDL
функция обеспечивает расширение параметра и транспортную обработку размера блока от параметров PDSCH и всей ячейки. Весь нисходящий канал и особенный (если режим TDD) подкадры принят, чтобы быть запланированным. Это позволяет подмножеству параметров быть заданным, и функция затем вычисляет совместимые недостающие параметры, чтобы создать полный набор. Этот подход может использоваться в целом, чтобы создать настройки, где подкадр 5 активен.
Используя один из предопределенных наборов параметров: lteRMCDL
функционируйте поддерживает заданные наборы параметров многого стандарта в форме RMCs. Если существует настройка, которая точно совпадает с требованиями или если мы хотим сгенерировать форму волны, соответствующую RMC, мы можем использовать это номер RMC непосредственно для поиска по таблице RMC и создания набора параметров. Поддерживаемые RMCs и его параметры верхнего уровня показывают ниже:
Настройка одного из предопределенных наборов параметров: существует много сценариев, где мы хотим немного отличающуюся настройку формы волны, чем данный предопределенным набором. В этом случае мы можем начать с одного из предопределенных RMCs и изменить параметр (параметры), которые требуют, чтобы различные значения создали полный индивидуально настраиваемый набор параметров. Это проиллюстрировано примером в разделе "Parameterization Using Code Rate and Reference PDSCH in Subframe 5" ниже. Обратите внимание на то, что подкадры с пользовательскими данными были бы согласно RMC. Если TDD
дуплексный режим используется и TDDConfig
изменяется на различное значение от RMC, затем поведение подкадра 0, 5 и специальных подкадров останется неизменным, и все другие нисходящие подкадры наследуют свойства (i.e. активный/неактивный, выделение, целевая скорость кода) подкадра 9.
Блок-схема ниже объясняет, как настроить набор параметров с помощью некоторых ключевых параметров PDSCH и всей ячейки. От подмножества этих параметров, lteRMCDL
функция может создать полный набор параметров посредством расширения параметра.
% The following example shows how to create a 20MHz, QPSK, 3/4 rate % waveform corresponding to transmission mode 8 ('Port7-8' transmission % scheme) with full allocation and 2 transmit antennas dataStream = [1 0 0 1]; % Define the input user data stream params = struct(); % Initialize the parameter structure params.NDLRB = 100; % 20 MHz bandwidth params.CellRefP = 2; % Cell reference signals on the first two ports params.PDSCH.PRBSet = (0:params.NDLRB-1)'; % Full allocation params.PDSCH.TargetCodeRate = 3/4; % The target code rate params.PDSCH.TxScheme = 'Port7-8'; % Transmission mode 8 params.PDSCH.NLayers = 2; % 2 layer transmission params.PDSCH.Modulation = 'QPSK'; % Modulation scheme params.PDSCH.NSCID = 0; % Scrambling identity params.PDSCH.NTxAnts = 2; % 2 transmit antennas params.PDSCH.W = lteCSICodebook(params.PDSCH.NLayers,... params.PDSCH.NTxAnts,0).'; % Precoding matrix % Now use lteRMCDL to populate other parameter fields fullParams = lteRMCDL(params); % Generate the waveform using the full parameter set 'fullParams' [dlWaveform, dlGrid, dlParams] = lteRMCDLTool(fullParams,dataStream); % dlWaveform is the time domain waveform, dlGrid is the resource grid and % dlParams is the full set of parameters used in the waveform generation.
Если существует предопределенный набор параметров, который точно совпадает с требованиями или если мы хотим сгенерировать форму волны, соответствующую RMC, используйте это номер RMC, чтобы создать полный набор параметров.
Создать форму волны, соответствующую R.0 RMC, заданному в TS 36.101, Приложении A.3 [1]
params = lteRMCDL('R.0'); % Define the parameter set [dlWaveform, dlGrid, dlParams] = lteRMCDLTool(params,dataStream); % If the end application is waveform generation, we can also use the RMC % number directly with the generator to create the waveforms [dlWaveform, dlGrid, dlParams] = lteRMCDLTool('R.0',dataStream);
Предположим, что мы хотим задать две полных полосы кодовой комбинации PDSCH на 10 МГц использование 2 разомкнутых контуров слоя пространственное мультиплексирование, 16QAM модуляция и 1/2 уровень со ссылочной передачей PDSCH в подкадре 5. Рассмотрение таблицы A.3.1.1-1 TS 36.101: Обзор Нисходящих ссылочных каналов измерения, R.31-3A совпадает с этими критериями, но 64QAM уровень кода переменной и модуляция.
Чтобы создать набор обязательного параметра, мы начинаемся с R.31-3A RMC, чтобы включить передачу PDSCH в подкадре 5. Мы затем заменяем модуляцию и скорость кода. lteRMCDL
функция выполняет транспортное вычисление размера блока согласно скорости кода.
params = struct(); % Initialize the parameter structure params.RC = 'R.31-3A'; params.PDSCH.TargetCodeRate = 1/2; params.PDSCH.Modulation = '16QAM'; % Now use lteRMCDL to populate other parameter fields fullParams = lteRMCDL(params); % Generate the waveform using the full parameter set 'fullParams' [dlWaveform, dlGrid, dlParams] = lteRMCDLTool(fullParams,{dataStream, dataStream}); %#ok<*ASGLU>
Обратите внимание на то, что мы использовали 'R.31-3A' в качестве начальной точки, когда наш набор обязательного параметра тесно совпадал с этим RMC (включая ссылочный PDSCH в подкадре 5). Мы можем также сгенерировать набор параметров, не задав RC выше (или установка RC, чтобы быть пустым ([])). В этом случае набор параметров соответствовал бы ссылочному PDSCH во всем нисходящем канале и особенный (если режим TDD) подкадры.
Существуют случаи, где мы знаем MCS или транспортный размер блока и хотим создать соответствующую форму волны. Следующий рисунок показывает шаги, вовлеченные в параметризацию с помощью MCS.
Например, создать набор параметров для индекса 10 MCS, учитывая распределение ресурсов - 50 RB:
mcsIndex = 10; % Get the ITBS and modulation from MCS value [itbs,modulation] = lteMCS(mcsIndex); params = struct(); % Initialize the parameter structure % Bandwidth (NDLRB) must be greater than or equal to allocations params.NDLRB = 50; % Set the bandwidth params.PDSCH.PRBSet = (0:params.NDLRB-1)'; % Full allocation params.PDSCH.Modulation = modulation; % Set the modulation scheme nrb = size(params.PDSCH.PRBSet,1); % Get number of RBs allocated tbs = double(lteTBS(nrb,itbs)); % Get the transport block size % Now create the 'TrBlkSizes' vector with no transmission in subframe 5 params.PDSCH.TrBlkSizes = [ones(1,5)*tbs 0 ones(1,4)*tbs]; % Now use lteRMCDL to populate other parameter fields fullParams = lteRMCDL(params); % Now generate the waveform using the full parameter set 'fullparams' [dlWaveform, dlGrid, dlParams] = lteRMCDLTool(fullParams,dataStream);
Этот подход может также использоваться, чтобы создать набор параметров с транспортным размером блока, который не является стандартный заданный, или когда необходимый транспортный размер блока соответствует скорости кода, больше, чем 0,93 (стандарт ограничивает скорость кода, чтобы быть максимумом 0,93). Для этих случаев мы можем задать транспортный размер блока как показано в примере выше, и другие параметры будут обновлены соответственно lteRMCDL
функция. Обратите внимание на то, что RMCs обычно не задают ссылочную передачу PSDCH в подкадре 5 из-за возможного присутствия SIB1 PDSCH. Если ссылочный PDSCH требуется затем существует два способа включить его:
RMC задан через поле 'RC' и является или 'R.31-3A' или 'R.31-4'.
Поле 'RC' не присутствует или задано как пустое (e.g. params.RC = []).
lteRMCDL
и lteRMCDLTool
функции могут использоваться, чтобы сгенерировать формы волны, где параметры варьируются по подкадрам по системе координат (e.g. CFI, PRBSet, TargetCodeRate). CFI и целевая скорость кода могут быть заданы как вектор и PRBSet как массив ячеек, когда значения изменяются на подкадр.
В этом примере мы создаем форму волны, соответствующую R.31-3 FDD RMC, где скорость кода и выделение варьируются на подкадр. Это - две кодовых комбинации RMC со скоростью кода 0,61 в подкадре 0, 0.62 в подкадре 5 и 0.59 во всех других подкадрах. Количество выделенных блоков ресурса (4... 99) в подкадре 5 и полная полоса пропускания (0... 99) во всех других подкадрах
params = struct(); % Initialize the parameter structure params.NDLRB = 100; % Set the bandwidth (20 MHz) params.CellRefP = 2; % Set the cell-specific reference signal ports params.CFI = 1; % 1 symbol allocated to PDCCH params.PDSCH.PRBSet = {(0:99)' (0:99)' (0:99)' (0:99)' (0:99)' ... (4:99)' (0:99)' (0:99)' (0:99)' (0:99)'}; params.PDSCH.TargetCodeRate = [0.61 0.59 0.59 0.59 0.59 0.62 0.59 0.59 0.59 0.59]; params.PDSCH.TxScheme = 'CDD';% 2 codeword closed loop spatial mux params.PDSCH.NLayers = 2; % 1 layer per codeword params.PDSCH.Modulation = {'64QAM', '64QAM'};% Set the modulation for 2 codewords % Use lteRMCDL to populate other parameter fields. The resulting % 'fullParams' can be manually checked against those given by the R.31-3 % FDD RMC in TS 36.101 Table A.3.9.1-1 fullParams = lteRMCDL(params); % Generate the waveform using the full parameter set 'fullParams' [dlWaveform, dlGrid, dlParams] = lteRMCDLTool(fullParams,{dataStream, dataStream});
3GPP TS 36.101 "Передача радио оборудования пользователя (UE) и прием"