Параметризация LTE для генерации сигналов и симуляции

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

Введение

LTE Toolbox может использоваться, чтобы сгенерировать стандартный совместимый восходящий канал LTE/LTE-Advanced, нисходящие и непрямые комплексные основополосные формы волны, которые могли использоваться во многих приложениях конечного пользователя включая сквозные симуляции, статическую генерацию сигналов, регрессионное тестирование и анализ производительности. Тулбокс обеспечивает функции для гибкой и легкой генерации полной ссылки, адаптированной в соответствии с требованиями пользователя. Из-за нескольких каналов и сигналов в каждой ссылке, тулбокс также обеспечивает, средние значения, чтобы сгенерировать предопределенные наборы параметра, соответствующие стандарту, задали каналы измерения, которые могут использоваться как таковые или могут быть далее изменены, чтобы параметризовать генерацию сигналов и сквозные симуляции. Для нисходящего канала тулбокс включает эти предопределенные наборы параметра в форме Ссылочных каналов измерения (RMC), заданных в TS 36.101 [1]. Этот пример демонстрирует, как две функции, lteRMCDL и lteRMCDLTool, объединение, чтобы поддержать LTE передают в нисходящем направлении генерацию сигналов для различных требований пользователя. Соответствующие восходящие функции являются lteRMCUL и lteRMCULTool.

Параметризация нисходящего канала LTE и функции генерации сигналов

В этом примере мы обсуждаем две функции верхнего уровня, обеспеченные тулбоксом, lteRMCDL, который может помочь создать полный набор параметра и lteRMCDLTool, который может сгенерировать нисходящую форму волны. Путем объединения этих двух функций стандартные совместимые формы волны LTE могут быть сгенерированы легко.

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

Тулбокс включает функцию lteRMCDL, который может обеспечить полностью заполненную структуру параметра для предварительно сконфигурированных Ссылочных каналов измерения (RMC), а также пользовательских конфигураций. Эта структура параметра может непосредственно использоваться функцией lteRMCDLTool, чтобы сгенерировать формы волны, или это может использоваться в качестве шаблона для создания форм волны с пользовательскими заданными значениями для любого из составляющих каналов или сигналов. Например, изменяя схему/режим передачи, схему модуляции, уровень кода или изменяя уровень мощности физических каналов. Важно отметить, что введенные значения всего пользователя заданы до вызывания lteRMCDL функции. Это вызвано тем, что функция lteRMCDL не перезаписывает значений параметров, уже заданных во входе (за исключением параметров только для чтения). Следующая схема показывает параметризацию для типичных настроек симуляции.

Опции параметризации нисходящего канала LTE

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 и всей ячейки

Блок-схема ниже объясняет, как настроить набор параметра с помощью некоторых ключевых параметров 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 в подкадре 5

Предположим, что мы хотим задать две полных полосы кодовой комбинации 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 или транспортный размер блока и хотим создать соответствующую форму волны. Следующий рисунок показывает шаги, вовлеченные в параметризацию с помощью 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 требуется затем существует два способа включить его:

  1. RMC задан через поле 'RC' и является или 'R.31-3A' или 'R.31-4'.

  2. Поле '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});

Выбранная библиография

  1. 3GPP TS 36.101 "Передача радио оборудования пользователя (UE) и прием"