nrPRACH

Сгенерируйте символы PRACH

Описание

пример

[sym,info] = nrPRACH(carrier,prach) возвращает символы физического канала произвольного доступа (PRACH), как определено в TS 38.211 Раздел 6.3.3 [1]. Область входа carrier задает параметры конфигурации несущей для определенной нумерологии OFDM. Область входа prach задает параметры конфигурации PRACH. Функция также возвращает структуру info, которая содержит зависимую от несущей информацию о PRACH.

[sym,info] = nrPRACH(carrier,prach,'OutputDataType',datatype) задает тип данных символов PRACH.

Примеры

свернуть все

Сконфигурируйте PRACH и несущую с свойствами по умолчанию.

carrier = nrCarrierConfig;
prach = nrPRACHConfig;

Сгенерируйте символы и индексы PRACH, используя указанные параметры конфигурации несущей и PRACH.

prachSym = nrPRACH(carrier,prach);
prachInd = nrPRACHIndices(carrier,prach);

Сгенерируйте ресурсную сетку PRACH со всеми нулями.

prachGrid = nrPRACHGrid(carrier,prach);

Сопоставьте символы PRACH с ресурсной сеткой PRACH с помощью индексов.

prachGrid(prachInd) = prachSym;

Анализируйте индексы последовательности Задова-Чу физического корня путем генерации 64 ортогональных преамбул PRACH для двух различных строений PRACH.

Корневые индексы последовательности с одним значением

Сконфигурируйте PRACH и несущую с свойствами по умолчанию.

carrier = nrCarrierConfig;
prach1 = nrPRACHConfig;

Установите индекс логического корневого ряда PRACH равным 0. Для этого значения индекс физической корневой последовательности 129, как определено в ТС 38.211 Таблица 6.3.3.1-3.

prach1.SequenceIndex = 0;

Установите индекс строения циклического сдвига PRACH равным 1. Для этого значения каждая преамбула PRACH имеет разное значение циклического сдвига, основанное на NCS из ТУ 38.211 таблица 6.3.3.1-5.

prach1.ZeroCorrelationZone = 1;

Сгенерируйте 64 преамбулы PRACH для хранения индексов физического корня и значений циклического сдвига.

rootSequence1 = NaN(1,64);
cyclicShift1 = NaN(1,64);
for preambleIndex = 0:63
    prach1.PreambleIndex = preambleIndex;
    [~,info] = nrPRACH(carrier,prach1);
    rootSequence1(preambleIndex+1) = info.RootSequence;
    cyclicShift1(preambleIndex+1) = info.CyclicShift;
end

Проверьте, что в каждой преамбуле индекс физической корневой последовательности 129, которое является ожидаемым значением от конфигурирования логического индекса корневой последовательности до 0.

disp(rootSequence1)
  Columns 1 through 13

   129   129   129   129   129   129   129   129   129   129   129   129   129

  Columns 14 through 26

   129   129   129   129   129   129   129   129   129   129   129   129   129

  Columns 27 through 39

   129   129   129   129   129   129   129   129   129   129   129   129   129

  Columns 40 through 52

   129   129   129   129   129   129   129   129   129   129   129   129   129

  Columns 53 through 64

   129   129   129   129   129   129   129   129   129   129   129   129

Проверьте, что каждая преамбула имеет разное значение циклического сдвига.

disp(cyclicShift1)
  Columns 1 through 13

     0    13    26    39    52    65    78    91   104   117   130   143   156

  Columns 14 through 26

   169   182   195   208   221   234   247   260   273   286   299   312   325

  Columns 27 through 39

   338   351   364   377   390   403   416   429   442   455   468   481   494

  Columns 40 through 52

   507   520   533   546   559   572   585   598   611   624   637   650   663

  Columns 53 through 64

   676   689   702   715   728   741   754   767   780   793   806   819

Корневые индексы последовательности с различными значениями

Сконфигурируйте другой PRACH со свойствами по умолчанию.

prach2 = nrPRACHConfig;

Установите индекс логического корневого ряда PRACH равным 0. Для этого значения индекс физической корневой последовательности 129, как определено в ТС 38.211 Таблица 6.3.3.1-3.

prach2.SequenceIndex = 0;

Установите индекс строения циклического сдвига PRACH равным 0. Для этого значения каждая преамбула PRACH имеет одно и то же значение циклического сдвига, равное 0, на основании ТС 38.211 таблица 6.3.3.1-5.

