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

prach1.SequenceIndex = 0;

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

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

prach2.SequenceIndex = 0;

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

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 из таблицы 6.3.3.1-3 TS 38.211.

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, на основе таблицы 6.3.3.1-3 TS 38.211 и Таблицы 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; Физические каналы и модуляция”. Проект Партнерства третьего поколения; Сеть радиодоступа Technical Specification Group.

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

Смотрите также

Функции

Объекты

Введенный в R2020a