Декодируйте символы модуляции PUSCH
[
возвращает мягкие биты cw
,symbols
] = nrPUSCHDecode(sym
,mod
,nid
,rnti
)cw
и символы созвездия symbols
в результате обратной операции обработки физического восходящего общего канала (PUSCH) из TS 38.211 Раздел 6.3.1 [1]. Декодирование состоит из демодуляции слоев, демодуляции символов sym
со схемой модуляции mod
, и дескремблирование с скремблированием тождеств nid
. Область входа rnti
является временным идентификатором радиосети (RNTI) пользовательского оборудования (UE). multi-input multi-output (MIMO) амортизация и преобразование амортизации отключены. Когда вы используете этот синтаксис, функция принимает, что входные символы содержат только символы данных.
[
задает амортизацию преобразования как логическое значение и количество выделенных ресурсных блоков PUSCH. Задайте эти входы в дополнение к входным аргументам во втором синтаксисе. Когда cw
,symbols
] = nrPUSCHDecode(___,transformPrecode
,mrb
)transformPrecode
установлено в true
, функция применяет обратное преобразование предварительного кодирования, заданное в TS 38.211 Раздел 6.3.1.4. mrb
определяет выделенное количество ресурсных блоков PUSCH. Амортизация MIMO отключена. Когда вы используете этот синтаксис, функция принимает, что входные символы содержат только символы данных.
[
задает схему передачи в дополнение к входным параметрам в третьем синтаксисе. Когда cw
,symbols
] = nrPUSCHDecode(___,txScheme
,nLayers
,tpmi
)txScheme
установлено в 'codebook'
функция выполняет амортизацию MIMO на основе заданного количества слоев передачи nLayers
и переданный матричный индикатор предварительного кодирования (TPMI) tpmi
. Когда вы используете этот синтаксис, функция принимает, что входные символы содержат только символы данных.
[
возвращает мягкие биты cw
,symbols
] = nrPUSCHDecode(carrier
,pusch
,sym
,nVar
)cw
и символы созвездия symbols
для заданного строения поставщика услуг carrier
и строение PUSCH pusch
. Область входа sym
- принятые символы PUSCH для каждого слоя и nVar
задает коэффициент масштабирования отклонения шума для мягких бит. Когда вы используете этот синтаксис с предварительным кодированием преобразования, функция принимает, что входные символы содержат данные и символы PT-RS (если применимо) и использует только символы данных для дальнейшей обработки.
[
задает целевую скорость кода cw
,symbols
] = nrPUSCHDecode(carrier
,pusch
,tcr
,tbs
,oack
,ocsi1
,ocsi2
,sym
,nVar
)tcr
, размер транспортного блока tbs
и управляющую информацию восходящей линии связи. oack
- длина полезной нагрузки гибридного автоматического запроса на повторное подтверждение (HARQ-ACK). ocsi1
- длина полезной нагрузки части 1 информации о состоянии канала (CSI). ocsi2
- длина полезной нагрузки CSI-части 2. Когда вы используете этот синтаксис с предварительным кодированием преобразования, функция принимает, что входные символы содержат данные и символы PT-RS (если применимо), и использует только символы данных для дальнейшей обработки. Функция также обрабатывает заполнители UCI при дескремблировании.
Задайте случайную последовательность двоичных значений, соответствующих кодовому слову 8064 бит.
cw = randi([0 1],8064,1);
Используя 256-QAM модуляцию, сгенерируйте символы модуляции PUSCH для заданного идентификационного номера камеры физического уровня, RNTI и двух слоев передачи. По умолчанию эта функция отключает предварительное кодирование преобразования и передачу на основе некодбука.
modulation = '256QAM';
nlayers = 2;
ncellid = 17;
rnti = 111;
sym = nrPUSCH(cw,modulation,nlayers,ncellid,rnti)
sym = 504×2 complex
-0.9971 - 0.8437i 0.0767 + 0.2301i
0.3835 + 0.2301i 0.9971 - 0.5369i
-0.3835 - 1.1504i -0.3835 + 0.9971i
0.5369 + 0.0767i -0.9971 + 0.8437i
1.1504 - 0.9971i -0.8437 - 0.6903i
-0.6903 + 0.0767i 1.1504 - 0.3835i
0.8437 + 0.6903i 1.1504 + 0.2301i
-0.6903 - 0.2301i -0.8437 + 1.1504i
0.0767 + 0.8437i -0.0767 + 0.6903i
0.3835 - 0.8437i 0.3835 + 0.9971i
⋮
Декодируйте символы модуляции PUSCH.
demod = nrPUSCHDecode(sym,modulation,ncellid,rnti)
demod = 8064×1
1010 ×
-1.1529
-0.8471
0.2118
-0.0941
-0.0235
0.0235
0.0235
-0.0235
-0.0235
-0.0941
⋮
Выполните жесткое решение по мягкой метрике.
rxcw = double(demod<0)
rxcw = 8064×1
1
1
0
1
1
0
0
1
1
1
⋮
Сравните результат с исходным кодовым словом.
isequal(cw,rxcw)
ans = logical
1
Задайте случайную последовательность двоичных значений, соответствующих кодовому слову 8064 бит.
cw = randi([0 1],8064,1);
Используя модуляцию QPSK, сгенерируйте символы модуляции PUSCH для заданного идентификационного номера камеры физического слоя, RNTI, полосы пропускания и одного слоя передачи. Включите преобразование предварительного кодирования и передачи на основе кодовой книги на основе заданной полосы пропускания PUSCH, TPMI и четырех антенн.
modulation = 'QPSK'; ncellid = 17; rnti = 111; nlayers = 1; transformPrecode = true; txScheme = 'codebook'; mrb = 6; tpmi = 1; nports = 4; sym = nrPUSCH(cw,modulation,nlayers,ncellid,rnti,transformPrecode,mrb,txScheme,nports,tpmi)
sym = 4032×4 complex
0.0000 + 0.0000i -0.1667 + 0.0833i 0.0000 + 0.0000i 0.0000 + 0.0000i
0.0000 + 0.0000i -0.0632 - 0.2911i 0.0000 + 0.0000i 0.0000 + 0.0000i
0.0000 + 0.0000i -0.1519 - 0.0450i 0.0000 + 0.0000i 0.0000 + 0.0000i
0.0000 + 0.0000i 0.3677 + 0.3664i 0.0000 + 0.0000i 0.0000 + 0.0000i
0.0000 + 0.0000i -0.3079 - 0.5027i 0.0000 + 0.0000i 0.0000 + 0.0000i
0.0000 + 0.0000i -0.8082 - 0.1640i 0.0000 + 0.0000i 0.0000 + 0.0000i
0.0000 + 0.0000i -0.0640 - 0.2388i 0.0000 + 0.0000i 0.0000 + 0.0000i
0.0000 + 0.0000i 0.3936 - 0.4160i 0.0000 + 0.0000i 0.0000 + 0.0000i
0.0000 + 0.0000i 0.0851 - 0.4625i 0.0000 + 0.0000i 0.0000 + 0.0000i
0.0000 + 0.0000i 0.0345 - 0.3333i 0.0000 + 0.0000i 0.0000 + 0.0000i
⋮
Декодируйте символы модуляции PUSCH, принимая нулевое отклонение шума.
nVar = 0; demod = nrPUSCHDecode(sym,modulation,ncellid,rnti,nVar,transformPrecode,mrb,txScheme,nlayers,tpmi)
demod = 8064×1
1010 ×
-2.0000
-2.0000
2.0000
-2.0000
-2.0000
2.0000
2.0000
-2.0000
-2.0000
-2.0000
⋮
Выполните жесткое решение по мягкой метрике.
rxcv = double(demod<0)
rxcv = 8064×1
1
1
0
1
1
0
0
1
1
1
⋮
Сравните результат с исходным кодовым словом.
isequal(cw,rxcv)
ans = logical
1
Создайте объект строения поставщика услуг с тождествами камеры физического слоя как 42
.
carrier = nrCarrierConfig; carrier.NCellID = 42;
Создайте объект строения PUSCH с этими свойствами.
pusch = nrPUSCHConfig; pusch.Modulation = '256QAM'; pusch.NumLayers = 2; pusch.RNTI = 111; pusch.TransformPrecoding = 0; pusch.TransmissionScheme = 'nonCodebook'; pusch.NID = []; % Use empty to be equal to NCellID of carrier pusch.NSizeBWP = 25; pusch.NStartBWP = 10; pusch.PRBSet = 0:pusch.NSizeBWP-1; % Occupy entire bandwidth part
Сгенерируйте символы PUSCH для одного кодового слова 8064
биты с заданным строением несущей и строением общего канала восходящей линии связи.
cw = randi([0 1],8064,1); sym = nrPUSCH(carrier,pusch,cw)
sym = 504×2 complex
-0.3835 - 0.8437i -1.1504 - 0.3835i
0.6903 + 0.6903i 0.0767 + 0.3835i
-1.1504 - 0.2301i -1.1504 + 0.2301i
0.9971 - 0.6903i -0.2301 - 0.8437i
-0.0767 + 0.2301i 0.2301 + 0.8437i
-0.6903 + 1.1504i 0.8437 + 0.3835i
-0.0767 + 0.8437i -0.3835 + 0.5369i
0.3835 + 0.5369i -0.8437 - 1.1504i
0.3835 + 0.2301i -1.1504 - 0.8437i
0.2301 - 0.0767i -0.3835 + 1.1504i
⋮
Добавьте добавку белого Гауссова шума (AWGN) к символам PUSCH. Затем демодулируйте, чтобы получить мягкие битовые оценки.
SNR = 30; % SNR in dB
rxsym = awgn(sym,SNR);
demod = nrPUSCHDecode(carrier,pusch,rxsym)
demod = 8064×1
1010 ×
-0.2106
-0.8118
0.0949
-0.0824
-0.0231
0.0294
0.0239
-0.0176
-1.4404
-0.1963
⋮
Выполните жесткое решение по мягкой метрике.
rxcw = double(demod<0);
Сравните результат с исходным кодовым словом.
isequal(cw,rxcw)
ans = logical
1
Создайте объект строения поставщика услуг с интервалом между поднесущими 15 кГц и пропускной способностью передачи 10 МГц.
carrier = nrCarrierConfig;
carrier.SubcarrierSpacing = 15;
carrier.CyclicPrefix = 'normal';
carrier.NSizeGrid = 52;
Создайте объект строения физического восходящего общего канала (PUSCH) со схемой модуляции QPSK и без скачкообразного изменения частоты. Установите коэффициент бета- смещения для гибридного автоматического подтверждения запроса повторения (HARQ-ACK) равным 20 и установите коэффициент бета- смещения для части 1 информации о состоянии канала (CSI) и части 2 CSI равным 6,5 каждый. Задайте коэффициент масштабирования 0,8, который ограничивает количество ресурсных элементов (RE), назначенных для UCI.
pusch = nrPUSCHConfig; pusch.Modulation = 'QPSK'; pusch.FrequencyHopping = 'neither'; pusch.BetaOffsetACK = 20; pusch.BetaOffsetCSI1 = 6.5; pusch.BetaOffsetCSI2 = 6.5; pusch.UCIScaling = 0.8;
Установите целевую скорость кода, длины полезной нагрузки данных общего канала восходящей линии связи (UL-SCH), HARQ-ACK, CSI часть 1 и CSI часть 2.
tcr = 0.65; % Target code rate tbs = 900; % Payload length of UL-SCH data (transport block size) oack = 1; % Payload length of HARQ-ACK ocsi1 = 55; % Payload length of CSI part 1 ocsi2 = 72; % Payload length of CSI part 2
Получите согласованные по скорости длины данных, HARQ-ACK, CSI часть 1 и CSI часть 2.
rmInfo = nrULSCHInfo(pusch,tcr,tbs,oack,ocsi1,ocsi2);
Создайте случайные биты полезной нагрузки для данных UL-SCH, HARQ-ACK, части 1 CSI и части 2 CSI.
data = randi([0 1],tbs,1); ack = randi([0 1],oack,1); csi1 = randi([0 1],ocsi1,1); csi2 = randi([0 1],ocsi2,1);
Создайте системный object™ энкодера UL-SCH.
encUL = nrULSCH;
Загрузите транспортный блок в энкодер UL-SCH.
setTransportBlock(encUL,data);
Получите закодированные биты длины rmInfo.GULSCH
вызовом энкодера.
rv = 0; % Redundancy version 0
culsch = encUL(pusch.Modulation,pusch.NumLayers,rmInfo.GULSCH,rv);
Закодируйте случайную полезную нагрузку HARQ-ACK, части 1 CSI и части 2 CSI для допустимых по скорости выходных длин, полученных из rmInfo
структура.
cack = nrUCIEncode(ack,rmInfo.GACK,pusch.Modulation); ccsi1 = nrUCIEncode(csi1,rmInfo.GCSI1,pusch.Modulation); ccsi2 = nrUCIEncode(csi2,rmInfo.GCSI2,pusch.Modulation);
Получите кодовое слово из закодированных бит UL-SCH и закодированных бит типов UCI.
[cw,info] = nrULSCHMultiplex(pusch,tcr,tbs,culsch,cack,ccsi1,ccsi2)
cw = 16224x1 int8 column vector
0
1
0
1
1
0
0
0
0
0
⋮
info = struct with fields:
ULSCHIndices: [3244x1 uint32]
ACKIndices: [338x1 uint32]
CSI1Indices: [7252x1 uint32]
CSI2Indices: [5390x1 uint32]
UCIXIndices: [0x1 uint32]
UCIYIndices: [169x1 uint32]
Получите символы PUSCH.
sym = nrPUSCH(carrier,pusch,cw);
Декодируйте символы PUSCH.
rxcw = nrPUSCHDecode(carrier,pusch,tcr,tbs,oack,ocsi1,ocsi2,sym);
Проверяйте, что полученные мягкие биты равны в местоположениях, отличных от заполнителей UCI.
indNoPlaceHolder = setdiff(1:length(cw),[info.UCIXIndices;info.UCIYIndices]); isequal(cw(indNoPlaceHolder),int8(rxcw(indNoPlaceHolder)<0))
ans = logical
1
Демультиплексируйте кодированные UL-SCH и кодированные типы UCI из принятого кодового слова.
[rxculsch,rxcack,rxccsi1,rxccsi2] = nrULSCHDemultiplex(pusch,tcr,tbs,oack,ocsi1,ocsi2,rxcw);
Декодируйте биты UL-SCH.
decUL = nrULSCHDecoder; decUL.TransportBlockLength = tbs; decUL.TargetCodeRate = tcr; [decULBits,blkErr] = decUL(rxculsch,pusch.Modulation,pusch.NumLayers,rv);
Декодируйте HARQ-ACK, CSI часть 1 и CSI часть 2 битах.
decack = nrUCIDecode(rxcack,oack,pusch.Modulation); deccsi1 = nrUCIDecode(rxccsi1,ocsi1,pusch.Modulation); deccsi2 = nrUCIDecode(rxccsi2,ocsi2,pusch.Modulation);
Проверьте декодированные биты UL-SCH, HARQ-ACK, части 1 CSI и части 2 CSI.
isequal(data,decULBits)
ans = logical
1
isequal(decack,ack)
ans = logical
1
isequal(deccsi1,csi1)
ans = logical
1
isequal(deccsi2,csi2)
ans = logical
1
carrier
- Параметры конфигурации поставщика услугnrCarrierConfig
объектПараметры конфигурации несущей для определенной нумерологии OFDM, заданные как nrCarrierConfig
объект. Эта функция использует только эти nrCarrierConfig
свойства объекта.
NCellID
- тождества камер физического слоя1
(по умолчанию) | целое число от 0 до 1007Тождества камеры физического слоя, заданный как целое число от 0 до 1007.
Типы данных: double
SubcarrierSpacing
- Интервал между поднесущими в кГц15
(по умолчанию) | 30
| 60
| 120
| 240
Интервалы между поднесущими в кГц, для всех каналов и опорных сигналов несущей, заданные как 15
, 30
, 60
, 120
, или 240
.
Типы данных: double
CyclicPrefix
- Длина циклического префикса'normal'
(по умолчанию) | 'extended'
Длина циклического префикса, заданная как один из следующих опций.
'normal'
- Используйте это значение, чтобы задать нормальный циклический префикс. Эта опция соответствует 14 символам OFDM в пазе.
'extended'
- Используйте это значение для задания расширенного циклического префикса. Эта опция соответствует 12 символам OFDM в пазе. Для нумераций, указанных в TS 38.211 Раздел 4.2, удлиненная длина циклического префикса применяется только для интервалов между поднесущими 60 кГц.
Типы данных: char
| string
NSizeGrid
- Количество RB в ресурсной сетке поставщика услуг52
(по умолчанию) | целое число от 1 до 275Количество RB в ресурсной сетке поставщика услуг, заданное в виде целого числа от 1 до 275. Значение по умолчанию 52
соответствует максимальному количеству RB несущей 10 МГц с 15 кГц SCS.
Типы данных: double
NStartGrid
- Запуск ресурсной сетки поставщика услуг связи относительно CRB 00
(по умолчанию) | целое число от 0 до 2199Запуск ресурсной сетки поставщика услуг связи относительно CRB 0, заданный в виде целого числа от 0 до 2199. Это свойство является параметром более высокого уровня offsetToCarrier.
Типы данных: double
NSlot
- Номер паз0
(по умолчанию) | неотрицательное целое числоНомер слота, заданный как неотрицательное целое число. Можно задать NSlot
значение, больше, чем количество пазов на систему координат. Для примера можно задать это значение с помощью счетчиков цикла передачи в MATLAB® симуляция. В этом случае, возможно, вам придется убедиться, что значение свойства по модулю является количеством пазов на систему координат в коде вызова.
Типы данных: double
pusch
- параметры конфигурации PUSCHnrPUSCHConfig
объектПараметры конфигурации PUSCH для определенной нумерологии OFDM, заданные как nrPUSCHConfig
объект. Эта функция использует только эти nrPUSCHConfig
свойства объекта.
Modulation
- Схема модуляции'QPSK'
(по умолчанию) | 'pi/2-BPSK'
| '16QAM'
| '64QAM'
| '256QAM'
| строковый скалярСхема модуляции, заданная как 'QPSK'
, 'pi/2-BPSK'
, '16QAM'
, '64QAM'
, или '256QAM'
, строковый скаляр или символьный массив.
Схема модуляции | Количество Бит на символ |
---|---|
'pi/2-BPSK' | 1 |
'QPSK' | 2 |
'16QAM' | 4 |
'64QAM' | 6 |
'256QAM' | 8 |
Типы данных: char
| string
NumLayers
- Количество слоев передачи1
(по умолчанию) | 2
| 3
| 4
Количество слоев передачи, заданное как 1
, 2
, 3
, или 4
.
Типы данных: double
MappingType
- Тип отображения'A'
(по умолчанию) | 'B'
Тип отображения физического общего канала, заданный как 'A'
или 'B'
.
Типы данных: char
| string
SymbolAllocation
- выделение символа OFDM[0 14]
(по умолчанию) | двухэлементный вектор неотрицательных целых чиселВыделение символа OFDM физического общего канала, заданное как двухэлементный вектор неотрицательных целых чисел. Первый элемент этого свойства представляет начало выделения символа (на основе 0). Второй элемент представляет количество выделенных символов OFDM.
Когда вы устанавливаете это свойство на []
или второго элемента вектора, для 0
, для канала не выделен символ.
Типы данных: double
PRBSet
- распределение PRB[0:51]
(по умолчанию) | вектор из целых чисел от 0 до 274Выделение физического ресурсного блока (PRB) PUSCH в BWP, заданное как вектор целых чисел от 0 до 274.
Типы данных: double
TransformPrecoding
- Преобразование предварительного кодирования0
или false
(по умолчанию) | 1
или true
Прекодирование преобразования, заданное как одно из следующих значений.
0
(false
) - Отключить предварительное кодирование преобразования. Тип формы волны является циклически-префиксным ортогональным частотным делением мультиплексированием (CP-OFDM).
1
(true
) - Включите предварительное кодирование преобразования. Тип формы волны является дискретным ортогональным частотным делением преобразования Фурье (DFT-s-OFDM).
Типы данных: double
| logical
TransmissionScheme
- Схема передачи PUSCH'nonCodebook'
(по умолчанию) | 'codebook'
Схема трансмиссии PUSCH, заданная как 'nonCodebook'
или 'codebook'
.
Типы данных: char
| string
TPMI
- Переданный матричный индикатор предварительного кодирования0
(по умолчанию) | целое число от 0 до 27Переданный матричный индикатор предварительного кодирования, заданный в виде целого числа от 0 до 27.
Это свойство применимо только при TransmissionScheme
установлено в 'codebook'
.
Типы данных: double
FrequencyHopping
- Скачкообразное изменение частоты'neither'
(по умолчанию) | 'intraSlot'
| 'interSlot'
Скачкообразная перестройка частоты для физического общего канала восходящей линии связи, заданная как 'neither'
, 'intraSlot'
, или 'interSlot'
.
Типы данных: char
| string
BetaOffsetACK
- Коэффициент смещения беты HARQ-ACK20
(по умолчанию) | положительное целое числоКоэффициент смещения беты HARQ-ACK, заданный как положительное целое число. Это свойство определяет количество ресурсов для мультиплексирования HARQ-ACK. Номинальное значение является одним из значений из таблицы 9.3-1 TS 38.213.
Типы данных: double
BetaOffsetCSI1
- Коэффициент смещения беты части 1 CSI6.25
(по умолчанию) | положительное целое числоКоэффициент смещения беты части 1 информации о состоянии канала (CSI), заданный как положительное целое число. Это свойство определяет количество ресурсов для мультиплексирования части 1 CSI. Номинальное значение является одним из значений из таблицы 9.3-2 TS 38.213.
Типы данных: double
BetaOffsetCSI2
- Коэффициент смещения беты CSI, часть 26.25
(по умолчанию) | положительное целое числоКоэффициент смещения беты части 2 CSI, заданный как положительное целое число. Это свойство определяет количество ресурсов для мультиплексирования CSI части 2. Номинальное значение является одним из значений из таблицы 9.3-2 TS 38.213.
Типы данных: double
UCIScaling
- Масштабный коэффициент1
(по умолчанию) | скаляром между 0 и 1Масштабный коэффициент для ограничения количества ресурсных элементов, выделенных для UCI на PUSCH, заданный как скаляр между 0 и 1. Номинальное значение 0,5, 0,65, 0,8 или 1.
Типы данных: double
NID
- Идентичность скремблирования[]
(по умолчанию) | целое число от 0 до 1023Скремблирующие тождества, заданный как целое число от 0 до 1023. Использование []
чтобы задать это свойство в NCellID
свойство nrCarrierConfig
объект.
Типы данных: double
RNTI
- Временный идентификатор радиосети1
(по умолчанию) | целое число от 0 до 65 535Временный идентификатор радиосети пользовательского оборудования (UE), заданный в виде целого числа от 0 до 65 535.
Типы данных: double
DMRS
- Параметры конфигурации PUSCH DM-RSnrPUSCHDMRSConfig
объект (по умолчанию) | nrPUSCHDMRSConfig
объектПараметры конфигурации PUSCH DM-RS, заданные как nrPUSCHDMRSConfig
объект. Эта функция использует только эти nrPUSCHDMRSConfig
свойства.
DMRSConfigurationType
- Тип строения DM-RS1
(по умолчанию) | 2
Тип строения DM-RS, заданный как 1
или 2
. Это свойство является параметром более высокого уровня dmrs-Type.
Это значение свойства должно быть 1
когда nrPUSCHDMRSConfig
является свойством nrPUSCHConfig
с TransformPrecoding
значение свойства установлено в 1
.
Типы данных: double
DMRSTypeAPosition
- Положение первого символа OFDM DM-RS2
(по умолчанию) | 3
Положение первого символа OFDM DM-RS, обеспечиваемого параметром более высокого слоя dmrs-TypeA-Position, заданное как 2
или 3
.
Это свойство применимо при nrPUSCHDMRSConfig
является свойством nrPUSCHConfig
объект с MappingType
значение свойства установлено в 'A'
.
Типы данных: double
DMRSAdditionalPosition
- Максимальное количество дополнительных положений DM-RS0
(по умолчанию) | 1
| 2
| 3
Максимальное количество дополнительных положений DM-RS, заданное как 0
, 1
, 2
, или 3
. Это свойство является параметром более высокого слоя dmrs-AdditionalPosition.
Это значение свойства должно быть 0
или 1
когда nrPUSCHDMRSConfig
является свойством nrPUSCHConfig
объект с FrequencyHopping
значение свойства установлено в 'intraSlot'
.
Типы данных: double
DMRSLength
- Количество последовательных символов OFDM с передней загрузкой DM-RS1
(по умолчанию) | 2
Количество последовательных символов OFDM с передней загрузкой DM-RS, заданное как 1
(односимвольный DM-RS) или 2
(double-symbol DM-RS).
Это значение свойства должно быть 1
когда nrPUSCHDMRSConfig
является свойством nrPUSCHConfig
объект с FrequencyHopping
значение свойства установлено в 'intraSlot'
.
Типы данных: double
CustomSymbolSet
- местоположение символа OFDM DM-RS[]
(по умолчанию) | целое число от 0 до 13 | вектор неотрицательных целых чиселМестоположения символов OFDM DM-RS, которые основаны на 0, заданы как один из следующих опций.
Целое число от 0 до 13 - Для одного символа DM-RS
Вектор неотрицательных целых чисел от 0 до 13 - Для нескольких символов DM-RS
Каждое местоположение входного символа принято как односимвольное DM-RS в пределах выделения символа физического общего канала.
Значение по умолчанию, []
, соответствует расположению символов ДМ-РС согласно ТС 38.211 Таблица 6.4.1.1.3-3, 6.4.1.1.3-4 или 6.4.1.1.3-6 [1]. Установка этого свойства переопределяет соответствующие местоположения символов DM-RS в этих стандартных интерполяционных таблицах.
Типы данных: double
DMRSPortSet
- порты антенны DM-RS[]
(по умолчанию) | целочисленный скаляр | вектор неотрицательных целых чиселПорты антенны DM-RS, заданные в качестве одного из следующих опций.
Целое число от 0 до 11 - Для одного порта антенны
Вектор неотрицательных целых чисел от 0 до 11 - Для нескольких портов антенны
Номинальные поддерживаемые порты антенны зависят от DMRSLength
и DMRSConfigurationType
значения свойств, как показано в этой таблице.
DMRSLength Значение | DMRSConfigurationType Значение | Номинальная область значений поддерживаемых портов антенны |
---|---|---|
1 | 1 | [0, 3] |
2 | [0, 5] | |
2 | 1 | [0, 7] |
2 | [0, 11] |
Значение по умолчанию []
подразумевает, что порт антенны DM-RS равен 0
.
Когда nrPUSCHDMRSConfig
является свойством nrPUSCHConfig
объект, []
подразумевает, что DMRSPortSet
находится в области значений от 0 до NumLayers
–1.
Типы данных: double
NumCDMGroupsWithoutData
- Количество групп CDM без данных2
(по умолчанию) | 1
| 3
Количество групп CDM DM-RS без данных, заданное как 1
, 2
, или 3
.
Каждое значение указывает разный набор номеров групп CDM в соответствии с TS 38.214 Раздел 6.2.2 [2].
1
- номер группы CDM 0
2
- номера групп CDM 0 и 1
3
- номера групп CDM 0, 1 и 2
Когда TransformPrecoding
свойство nrPUSCHConfig
для объекта задано значение 1
, это значение свойства должно быть 2
.
Типы данных: double
EnablePTRS
- Включить PT-RS0
или false
(по умолчанию) | 1
или true
Включите PT-RS, заданное в качестве одного из следующих значений.
0
(false
) - Отключите строение PT-RS.
1
(true
) - Включите строение PT-RS.
Типы данных: double
| logical
PTRS
- Параметры конфигурации PUSCH PT-RSnrPUSCHPTRSConfig
объект (по умолчанию) | nrPUSCHPTRSConfig
объект PUSCH PT-RS строение, заданная как nrPUSCHPTRSConfig
объект. Эта функция использует только эти nrPUSCHPTRSConfig
свойства.
TimeDensity
- PT-RS временная плотность1
(по умолчанию) | 2
| 4
Временная плотность PT-RS, заданная как 1
, 2
или 4
. Это свойство является более высоким параметром слоя timeDensity.
Типы данных: double
FrequencyDensity
- PT-RS частотная плотность2
(по умолчанию) | 4
Частотная плотность PT-RS, заданная как 2
или 4
. Это свойство является более высоким параметром слоя frequencyDensity.
Это свойство применяется только тогда, когда nrPUSCHPTRSConfig
является свойством nrPUSCHConfig
с TransformPrecoding
установлено на 0
.
Типы данных: double
PTRSPortSet
- Набор портов антенны PT-RS[]
(по умолчанию) | неотрицательное целое число | двухэлементный вектор неотрицательных целых чиселНабор портов антенны PT-RS, заданный как двухэлементный вектор неотрицательных целых чисел. Задайте []
чтобы задать это свойство как самое низкое значение в DMRSPortSet
свойство nrPUSCHDMRSConfig
объект. Это использование []
значение применимо только тогда, когда nrPUSCHDMRSConfig
объект используется как свойство nrPUSCHConfig
объект.
Это свойство применяется только тогда, когда nrPUSCHPTRSConfig
является свойством nrPUSCHConfig
с TransformPrecoding
установлено на 0
.
Типы данных: double
NumPTRSSamples
- Количество выборок PT-RS2
(по умолчанию) | 4
Количество выборок PT-RS на группу PT-RS, заданное как 2
или 4
. Это свойство является параметром более высокого слоя sampleDensity.
Это свойство применяется только тогда, когда nrPUSCHPTRSConfig
является свойством nrPUSCHConfig
с TransformPrecoding
установлено на 1
.
Типы данных: double
NumPTRSGroups
- Количество групп PT-RS2
(по умолчанию) | 4
| 8
Количество групп PT-RS, заданное как 2
, 4
, или 8
. Это свойство является параметром более высокого слоя sampleDensity.
Когда для этого свойства задано значение 8
, количество выборок PT-RS, установленных NumPTRSSamples
для свойства должно быть задано значение 4.
Это свойство применяется только тогда, когда nrPUSCHPTRSConfig
является свойством nrPUSCHConfig
с TransformPrecoding
установлено на 1
.
Типы данных: double
REOffset
- Смещение ресурсного элемента'00'
(по умолчанию) | '01'
| '10'
| '11'
Смещение ресурсного элемента, заданное как '00'
, '01'
, '10'
, или '11'
. Это свойство является параметром более высокого слоя resourceElementOffset.
Это свойство применяется только тогда, когда nrPUSCHPTRSConfig
является свойством nrPUSCHConfig
с TransformPrecoding
установлено на 0
.
Типы данных: char
| string
tcr
- Целевая скорость кодаЦелевая скорость кода для кодового слова в передаче UL-SCH, заданная в виде скаляра в области значений (0, 1).
Типы данных: double
tbs
- Размер транспортного блокаРазмер транспортного блока, сопоставленный с кодовым словом в передаче UL-SCH, задается как неотрицательное целое число. Значение 0
указывает на отсутствие транспортного блока или на отсутствие передачи UL-SCH на PUSCH.
Типы данных: double
oack
- Длина полезной нагрузки HARQ-ACK битДлина полезной нагрузки бит HARQ-ACK, заданная как неотрицательное целое число. Значение 0
указывает на отсутствие передачи HARQ-ACK.
Типы данных: double
ocsi1
- Длина полезной нагрузки CSI, часть 1 битДлина полезной нагрузки CSI-части 1 бит, заданная в виде неотрицательного целого числа. Значение 0
указывает на отсутствие передачи CSI части 1.
Типы данных: double
ocsi2
- Длина полезной нагрузки CSI, часть 2 битыДлина полезной нагрузки CSI-части 2 бит, заданная в виде неотрицательного целого числа. Значение 0
указывает на отсутствие передачи CSI часть 2. Номинально CSI часть 2 присутствует только, когда CSI часть 1 присутствует.
Типы данных: double
sym
- Получены символы модуляции PUSCHПринятые символы модуляции PUSCH, заданные как комплексная матрица.
Типы данных: single
| double
Поддержка комплексного числа: Да
mod
- Схема модуляции'pi/2-BPSK'
| 'QPSK'
| '16QAM'
| '64QAM'
| '256QAM'
Схема модуляции, заданная как 'pi/2-BPSK'
, 'QPSK'
, '16QAM'
, '64QAM'
, или '256QAM'
. Эта схема модуляции определяет тип модуляции и количество бит, используемых на символ модуляции.
Схема модуляции | Количество Бит на символ |
---|---|
'pi/2-BPSK' | 1 |
'QPSK' | 2 |
'16QAM' | 4 |
'64QAM' | 6 |
'256QAM' | 8 |
Типы данных: char
| string
nid
- Скремблирующие тождестваСкремблирующие тождества, заданный как целое число от 0 до 1023. nid
более высокий слой параметра dataScramblingIdentityPUSCH, в диапазоне от 0 до 1023, если сконфигурирован параметр более высокого слоя. В противном случае nid
- идентификационный номер камеры физического слоя NCellID в диапазоне от 0 до 1007. Для получения дополнительной информации см. раздел 6.3.1.1 ТУ 38.211.
Типы данных: double
rnti
- RNTI UERNTI UE, заданный в виде целого числа от 0 до 65 535.
Типы данных: double
nVar
- Отклонение шума1e-10
(по умолчанию) | неотрицательный числовой скалярШумовое отклонение, заданное как неотрицательный числовой скаляр. Мягкие биты масштабируются с отклонением аддитивного белого Гауссова шума (AWGN). Значение по умолчанию соответствует ОСШ 100 дБ, принимая степень единичного сигнала.
Примечание
Значение по умолчанию принимает, что декодер и кодер соединены назад-назад, где отклонение шума равно нулю. Чтобы избежать -Inf
или +Inf
значения в выходе, функция использует 1e-10
как значение по умолчанию для отклонения шума. Чтобы получить соответствующие результаты, когда сигнал передается через шумный канал, отрегулируйте отклонение шума соответственно.
Типы данных: double
transformPrecode
- Преобразование амортизацииfalse
(по умолчанию) | true
Преобразование амортизации, заданное как false
или true
. Для получения дополнительной информации см. раздел 6.3.1.4 ТУ 38.211.
Типы данных: double
| logical
mrb
- Количество выделенных ресурсных блоков PUSCHКоличество выделенных ресурсных блоков PUSCH, заданное в виде целого числа от 1 до 275. Для получения дополнительной информации см. раздел 6.1.2 ТУ 38.214.
Типы данных: double
txScheme
- Схема передачи'nonCodebook'
(по умолчанию) | 'codebook'
Схема передачи, заданная в качестве одного из следующих значений:
'nonCodebook'
- Используйте эту опцию, чтобы отключить амортизацию MIMO.
'codebook'
- Используйте эту опцию для передачи на основе кодовой книги с использованием амортизации MIMO.
Для получения дополнительной информации см. раздел 6.3.1.4 ТУ 38.211.
Типы данных: char
| string
nLayers
- Количество слоев передачиКоличество слоев передачи, заданное в виде целого числа от 1 до 4. Для получения дополнительной информации см. раздел 6.3.1.3 ТУ 38.211.
Типы данных: double
tpmi
- Переданный матричный индикатор предварительного кодированияПереданный матричный индикатор предварительного кодирования, заданный в виде целого числа от 0 до 27. Допустимая область значений tpmi
зависит от заданного количества слоев передачи nLayers
и количество портов. Для получения дополнительной информации см. TS 38.211 Таблицы 6.3.1.5-1 - 6.3.1.5-7.
Типы данных: double
cw
- Аппроксимация мягких бит LLRПриблизительный логарифмический коэффициент правдоподобия (LLR) мягкие биты, возвращенные как реальный вектор-столбец. cw
наследует тип данных sym
. Знак представляет жесткие биты.
Типы данных: double
| single
[1] 3GPP TS 38.211. "NR; Физические каналы и модуляция ". 3rd Генерация Partnership Project; Группа технических спецификаций Радиосеть доступ.
У вас есть измененная версия этого примера. Вы хотите открыть этот пример с вашими правками?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.