prach2.ZeroCorrelationZone = 0;

Сгенерируйте 64 преамбулы PRACH для хранения индексов физического корня и значений циклического сдвига.

rootSequence2 = NaN(1,64);
cyclicShift2 = NaN(1,64);
for preambleIndex = 0:63
    prach2.PreambleIndex = preambleIndex;
    [~,info] = nrPRACH(carrier,prach2);
    rootSequence2(preambleIndex+1) = info.RootSequence;
    cyclicShift2(preambleIndex+1) = info.CyclicShift;
end

Проверяйте индексы физического корня и значения циклического сдвига. Несмотря на логический индекс корневой последовательности, prach.SequenceIndex, есть 0, не каждое значение индекса физической корневой последовательности является ожидаемым значением 129. Поскольку значение циклического сдвига является нулем в каждой преамбуле, функция nrPRACH получает индексы физической корневой последовательности путем взятия последовательных логических значений индекса. Возвращенные индексы физического корня соответствуют логическим индексам от 0 до 63 из ТС 38.211 Таблица 6.3.3.1-3.

disp(rootSequence2)
  Columns 1 through 13

   129   710   140   699   120   719   210   629   168   671    84   755   105

  Columns 14 through 26

   734    93   746    70   769    60   779     2   837     1   838    56   783

  Columns 27 through 39

   112   727   148   691    80   759    42   797    40   799    35   804    73

  Columns 40 through 52

   766   146   693    31   808    28   811    30   809    27   812    29   810

  Columns 53 through 64

    24   815    48   791    68   771    74   765   178   661   136   703
disp(cyclicShift2)
  Columns 1 through 13

     0     0     0     0     0     0     0     0     0     0     0     0     0

  Columns 14 through 26

     0     0     0     0     0     0     0     0     0     0     0     0     0

  Columns 27 through 39

     0     0     0     0     0     0     0     0     0     0     0     0     0

  Columns 40 through 52

     0     0     0     0     0     0     0     0     0     0     0     0     0

  Columns 53 through 64

     0     0     0     0     0     0     0     0     0     0     0     0

Входные параметры

свернуть все

Параметры конфигурации несущей для определенной нумерологии OFDM, заданные как nrCarrierConfig объект.

Параметры конфигурации PRACH, заданные как nrPRACHConfig объект.

Тип данных выходных символов, заданный как 'double' или 'single'.

Типы данных: char | string

Выходные аргументы

свернуть все

Символы PRACH, возвращенные как комплексный вектор-столбец или пустой массив. Количество символов зависит от строения PRACH prach. Функция возвращает пустой массив, когда преамбула PRACH не активна в текущем пазе.

Типы данных: single | double

Информация PRACH, зависящая от несущей, возвращается как структура, содержащая эти поля:

ОбластиОписание
RootSequenceИндекс или индексы физических корневых Последовательностей Задова-Чу
CyclicShiftЦиклический сдвиг или сдвиги Последовательности Задова-Чу
CyclicOffsetЦиклический сдвиг или сдвиги, соответствующие доплеровскому сдвигу 1/TSEQ, где TSEQ - длина последовательности PRACH (применяется только к ограниченному набору)
NumCyclicShiftsКоличество циклических сдвигов, соответствующих одной последовательности преамбулы PRACH

Примечание

Логический индекс корневой последовательности prach. SequenceIndex определяет возвращенный индекс физического корня Последовательности Задова-Чу RootSequence, на основании ТС 38.211 таблица 6.3.3.1-3 и таблица 6.3.3.1-4. Однако, если индекс преамбулы внутри камеры, заданный как prach PreambleIndex.Результаты в недостаточном количестве циклических сдвигов, доступных при индексе prach.SequenceIndex, функцию nrPRACH получает индекс физической корневой последовательности путем взятия последовательных индексов логической корневой последовательности в соответствии с процессом, описанным в TS 38.211 Раздел 6.3.3.1. В этом случае значение RootSequence отличается от ожидаемого индекса, заданного prach.SequenceIndex. Для получения примера смотрите Анализ индексов корневой последовательности PRACH.

Ссылки

[1] 3GPP TS 38.211. "NR; Физические каналы и модуляция ". 3rd Генерация Partnership Project; Группа технических спецификаций Радиосеть доступ.

Расширенные возможности

.

См. также

Функции

Объекты

Введенный в R2020a