В этом примере показаны вовлеченные шаги и различные способы параметризации сквозных симуляций и статической генерации сигналов с помощью 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: The lteRMCDL
функция обеспечивает расширение параметра и обработку размера транспортного блока из параметров всей ячейки и PDSCH. Все нисходящие и специальные (если режим TDD) подкадры приняты запланированными. Это позволяет задать подмножество параметров, и функция затем вычисляет совместимые отсутствующие параметры, чтобы создать полный набор. Этот подход может использоваться в целом для создания строений, в которых активен субкадр 5.
Использование одного из предопределенных наборов параметров: The lteRMCDL
функция поддерживает ряд стандартных наборов параметров в форме RMC. Если существует строение, которая точно соответствует требованиям или если мы хотим сгенерировать форму волны, соответствующую RMC, мы можем использовать этот номер RMC непосредственно для поиска таблицы RMC и создания набора параметров. Поддерживаемые RMC и его параметры верхнего уровня показаны ниже:
Настройка одного из предопределенных наборов параметров: Существует много сценариев, где мы хотим немного отличаться от строения формы волны, заданной предопределенным набором. В этом случае мы можем начать с одного из предопределенных RMC и изменить параметры (параметры ) (ы), которые требуют различных значений, чтобы создать полный настроенный набор параметров. Это проиллюстрировано примером в разделе «Параметризация с использованием скорости кода и ссылочного PDSCH в субкадре 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);
Предположим, что мы хотим задать два полнополосных 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.
Для примера, чтобы создать набор параметров для индекса 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, существует два способа его включения:
RMC задается через поле 'RC' и является либо 'R.31-3A', либо 'R.31-4'.
Поле '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});
3GPP TS 36.101 «Радиопередача и прием пользовательского оборудования (UE)»