Сгенерируйте индексы элемента ресурса PUSCH
[
возвращает ind
,info
] = nrPUSCHIndices(carrier
,pusch
)ind
в матричной форме, которая содержит физический восходящий канал на основе 1 совместно использованный канал (PUSCH) индексы элемента ресурса (RE), как задано в Разделах TS 38.211 6.3.1.6 и 6.3.1.7 [1]. Количество столбцов в ind
равно количеству сконфигурированных портов антенны. carrier
задает параметры конфигурации поставщика услуг для определенной нумерологии OFDM и pusch
задает настройку PUSCH. Функция также возвращает структуру info
, который содержит дополнительную информацию о связанных физических опорных сигналах, емкости в битах и способности символа.
Создайте объект настройки поставщика услуг со свойствами по умолчанию. Этот объект соответствует поставщику услуг на 10 МГц с интервалом поднесущей на 15 кГц.
carrier = nrCarrierConfig;
Создайте объект настройки PUSCH с основанной на книге шифров передачей. Определите номер портов антенны к 4, схемы модуляции к pi/2-BPSK, переданного предварительно кодирующего матричного индикатора к 10, и преобразуйте предварительное кодирование к 0. То, когда преобразовывают предварительное кодирование, 0, тип формы волны является циклически-префиксным ортогональным делением частоты, мультиплексирующим (CP-OFDM).
pusch = nrPUSCHConfig; pusch.TransformPrecoding = 0; pusch.Modulation = 'pi/2-BPSK'; pusch.TransmissionScheme = 'codebook'; pusch.NumAntennaPorts = 4; pusch.TPMI = 10;
Сгенерируйте индексы PUSCH в форме индекса.
[ind,info] = nrPUSCHIndices(carrier,pusch,'IndexStyle','subscript')
ind = 32448x3 uint32 matrix
1 1 1
2 1 1
3 1 1
4 1 1
5 1 1
6 1 1
7 1 1
8 1 1
9 1 1
10 1 1
⋮
info = struct with fields:
G: 8112
Gd: 8112
NREPerPRB: 156
DMRSSymbolSet: 2
PTRSSymbolSet: [1x0 double]
Создайте объект настройки поставщика услуг со свойствами по умолчанию. Этот объект соответствует 30 кГц интервала поднесущей и пропускной способности передачи на 20 МГц.
carrier = nrCarrierConfig; carrier.SubcarrierSpacing = 30; carrier.NSizeGrid = 51;
Создайте объект настройки PUSCH с заданными свойствами. То, когда преобразовывают предварительное кодирование, является 1, тип формы волны является ортогональным делением частоты распространения дискретного преобразования Фурье, мультиплексирующим (DFT-s-OFDM).
pusch = nrPUSCHConfig; pusch.NStartBWP = 10; pusch.NSizeBWP = 41; pusch.Modulation = '16QAM'; pusch.NID = []; % Set NID equal to the NCellID property of carrier. pusch.PRBSet = 0:5; pusch.TransformPrecoding = 1; pusch.FrequencyHopping = 'intraSlot'; pusch.SecondHopStartPRB = 3;
Сгенерируйте индексы PUSCH, установив ориентацию индекса относительно сетки поставщика услуг.
[ind,info] = nrPUSCHIndices(carrier,pusch,'IndexOrientation','carrier')
ind = 864x1 uint32 column vector
121
122
123
124
125
126
127
128
129
130
⋮
info = struct with fields:
G: 3456
Gd: 864
NREPerPRB: 144
DMRSSymbolSet: [2 7]
PTRSSymbolSet: [1x0 double]
Сгенерируйте символы PUSCH одного типа данных.
numDataBits = info.G; cws = randi([0 1],numDataBits,1); sym = nrPUSCH(carrier,pusch,cws,'OutputDataType','single')
sym = 864x1 single column vector
-0.7454 + 0.2981i
0.3406 - 0.2312i
-0.1153 + 0.2756i
1.1921 - 0.3658i
-0.3968 - 0.0277i
-0.8788 - 0.6493i
-0.8737 + 0.8318i
-0.5764 + 0.0269i
-1.6638 + 0.0482i
-1.0270 - 0.1347i
⋮
Постройте сгенерированные символы и индексы на сетке ресурса поставщика услуг.
grid = complex(zeros([carrier.NSizeGrid*12 carrier.SymbolsPerSlot pusch.NumLayers])); grid(ind) = sym; imagesc(abs(grid(:,:,1))); axis xy; xlabel('OFDM Symbols'); ylabel('Subcarriers'); title('PUSCH Resource Elements in Carrier Resource Grid');
carrier
— Параметры конфигурации поставщика услугnrCarrierConfig
объектПараметры конфигурации поставщика услуг для определенной нумерологии OFDM в виде nrCarrierConfig
объект. Эта функция использует только эти свойства nrCarrierConfig
объект.
Поле свойства | Значения | Описание |
---|---|---|
SubcarrierSpacing | 15 (значение по умолчанию), 30, 60, 120, 240 | Интервал поднесущей в kHz |
CyclicPrefix | 'normal' (значение по умолчанию), 'расширенное' | Длина циклического префикса в виде одной из этих опций.
Для нумерологии, заданной в Разделе TS 38.211 4.2, расширенная длина циклического префикса применяется только для интервала поднесущей на 60 кГц. |
NSizeGrid | 52 (значения по умолчанию), целое число от 1 до 275 | Количество ресурса блокируется в сетке ресурса поставщика услуг |
NStartGrid | 0 (значений по умолчанию), целое число от 0 до 2 199 | Запустите сетки ресурса поставщика услуг относительно общего блока 0 ресурса (CRB 0) |
NSlot | 0 (значение по умолчанию), неотрицательный целочисленный скаляр | Номер слота. Можно установить |
pusch
— Параметры конфигурации PUSCHnrPUSCHConfig
объектПараметры конфигурации PUSCH в виде nrPUSCHConfig
объект. Эта функция только использует их nrPUSCHConfig
свойства объектов.
Поле свойства | Значения | Описание |
---|---|---|
NSizeBWP |
| Размер части пропускной способности (BWP) в терминах количества физических блоков ресурса (PRBs). Значение по умолчанию |
NStartBWP |
| Запуск индекса PRB BWP относительно CRB 0. Значение по умолчанию |
Modulation | 'QPSK', '16QAM', '64QAM', или '256QAM', 'pi/2-BPSK', строковый скаляр или символьный массив | Схема Modulation кодовой комбинации |
NumLayers | 1 (значение по умолчанию), целое число от 1 до 4 | Количество слоев передачи |
MappingType | (Значение по умолчанию), 'B' | Отображение типа PUSCH |
SymbolAllocation | [0 14] (значение по умолчанию), двухэлементный вектор из неотрицательных целых чисел | Символы OFDM выделяются для PUSCH |
PRBSet | [0:51] (значение по умолчанию), вектор из неотрицательных целых чисел от 0 до 274 | PRBs выделяется для PUSCH в BWP |
TransformPrecoding | 0 (значение по умолчанию), 1 | Преобразуйте флаг перед кодированием в виде одного из этих значений.
|
TransmissionScheme |
| Схема передачи PUSCH |
NumAntennaPorts | 1 (значение по умолчанию), 2, или 4 | Количество портов антенны. Значение должно быть больше или быть равно |
FrequencyHopping |
| Режим скачкообразного движения частоты для PUSCH |
SecondHopStartPRB | 1 (значение по умолчанию), целое число от 0 до 274 | Запуск индекса PRB второго транзитного участка относительно |
RNTI | 1 (значение по умолчанию), целое число от 0 до 65 535 | Радиосеть временный идентификатор оборудования пользователя |
DMRS |
|
Для получения дополнительной информации смотрите |
EnablePTRS | 0 (значение по умолчанию), 1 | Настройка PT-RS в виде одного из этих значений.
|
PTRS |
|
Для получения дополнительной информации смотрите |
Задайте дополнительные разделенные запятой пары Name,Value
аргументы. Name
имя аргумента и Value
соответствующее значение. Name
должен появиться в кавычках. Вы можете задать несколько аргументов в виде пар имен и значений в любом порядке, например: Name1, Value1, ..., NameN, ValueN
.
'IndexStyle','subscript','IndexBase','0based'
задает форму индексации RE и основу, соответственно, выхода.'IndexStyle'
— Форма индексации элемента ресурса'index'
(значение по умолчанию) | 'subscript'
Индексация элемента ресурса формируется в виде разделенной запятой пары, состоящей из 'IndexStyle'
и одно из этих значений:
'index'
— Индексы находятся в линейной форме индекса.
'subscript'
— Индексы находятся в [поднесущая, символ, антенна] форма строки индекса.
Типы данных: char |
string
'IndexBase'
— Основа индексации элемента ресурса'1based'
(значение по умолчанию) | '0based'
Индексация элемента ресурса базируется в виде разделенной запятой пары, состоящей из 'IndexBase'
и одно из этих значений:
'1based'
— Подсчет индекса запускается от одного.
'0based'
— Подсчет индекса начинает с нуля.
Типы данных: char |
string
'IndexOrientation'
— Ориентация индексации элемента ресурса'carrier'
(значение по умолчанию) | 'bwp'
Ориентация индексации элемента ресурса в виде разделенной запятой пары, состоящей из 'IndexOrientation'
и одно из этих значений:
'carrier'
— На индексы ссылаются относительно сетки поставщика услуг.
'bwp'
— На индексы ссылаются относительно BWP.
Это свойство применимо только когда TransformPrecoding
свойство nrPUSCHConfig
объект установлен в 0
.
Типы данных: char |
string
ind
— Индексы элемента ресурса PUSCHИндексы элемента ресурса PUSCH, возвращенные как одно из этих значений.
N-by-P матрица — функция возвращает этот тип значения когда 'IndexStyle'
установлен в 'index'
.
M-by-3 матрица — функция возвращает этот тип значения когда 'IndexStyle'
установлен в 'subscript'
. Строки матрицы соответствуют [поднесущая, символ, антенна] индексы на основе количества поднесущих, символов OFDM и количества антенн, соответственно.
В зависимости от значения 'IndexBase'
, функция возвращает или индексы на основе 0 или на основе 1. В зависимости от значения 'IndexOrientation'
, функция возвращает или ориентированные индексы поставщика услуг или ориентированные индексы BWP.
Типы данных: uint32
info
— Информация о ресурсе PUSCHИнформация о ресурсе PUSCH, возвращенная как структура, содержащая эти поля.
Поле | Описание |
---|---|
G | Емкость в битах PUSCH. Это значение должно быть равно длине кодовой комбинации от восходящего канала совместно использованный канал (UL-SCH) транспортный канал. |
Gd | Количество REs на слой или порт |
DMRSSymbolSet | Местоположения символа OFDM в пазе, содержащем опорный сигнал демодуляции (DM-RS). Символы на основе 0. |
NREPerPRB | Количество REs на PRB, выделенный PUSCH |
PTRSSymbolSet | Местоположения символа OFDM в пазе, содержащем опорный сигнал отслеживания фазы (PT-RS). Символы на основе 0. |
[1] 3GPP TS 38.211. “NR; Физические каналы и модуляция”. Проект Партнерства третьего поколения; Сеть радиодоступа Technical Specification Group.
Указания и ограничения по применению:
Имена и значения в аргументах пары "имя-значение" должны быть константами времени компиляции. Например, чтобы задать линейную форму индексации, включайте {coder.Constant('IndexStyle'),coder.Constant('index')}
в -args
значение codegen
функция. Для получения дополнительной информации смотрите coder.Constant
(MATLAB Coder) класс.
У вас есть модифицированная версия этого примера. Вы хотите открыть этот пример со своими редактированиями?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.