Сгенерируйте символы PUSCH DM-RS
возвращает матрицу, содержащую опорный сигнал демодуляции (DM-RS) символы физического восходящего канала совместно использованный канал (PUSCH), как задано в Разделе TS 38.211 6.4.1.1.1 [1]. sym = nrPUSCHDMRS(carrier,pusch)carrier задает параметры конфигурации несущей для определенной нумерологии OFDM. pusch задает параметры конфигурации PUSCH.
Создайте объект настройки несущей со свойствами по умолчанию. Этот объект соответствует несущей на 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 = 1; pusch.DMRS.DMRSTypeAPosition = 2; pusch.DMRS.DMRSPortSet = 2; pusch.DMRS.NIDNSCID = 10; pusch.DMRS.NSCID = 1;
Сгенерируйте символы DM-RS, сопоставленные с PUSCH single тип данных.
sym = nrPUSCHDMRS(carrier,pusch,'OutputDataType','single')
sym = 624x4 single matrix
-0.3536 - 0.3536i 0.0000 + 0.0000i 0.0000 + 0.0000i 0.0000 + 0.0000i
0.3536 - 0.3536i 0.0000 + 0.0000i 0.0000 + 0.0000i 0.0000 + 0.0000i
-0.3536 + 0.3536i 0.0000 + 0.0000i 0.0000 + 0.0000i 0.0000 + 0.0000i
-0.3536 - 0.3536i 0.0000 + 0.0000i 0.0000 + 0.0000i 0.0000 + 0.0000i
-0.3536 + 0.3536i 0.0000 + 0.0000i 0.0000 + 0.0000i 0.0000 + 0.0000i
0.3536 - 0.3536i 0.0000 + 0.0000i 0.0000 + 0.0000i 0.0000 + 0.0000i
-0.3536 - 0.3536i 0.0000 + 0.0000i 0.0000 + 0.0000i 0.0000 + 0.0000i
0.3536 + 0.3536i 0.0000 + 0.0000i 0.0000 + 0.0000i 0.0000 + 0.0000i
0.3536 - 0.3536i 0.0000 + 0.0000i 0.0000 + 0.0000i 0.0000 + 0.0000i
0.3536 - 0.3536i 0.0000 + 0.0000i 0.0000 + 0.0000i 0.0000 + 0.0000i
⋮
Создайте настройку несущей с расстоянием между поднесущими на 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;Создайте объект (DM-RS) опорного сигнала демодуляции PUSCH с заданными свойствами.
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) в терминах количества физических блоков ресурса (PRBs). Значение по умолчанию |
NStartBWP |
| Запуск индекса PRB BWP относительно CRB 0. Значение по умолчанию |
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 |
TPMI | 0 (значений по умолчанию), целое число от 0 до 27 | Переданный предварительно кодирующий матричный индикатор. Это свойство применимо когда |
NumAntennaPorts | 1 (значение по умолчанию), 2, или 4 | Количество портов антенны. Значение должно быть больше или быть равно |
FrequencyHopping |
| Настройка скачкообразного движения частоты для PUSCH |
SecondHopStartPRB | 1 (значение по умолчанию), целое число от 0 до 274 | Запуск индекса PRB второго транзитного участка относительно BWP |
DMRS |
|
Для получения дополнительной информации смотрите |
datatype — Тип данных для сгенерированных символов DM-RS'double' (значение по умолчанию) | 'single'Тип данных для сгенерированных символов DM-RS в виде 'double' или 'single'.
Типы данных: char | string
sym — Символы DM-RSСимволы DM-RS, возвращенные как комплексная матрица. Количество столбцов соответствует количеству сконфигурированных портов антенны.
Типы данных: single | double
Поддержка комплексного числа: Да
[1] 3GPP TS 38.211. “NR; Физические каналы и модуляция”. Проект Партнерства третьего поколения; Сеть радиодоступа Technical Specification Group.
Указания и ограничения по применению:
datatype входной параметр должен быть постоянным временем компиляции. Например, при определении 'single' когда выходные данные вводят, включают {coder.Constant('OutputDataType'),coder.Constant('single')} в -args значение codegen функция. Для получения дополнительной информации смотрите coder.Constant (MATLAB Coder) класс.
У вас есть модифицированная версия этого примера. Вы хотите открыть этот пример со своими редактированиями?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.