exponenta event banner

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, как определено в TS 38.211 Таблица 6.3.3.1-3.

prach1.SequenceIndex = 0;

Установите индекс конфигурации циклического сдвига PRACH в значение 1. Для этого значения каждая преамбула PRACH имеет разное значение циклического сдвига, основанное на NCS из TS 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, как определено в TS 38.211 Таблица 6.3.3.1-3.

prach2.SequenceIndex = 0;

Установите индекс конфигурации циклического сдвига PRACH в значение 0. Для этого значения каждая преамбула PRACH имеет одно и то же значение циклического сдвига, равное 0, на основании TS 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 из TS 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 определяет возвращенный индекс последовательности Zadoff-Chu физического корня RootSequence, на основании TS 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. "НР; Физические каналы и модуляция. "Проект партнерства 3-го поколения; Техническая спецификация на сеть радиодоступа группы.

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

.

См. также

Функции

Объекты

Представлен в R2020a