Сгенерируйте символы 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. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.