Этот пример показывает включенные шаги и различные способы параметризовать сквозные симуляции и статическую генерацию формы волны с помощью LTE Toolbox™. В этом примере мы фокусируемся на нисходящем канале, но обсужденные концепции применяются к восходящему каналу также.
LTE Toolbox может использоваться, чтобы сгенерировать стандартный совместимый восходящий канал LTE/LTE-Advanced, нисходящие и непрямые комплексные основополосные формы волны, которые могли использоваться для многих приложений конечного пользователя включая сквозные симуляции, статическую генерацию формы волны, регрессионное тестирование и анализ производительности. Тулбокс обеспечивает функции для гибкой и легкой генерации полной ссылки, адаптированной в соответствии с требованиями пользователя. Из-за нескольких каналов и сигналов в каждой ссылке, тулбокс также обеспечивает, средние значения, чтобы сгенерировать предопределенные наборы параметра, соответствующие стандарту, задали каналы измерения, которые могут использоваться как таковые или могут быть далее изменены, чтобы параметризовать генерацию формы волны и сквозные симуляции. Для нисходящего канала тулбокс включает эти предопределенные наборы параметра в форме Ссылочных каналов измерения (RMC), заданных в TS 36.101 [1]. Этот пример демонстрирует, как две функции, lteRMCDL и lteRMCDLTool, объединение, чтобы поддержать LTE передают в нисходящем направлении генерацию формы волны для различных требований пользователя. Соответствующие восходящие функции являются lteRMCUL и lteRMCULTool.
В этом примере мы обсуждаем две функции верхнего уровня, обеспеченные тулбоксом, lteRMCDL, который может помочь создать полный набор параметра и lteRMCDLTool, который может сгенерировать нисходящую форму волны. Путем объединения этих двух функций стандартные совместимые формы волны LTE могут быть сгенерированы легко.
Нисходящая функция генератора формы волны lteRMCDLTool требует одной иерархической структуры MATLAB, которая задает набор всех параметров для транспортных каналов, физических каналов и физических сигналов, существующих в выходной форме волны. Функция генератора возвращает форму волны области времени, заполненную сетку ресурса и набор параметра, используемый в создании формы волны.
Тулбокс включает функцию lteRMCDL, который может обеспечить полностью заполненную структуру параметра для предварительно сконфигурированных Ссылочных каналов измерения (RMC), а также пользовательских конфигураций. Эта структура параметра может непосредственно использоваться функцией lteRMCDLTool, чтобы сгенерировать формы волны, или это может использоваться в качестве шаблона для создания форм волны с пользовательскими заданными значениями для любого из составляющих каналов или сигналов. Например, изменяя схему/режим передачи, схему модуляции, уровень кода или изменяя уровень мощности физических каналов. Важно отметить, что весь пользователь, если значения заданы до вызывания lteRMCDL функции. Это вызвано тем, что функция lteRMCDL не перезаписывает значений параметров, уже заданных во входе (за исключением параметров только для чтения). Следующая схема показывает параметризацию для типичных настроек симуляции.
LTE Toolbox поддерживает различные способы задать набор параметра, задающий составляющие физические каналы и сигналы. Они объяснены далее в последующих разделах:
Создайте набор параметра из важных параметров PDSCH и всей ячейки: функция lteRMCDL обеспечивает расширение параметра и транспортную обработку размера блока от параметров PDSCH и всей ячейки. Весь нисходящий канал и особенный (если режим TDD) подкадры принят, чтобы быть запланированным. Это позволяет подмножеству параметров быть заданным, и функция затем вычисляет совместимые недостающие параметры, чтобы создать полный набор. Этот подход может использоваться в целом, чтобы создать настройки, где подкадр 5 активен.
Используя один из предопределенных наборов параметра: функция lteRMCDL поддерживает заданные наборы параметра многого стандарта в форме RMCs (См. lteRMCDL для деталей). Если существует настройка, которая точно совпадает с требованиями или если мы хотим сгенерировать форму волны, соответствующую RMC, мы можем использовать это номер RMC непосредственно для поиска по таблице RMC и создания набора параметра. Поддерживаемые RMCs и его параметры верхнего уровня показывают ниже:
Настройка одного из предопределенных наборов параметра: существует много сценариев, где мы хотим немного отличающуюся настройку формы волны, чем данный предопределенным набором. В этом случае мы можем запустить с одного из предопределенных RMCs и изменить параметр (параметры), которые требуют, чтобы различные значения создали полный индивидуально настраиваемый набор параметра. Это проиллюстрировано примером в разделе "Parameterization Using Code Rate and Reference PDSCH in Subframe 5" ниже. Обратите внимание на то, что подкадры с пользовательскими данными были бы согласно RMC. Если дуплексный режим TDD
будет использоваться, и TDDConfig
изменяется на различное значение от RMC, то поведение подкадра 0, 5 и специальных подкадров останется неизменным, и все другие нисходящие подкадры наследуют свойства (т.е. активный/неактивный, выделение, целевой уровень кода) подкадра 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 insubframe 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' не присутствует или задано как пустое (например, параметрические усилители. RC = []).
lteRMCDL и функции lteRMCDLTool могут использоваться, чтобы сгенерировать формы волны, где параметры отличаются по подкадрам по кадру (например, 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 aganist 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) и прием"