Сгенерируйте индексы PUSCH DM-RS
возвращает матрицу, содержащую индексы ресурсного элемента (RE) опорного сигнала демодуляции (DM-RS) физического общего канала восходящей линии связи (PUSCH), как определено в разделе 6.4.1.1.3 TS 38.211 [1]. ind
= nrPUSCHDMRSIndices(carrier
,pusch
)carrier
задает параметры конфигурации несущей для определенной нумерологии OFDM. pusch
задает параметры конфигурации PUSCH. Возвращенные индексы основаны на 1 с использованием формы линейного индексирования.
задает опции выхода с помощью одного или нескольких аргументов пары "имя-значение". Неопределенные опции берут значения по умолчанию.ind
= nrPUSCHDMRSIndices(carrier
,pusch
,Name,Value
)
Создайте объект строения поставщика услуг с свойствами по умолчанию. Этот объект соответствует несущей на 10 МГц с интервалом поднесущих 15 кГц.
carrier = nrCarrierConfig;
Создайте объект строения физического восходящего общего канала (PUSCH) с заданными свойствами. Когда предварительное кодирование преобразования установлено на 0, тип формы волны является ортогональным делением мультиплексирования (CP-OFDM) с циклическим префиксом.
pusch = nrPUSCHConfig;
pusch.TransformPrecoding = 0;
pusch.TransmissionScheme = 'codebook';
pusch.NumAntennaPorts = 4;
pusch.TPMI = 0;
Сконфигурируйте объект опорного сигнала демодуляции PUSCH (DM-RS) с заданными параметрами.
pusch.DMRS.DMRSAdditionalPosition = 2; pusch.DMRS.DMRSTypeAPosition = 2; pusch.DMRS.DMRSPortSet = 3; pusch.DMRS.NIDNSCID = 15; pusch.DMRS.NSCID = 1;
Сгенерируйте индексы DM-RS, сопоставленные с PUSCH формы индексации индекса индекса.
ind = nrPUSCHDMRSIndices(carrier,pusch,'IndexStyle','subscript')
ind = 3744x3 uint32 matrix
2 3 1
4 3 1
6 3 1
8 3 1
10 3 1
12 3 1
14 3 1
16 3 1
18 3 1
20 3 1
⋮
Создайте строение несущей с интервалом между поднесущими 30 кГц и пропускной способностью передачи 5 МГц.
carrier = nrCarrierConfig; carrier.SubcarrierSpacing = 30; carrier.NSizeGrid = 11;
Создайте объект строения физического восходящего общего канала (PUSCH) с заданными свойствами. Когда предварительное кодирование преобразования установлено равным 1, тип формы волны является дискретным ортогональным делением мультиплексирования преобразования фурье (DFT-s-OFDM).
pusch = nrPUSCHConfig;
pusch.NSizeBWP = 9;
pusch.NStartBWP = 1;
pusch.PRBSet = 0:3;
pusch.TransformPrecoding = 1;
pusch.FrequencyHopping = 'intraSlot';
pusch.SecondHopStartPRB = 5;
Создайте объект опорного сигнала демодуляции PUSCH (DM-RS) с заданными свойствами.
dmrs = nrPUSCHDMRSConfig; dmrs.DMRSAdditionalPosition = 1; dmrs.DMRSTypeAPosition = 2; dmrs.DMRSPortSet = 3; dmrs.GroupHopping = 1; dmrs.SequenceHopping = 0; dmrs.NRSID = 10;
Присвойте объект строения PUSCH DM-RS свойству DMRS объекта строения PUSCH.
pusch.DMRS = dmrs;
Сгенерируйте символы и индексы PUSCH DM-RS для указанной несущей, строения PUSCH и форматирования вывода name-value
аргумент в виде пары.
sym = nrPUSCHDMRS(carrier,pusch,'OutputDataType','single')
sym = 96x1 single column vector
-0.7071 - 0.7071i
-0.7071 - 0.7071i
-0.7071 - 0.7071i
0.7071 - 0.7071i
-0.7071 - 0.7071i
-0.7071 - 0.7071i
-0.7071 - 0.7071i
0.7071 - 0.7071i
0.7071 + 0.7071i
-0.7071 + 0.7071i
⋮
ind = nrPUSCHDMRSIndices(carrier,pusch,'IndexBase','0based','IndexOrientation','bwp')
ind = 96x1 uint32 column vector
217
219
221
223
225
227
229
231
233
235
⋮
Создайте сетку части полосы пропускания (BWP), а затем отобразите символы DM-RS в сетке.
bwp = complex(zeros([pusch.NSizeBWP*12 carrier.SymbolsPerSlot pusch.NumLayers]));
bwp(ind+1) = sym; % Map the DM-RS symbols
Сопоставьте BWP с ресурсной сеткой поставщика услуг, а затем отобразите сетку поставщика услуг.
grid = complex(zeros([carrier.NSizeGrid*12 carrier.SymbolsPerSlot pusch.NumLayers])); % Create carrier resource grid offset = pusch.NStartBWP-carrier.NStartGrid; % BWP start location in the carrier grid grid(offset*12+1:(offset+pusch.NSizeBWP)*12,:,:) = bwp; imagesc(abs(grid(:,:,1))); axis xy; xlabel('OFDM Symbols'); ylabel('Subcarriers'); title('PUSCH DM-RS Resource Elements in the Carrier Resource Grid');
carrier
- Параметры конфигурации поставщика услугnrCarrierConfig
объектПараметры конфигурации несущей для определенной нумерологии OFDM, заданные как nrCarrierConfig
объект. Эта функция использует только эти свойства nrCarrierConfig
объект.
pusch
- параметры конфигурации PUSCHnrPUSCHConfig
объектПараметры конфигурации PUSCH, заданные как nrPUSCHConfig
объект. Эта функция использует только эти свойства nrPUSCHConfig
объект.
Поле свойств | Значения | Описание |
---|---|---|
NSizeBWP |
| Размер части полосы пропускания (BWP) с точки зрения количества физических ресурсных блоков (PRB). Значение по умолчанию |
NStartBWP |
| Запуск индекса PRB BWP относительно CRB 0. Значение по умолчанию |
NumLayers | 1 (по умолчанию), целое число от 1 до 4 | Количество слоев передачи |
MappingType | 'A' (по умолчанию), 'B' | Тип отображения PUSCH |
SymbolAllocation | [0 14] (по умолчанию), двухэлементный вектор неотрицательных целых чисел | Символы OFDM, выделенные для PUSCH |
PRBSet | [0:51] (по умолчанию), вектор неотрицательных целых чисел от 0 до 274 | PRB, выделенные для PUSCH в BWP |
TransformPrecoding | 0 (по умолчанию), 1 | Преобразуйте флаг предварительного кодирования, заданный как одно из следующих значений.
|
TransmissionScheme |
| Схема передачи PUSCH |
NumAntennaPorts | 1 (по умолчанию), 2 или 4 | Количество портов антенны. Значение должно быть больше или равно |
FrequencyHopping |
| Строение скачкообразного изменения частоты для PUSCH |
SecondHopStartPRB | 1 (по умолчанию), целое число от 0 до 274 | Запуск индекса PRB второго скачка относительно BWP |
DMRS |
|
Для получения дополнительной информации смотрите |
Задайте необязательные разделенные разделенными запятой парами Name,Value
аргументы. Name
- имя аргумента и Value
- соответствующее значение. Name
должны находиться внутри кавычек. Можно задать несколько аргументов в виде пар имен и значений в любом порядке Name1,Value1,...,NameN,ValueN
.
'IndexStyle','subscript','IndexBase','0based'
задает свойства форматирования индекса элемента ресурса nondefault.'IndexStyle'
- форма индексации RE'index'
(по умолчанию) | 'subscript'
Форма индексации RE, заданная в качестве одного из следующих значений:
'index'
- Индексы указаны в виде линейного индекса.
'subscript'
- Индексы указаны в форме строки [поднесущая, символ, антенна].
Типы данных: char
| string
'IndexBase'
- основа индексации RE'1based'
(по умолчанию) | '0based'
RE- основы индексации, заданные как одно из следующих значений:
'1based'
- Счетчик индексов начинается с 1.
'0based'
- Счетчик индексов начинается с 0.
Типы данных: char
| string
'IndexOrientation'
- Индексация ориентации ресурсных элементов'carrier'
(по умолчанию) | 'bwp'
Ориентация индексации ресурсных элементов, заданная как разделенная разделенными запятой парами, состоящая из 'IndexOrientation'
и одно из следующих значений:
'carrier'
- Индексы привязаны относительно сетки перевозчика.
'bwp'
- Индексы ссылаются относительно части полосы пропускания.
Типы данных: char
| string
ind
- индексы ресурсного элемента DM-RSИндексы ресурсного элемента DM-RS, возвращенные как одно из следующих значений:
N -by- P matrix - Функция возвращает этот тип значения при 'IndexStyle'
установлено в 'index'
. Количество столбцов зависит от TransmissionScheme
свойство nrPUSCHConfig
объект и вернулся как одно из этих значений.
Количество слоев передачи - когда схема передачи является некодовой
Количество сконфигурированных портов антенны - Когда схема передачи является кодовой книгой
M -by-3 матрица - Функция возвращает этот тип значения при 'IndexStyle'
установлено в 'subscript'
. Строки матрицы соответствуют нижним индексам [поднесущая, символ, антенна] на основе количества поднесущих, символов OFDM и количества антенн, соответственно.
В зависимости от значения 'IndexBase'
функция возвращает индексы на основе 1 или на основе 0. В зависимости от значения 'IndexOrientation'
функция возвращает либо индексы, ориентированные на несущую, либо индексы, ориентированные на BWP.
Типы данных: uint32
[1] 3GPP TS 38.211. "NR; Физические каналы и модуляция ". 3rd Генерация Partnership Project; Группа технических спецификаций Радиосеть доступ.
Указания и ограничения по применению:
Имена и значения в аргументах пары "имя-значение" должны быть константами времени компиляции. Для примера при указании формы линейной индексации включите {coder.Constant('IndexStyle'),coder.Constant('index')}
в -args
значение codegen
функция. Для получения дополнительной информации смотрите coder.Constant
(MATLAB Coder) класс.
У вас есть измененная версия этого примера. Вы хотите открыть этот пример с вашими правками?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.