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

  • Использование одного из предопределенных наборов параметров: The lteRMCDL функция поддерживает ряд стандартных наборов параметров в форме RMC. Если существует строение, которая точно соответствует требованиям или если мы хотим сгенерировать форму волны, соответствующую RMC, мы можем использовать этот номер RMC непосредственно для поиска таблицы RMC и создания набора параметров. Поддерживаемые RMC и его параметры верхнего уровня показаны ниже:

  • Настройка одного из предопределенных наборов параметров: Существует много сценариев, где мы хотим немного отличаться от строения формы волны, заданной предопределенным набором. В этом случае мы можем начать с одного из предопределенных RMC и изменить параметры (параметры ) (ы), которые требуют различных значений, чтобы создать полный настроенный набор параметров. Это проиллюстрировано примером в разделе «Параметризация с использованием скорости кода и ссылочного PDSCH в субкадре 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

Предположим, что мы хотим задать два полнополосных 10MHz кодового слова PDSCH с использованием 2 слоев разомкнутого контура пространственного мультиплексирования, 16QAM модуляции и 1/2 скорости с ссылкой передачей PDSCH в подкадре 5. Рассматривая TS 36.101 Таблица A.3.1.1-1: Обзор ссылочных каналов измерения нисходящего канала, R.31-3A соответствует этим критериям, но с 64QAM модуляцией и переменной скоростью кода.

Чтобы создать необходимый набор параметров, мы начинаем с R.31-3A RMC, чтобы включить передачу PDSCH в подкадре 5. Затем мы переопределяем модуляцию и кодовую скорость. The 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 функция. Обратите внимание, что RMC обычно не определяют эталонную передачу PSDCH в подкадре 5 из-за возможного присутствия SIB1 PDSCH. Если требуется ссылочный PDSCH, существует два способа его включения:

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

  2. Поле 'RC' отсутствует или задано как пустое (например, params. RC = []).

Параметризация с использованием переменной скорости кода и распределения ресурсов

The lteRMCDL и lteRMCDLTool функции могут использоваться, чтобы сгенерировать формы волны, где параметры изменяются по подкадрам в системе координат (например, CFI, PRBSet, TargetCodeRate). CFI и целевая кодовая скорость могут быть заданы как вектор, а PRBSet как массив ячеек, когда значения изменяются на каждый подкадр.

В этом примере мы создаем форму волны, соответствующую FDD R.31-3 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)»