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

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

Введение

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

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

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

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

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

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

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

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

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

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