Декодируйте символы модуляции PUSCH
[
возвращает мягкие биты cw
,symbols
] = nrPUSCHDecode(sym
,mod
,nid
,rnti
)cw
и символы созвездия symbols
следуя из обратной операции физического восходящего канала совместно использованный канал (PUSCH), обрабатывающий от Раздела TS 38.211 6.3.1 [1]. Декодирование состоит из слоя demapping, демодуляции символов sym
со схемой mod
модуляции, и дескремблирование с борющейся идентичностью
nid
. Вход rnti
радиосеть временный идентификатор (RNTI) оборудования пользователя (UE). мультивход мультивыводится (MIMO) deprecoding и преобразовывает deprecoding, оба отключены. Когда вы используете этот синтаксис, функция принимает, что вводимые символы содержат символы данных только.
[
задает преобразовывают deprecoding как логическое значение и количество выделенных блоков ресурса PUSCH. Задайте эти входные параметры в дополнение к входным параметрам во втором синтаксисе. Когда cw
,symbols
] = nrPUSCHDecode(___,transformPrecode
,mrb
)transformPrecode
установлен в true
, функция применяет инверсию предварительного кодирования преобразования, заданного в Разделе TS 38.211 6.3.1.4. mrb
задает выделенное количество блоков ресурса PUSCH. MIMO deprecoding отключен. Когда вы используете этот синтаксис, функция принимает, что вводимые символы содержат символы данных только.
[
задает схему передачи в дополнение к входным параметрам в третьем синтаксисе. Когда cw
,symbols
] = nrPUSCHDecode(___,txScheme
,nLayers
,tpmi
)txScheme
установлен в 'codebook'
, функция выполняет MIMO deprecoding на основе конкретного количества слоев 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
длина полезной нагрузки части 2 CSI. Когда вы используете этот синтаксис с предварительным кодированием преобразования, функция принимает, что вводимые символы содержат данные и символы PT-RS (если применимо), и использует только символы данных для последующей обработки. Функция также обрабатывает заполнителей UCI при дескремблировании.
Задайте случайную последовательность двоичных значений, соответствующих кодовой комбинации 8 064 битов.
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
Задайте случайную последовательность двоичных значений, соответствующих кодовой комбинации 8 064 битов.
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, который ограничивает количество элементов ресурса (REs), присвоенный для 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, часть 1 CSI и часть 2 CSI.
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, части 1 CSI и части 2 CSI.
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);
Создайте Систему энкодера UL-SCH object™.
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, часть 1 CSI и часть 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
— Идентичность ячейки физического уровня
(значение по умолчанию) | целое число от 0 до 1 007Идентичность ячейки физического уровня в виде целого числа от 0 до 1 007.
Типы данных: double
SubcarrierSpacing
— Интервал поднесущей в kHz
(значение по умолчанию) | 30
| 60
| 120
| 240
Интервал поднесущей в kHz, для всех каналов и опорных сигналов поставщика услуг в виде 15
, 30, 60
, 120
, или
240
.
Типы данных: double
CyclicPrefix
— Длина циклического префикса'normal'
(значение по умолчанию) | 'extended'
Длина циклического префикса в виде одной из этих опций.
'normal'
— Используйте это значение, чтобы задать нормальный циклический префикс. Эта опция соответствует 14 символам OFDM в пазе.
'extended'
— Используйте это значение, чтобы задать расширенный циклический префикс. Эта опция соответствует 12 символам OFDM в пазе. Для нумерологии, заданной в Разделе TS 38.211 4.2, расширенная длина циклического префикса запрашивает интервал поднесущей на только 60 кГц.
Типы данных: char |
string
NSizeGrid
— Количество RBS в сетке ресурса поставщика услуг
(значение по умолчанию) | целое число от 1 до 275Количество RBS в сетке ресурса поставщика услуг в виде целого числа от 1 до 275. Значение по умолчанию 52
соответствует максимальному количеству RBS поставщика услуг на 10 МГц с SCS на 15 кГц.
Типы данных: double
NStartGrid
— Запустите сетки ресурса поставщика услуг относительно CRB 0
(значение по умолчанию) | целое число от 0 до 2 199Запустите сетки ресурса поставщика услуг относительно CRB 0 в виде целого числа от 0 до 2 199. Это свойство является параметром более высокого слоя offsetToCarrier.
Типы данных: double
NSlot
— Номер слота
(значение по умолчанию) | неотрицательное целое числоНомер слота в виде неотрицательного целого числа. Можно установить NSlot
к значению, больше, чем количество пазов на систему координат. Например, можно установить это значение с помощью счетчиков цикла передачи в симуляции MATLAB®. В этом случае вам, вероятно, придется гарантировать, что значение свойства по модулю количество пазов на систему координат в коде вызова.
Типы данных: double
pusch
— Параметры конфигурации PUSCHnrPUSCHConfig
объектПараметры конфигурации PUSCH для определенной нумерологии OFDM в виде nrPUSCHConfig
объект. Эта функция только использует их nrPUSCHConfig
свойства объектов.
Modulation
— Схема Modulation'QPSK'
(значение по умолчанию) | 'pi/2-BPSK'
| '16QAM'
| '64QAM'
| '256QAM'
| строковый скалярСхема Modulation в виде 'QPSK'
, 'pi/2-BPSK'
, '16QAM'
, '64QAM'
, или '256QAM'
, строковый скаляр или символьный массив.
Схема модуляции | Количество битов на символ |
---|---|
'pi/2-BPSK' | 1 |
'QPSK' | 2 |
'16QAM' | 4 |
'64QAM' | 6 |
'256QAM' | 8 |
Типы данных: char |
string
NumLayers
— Количество слоев передачи
(значение по умолчанию) | 2
| 3
| 4
Количество слоев передачи в виде 1
, 2, 3
, или
4
.
Типы данных: double
MappingType
— Отображение типа'A'
(значение по умолчанию) | 'B'
Отображение типа физического разделяемого канала в виде 'A'
или 'B'
.
Типы данных: char |
string
SymbolAllocation
— Выделение символа OFDM
(значение по умолчанию) | двухэлементный вектор из неотрицательных целых чиселВыделение символа OFDM физического разделяемого канала в виде двухэлементного вектора из неотрицательных целых чисел. Первый элемент этого свойства представляет запуск выделения символа (на основе 0). Второй элемент представляет количество выделенных символов OFDM.
Когда вы устанавливаете это свойство на []
или второй элемент вектора к 0
, никакой символ не выделяется для канала.
Типы данных: double
PRBSet
— Выделение PRB
(значение по умолчанию) | вектор из целых чисел от 0 до 274Выделение физического блока ресурса (PRB) PUSCH в BWP в виде вектора из целых чисел от 0 до 274.
Типы данных: double
TransformPrecoding
— Преобразуйте предварительное кодирование
или false
(значение по умолчанию) | 1
или true
Преобразуйте предварительное кодирование в виде одного из этих значений.
0
ложь
) — Отключают, преобразовывают предварительное кодирование. Тип формы волны является циклически-префиксным ортогональным делением частоты, мультиплексирующим (CP-OFDM).
1
TRUE
) — Включают, преобразовывают предварительное кодирование. Тип формы волны является ортогональным делением частоты распространения дискретного преобразования Фурье, мультиплексирующим (DFT-s-OFDM).
Типы данных: double |
logical
TransmissionScheme
— Схема передачи PUSCH'nonCodebook'
(значение по умолчанию) | 'codebook'
Схема передачи PUSCH в виде 'nonCodebook'
или 'codebook'
.
Типы данных: char |
string
TPMI
— Переданный предварительно кодирующий матричный индикатор
(значение по умолчанию) | целое число от 0 до 27Переданный предварительно кодирующий матричный индикатор в виде целого числа от 0 до 27.
Это свойство применимо только когда TransmissionScheme
установлен в 'codebook'
.
Типы данных: double
FrequencyHopping
— Скачкообразное движение частоты'neither'
(значение по умолчанию) | 'intraSlot'
| 'interSlot'
Частота, скачкообразно двигающаяся для физического восходящего канала совместно использованный канал в виде 'neither'
, 'intraSlot'
, или 'interSlot'
.
Типы данных: char |
string
BetaOffsetACK
— Бета фактор смещения HARQ-ACK
(значение по умолчанию) | положительное целое числоБета фактор смещения HARQ-ACK в виде положительного целого числа. Это свойство определяет количество ресурсов для мультиплексирования HARQ-ACK. Номинальная стоимость является одной из записи из Таблицы 9.3-1 TS 38.213.
Типы данных: double
BetaOffsetCSI1
— Бета фактор смещения части 1 CSI
(значение по умолчанию) | положительное целое числоБета фактор смещения части 1 информации о состоянии канала (CSI) в виде положительного целого числа. Это свойство определяет количество ресурсов для мультиплексирования части 1 CSI. Номинальная стоимость является одной из записи из Таблицы 9.3-2 TS 38.213.
Типы данных: double
BetaOffsetCSI2
— Бета фактор смещения части 2 CSI
(значение по умолчанию) | положительное целое числоБета фактор смещения части 2 CSI в виде положительного целого числа. Это свойство определяет количество ресурсов для мультиплексирования части 2 CSI. Номинальная стоимость является одной из записи из Таблицы 9.3-2 TS 38.213.
Типы данных: double
UCIScaling
— Масштабный коэффициент
(значение по умолчанию) | скаляр между 0 и 1Масштабный коэффициент, чтобы ограничить количество элементов ресурса, выделенных для UCI на PUSCH в виде скаляра между 0 и 1. Номинальная стоимость 0.5, 0.65, 0.8, или 1.
Типы данных: double
NID
— Скремблирование идентичности[]
(значение по умолчанию) | целое число от 0 до 1 023Скремблирование идентичности в виде целого числа от 0 до 1 023. Использование
установить это свойство на NCellID
свойство nrCarrierConfig
объект.
Типы данных: double
RNTI
— Радиосеть временный идентификатор
(значение по умолчанию) | целое число от 0 до 65 535Радиосеть временный идентификатор оборудования пользователя (UE) в виде целого числа от 0 до 65 535.
Типы данных: double
DMRS
— Параметры конфигурации PUSCH DM-RSnrPUSCHDMRSConfig
по умолчанию
объект (значение по умолчанию) | nrPUSCHDMRSConfig
объектПараметры конфигурации PUSCH DM-RS в виде nrPUSCHDMRSConfig
объект. Эта функция использует только их nrPUSCHDMRSConfig
свойства.
DMRSConfigurationType
— Тип настройки DM-RS
(значение по умолчанию) | 2
Настройка DM-RS вводит в виде 1
или 2
. Это свойство является dmrs-типом параметра более высокого слоя.
Этим значением свойства должен быть 1
когда nrPUSCHDMRSConfig
свойство nrPUSCHConfig
с TransformPrecoding
набор свойств к 1
.
Типы данных: double
DMRSTypeAPosition
— Положение первого символа DM-RS OFDM
(значение по умолчанию) | 3
Положение первого символа DM-RS OFDM, обеспеченного более высоким параметром слоя dmrs-TypeA-Position в виде 2
или 3
.
Это свойство применимо когда nrPUSCHDMRSConfig
свойство nrPUSCHConfig
объект с MappingType
набор значения свойства к 'A'
.
Типы данных: double
DMRSAdditionalPosition
— Максимальное количество DM-RS дополнительные положения
(значение по умолчанию) | 1
| 2
| 3
Максимальное количество DM-RS дополнительные положения в виде 0
, 1, 2
, или
3
. Это свойство является более высоким параметром слоя dmrs-AdditionalPosition.
Этим значением свойства должен быть 0
или 1
когда nrPUSCHDMRSConfig
свойство nrPUSCHConfig
объект с FrequencyHopping
набор свойств к 'intraSlot'
.
Типы данных: double
DMRSLength
— Количество последовательных загруженных с передней стороны символов DM-RS OFDM
(значение по умолчанию) | 2
Количество последовательных загруженных с передней стороны символов DM-RS OFDM в виде 1
(отдельный символ DM-RS) или 2
(двойной символ DM-RS).
Этим значением свойства должен быть 1
когда nrPUSCHDMRSConfig
свойство nrPUSCHConfig
объект с FrequencyHopping
набор свойств к 'intraSlot'
.
Типы данных: double
CustomSymbolSet
— Местоположения символа DM-RS OFDM[]
(значение по умолчанию) | целое число от 0 до 13 | вектор из неотрицательных целых чиселМестоположения символа DM-RS OFDM, которые на основе 0 в виде одной из этих опций.
Целое число от 0 до 13 — Для одного символа DM-RS
Вектор из неотрицательных целых чисел от 0 до 13 — Для нескольких символов DM-RS
Каждое местоположение вводимого символа принято, чтобы быть отдельным символом DM-RS в рамках физического разделяемого выделения символа канала.
Значение по умолчанию, []
, соответствует местоположениям символов DM-RS согласно таблице 6.4.1.1.3-3, 6.4.1.1.3-4 TS 38.211, или 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 без данных
(значение по умолчанию) | 1
| 3
Количество групп DM-RS CDM без данных в виде 1
, 2, или
3
.
Каждое значение указывает на различный набор чисел группы CDM, согласно Разделу TS 38.214 6.2.2 [2].
1 — Группа номер 0 CDM
2 — Группа числа 0 и 1 CDM
3 — Группа числа 0, 1 CDM, и 2
Когда TransformPrecoding
свойство nrPUSCHConfig
объект установлен в 1
, этим значением свойства должен быть 2
.
Типы данных: double
EnablePTRS
— Включите PT-RS
или false
(значение по умолчанию) | 1
или true
Включите PT-RS в виде одного из этих значений.
0
ложь
) — Отключают настройку PT-RS.
1
TRUE
) — Включают настройку PT-RS.
Типы данных: double |
logical
PTRS
— Параметры конфигурации PUSCH PT-RSnrPUSCHPTRSConfig
по умолчанию
объект (значение по умолчанию) | nrPUSCHPTRSConfig
объект Настройка PUSCH PT-RS в виде nrPUSCHPTRSConfig
объект. Эта функция использует только их nrPUSCHPTRSConfig
свойства.
TimeDensity
— Плотность времени PT-RS
(значение по умолчанию) | 2
| 4
Плотность времени PT-RS в виде 1
, 2 или
4
. Это свойство является более высоким параметром слоя timeDensity.
Типы данных: double
FrequencyDensity
— Плотность частоты PT-RS
(значение по умолчанию) | 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-RS
(значение по умолчанию) | 4
Количество выборок PT-RS на группу PT-RS в виде 2
или 4
. Это свойство является более высоким параметром слоя sampleDensity.
Это свойство применяется только когда nrPUSCHPTRSConfig
свойство nrPUSCHConfig
с TransformPrecoding
установите на 1
.
Типы данных: double
NumPTRSGroups
— Количество групп PT-RS
(значение по умолчанию) | 4
| 8
Количество групп PT-RS в виде 2
, 4, или
8
. Это свойство является более высоким параметром слоя sampleDensity.
Когда это свойство установлено в 8
, номер выборок PT-RS определяется NumPTRSSamples
свойство должно быть установлено в 4.
Это свойство применяется только когда nrPUSCHPTRSConfig
свойство nrPUSCHConfig
с TransformPrecoding
установите на 1
.
Типы данных: double
REOffset
— Элемент ресурса возмещен
(значение по умолчанию) | '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
не указывает ни на какую передачу части 1 CSI.
Типы данных: double
ocsi2
— Длина полезной нагрузки части CSI 2 битаДлина полезной нагрузки части CSI 2 бита в виде неотрицательного целого числа. Значение 0
не указывает ни на какую передачу части 2 CSI. Номинально, часть 2 CSI присутствует только, когда часть 1 CSI присутствует.
Типы данных: double
sym
— Полученные символы модуляции PUSCHПолученные символы модуляции PUSCH в виде комплексной матрицы.
Типы данных: single
| double
Поддержка комплексного числа: Да
mod
— Схема Modulation'pi/2-BPSK'
| 'QPSK'
| '16QAM'
| '64QAM'
| '256QAM'
Схема Modulation в виде 'pi/2-BPSK'
, 'QPSK'
, '16QAM'
, '64QAM'
, или '256QAM'
. Эта схема модуляции определяет тип модуляции и количество битов, используемых на символ модуляции.
Схема модуляции | Количество битов на символ |
---|---|
'pi/2-BPSK' | 1 |
'QPSK' | 2 |
'16QAM' | 4 |
'64QAM' | 6 |
'256QAM' | 8 |
Типы данных: char |
string
nid
— Скремблирование идентичностиСкремблирование идентичности в виде целого числа от 0 до 1 023. nid
более высокий параметр слоя dataScramblingIdentityPUSCH, в пределах от от 0 до 1 023, если более высокий параметр слоя сконфигурирован. В противном случае, nid
личный номер ячейки физического уровня NCellID, в пределах от от 0 до 1 007. Для получения дополнительной информации смотрите Раздел TS 38.211 6.3.1.1.
Типы данных: double
rnti
— RNTI UERNTI UE в виде целого числа от 0 до 65 535.
Типы данных: double
nVar
— Шумовое отклонение1e-10
(значение по умолчанию) | неотрицательный числовой скалярШумовое отклонение в виде неотрицательного числового скаляра. Мягкие биты масштабируются с отклонением аддитивного белого Гауссова шума (AWGN). Значение по умолчанию соответствует ОСШ 100 дБ, приходя к модульной власти сигнала.
Примечание
Значение по умолчанию принимает, что декодер и кодер соединяются спина к спине, где шумовое отклонение является нулем. Избегать -Inf
или +Inf
значения в выходе, функция использует 1e-10
как значение по умолчанию для шумового отклонения. Чтобы получить соответствующие результаты, когда сигнал будет передан через шумный канал, настройте шумовое отклонение соответственно.
Типы данных: double
transformPrecode
— Преобразуйте deprecodingfalse
(значение по умолчанию) | true
Преобразуйте deprecoding в виде false
или true
. Для получения дополнительной информации смотрите Раздел TS 38.211 6.3.1.4.
Типы данных: double |
logical
mrb
— Количество выделенных блоков ресурса PUSCHКоличество выделенного ресурса PUSCH блокируется в виде целого числа от 1 до 275. Для получения дополнительной информации смотрите Раздел TS 38.214 6.1.2.
Типы данных: double
txScheme
— Схема Transmission'nonCodebook'
(значение по умолчанию) | 'codebook'
Схема Transmission в виде одного из этих значений:
'nonCodebook'
— Используйте эту опцию, чтобы отключить MIMO deprecoding.
'codebook'
— Используйте эту опцию для основанной на книге шифров передачи с помощью MIMO deprecoding.
Для получения дополнительной информации смотрите Раздел TS 38.211 6.3.1.4.
Типы данных: char |
string
nLayers
— Количество слоев передачиКоличество слоев передачи в виде целого числа от 1 до 4. Для получения дополнительной информации смотрите Раздел TS 38.211 6.3.1.3.
Типы данных: double
tpmi
— Переданный предварительно кодирующий матричный индикаторПереданный предварительно кодирующий матричный индикатор в виде целого числа от 0 до 27. Допустимая область значений tpmi
зависит от конкретного количества слоев nLayers
передачи и количество портов. Для получения дополнительной информации см. таблицы 6.3.1.5-1 TS 38.211 к 6.3.1.5-7.
Типы данных: double
cw
— Аппроксимируйте мягкие биты LLRАппроксимированное отношение логарифмической правдоподобности (LLR) мягкие биты, возвращенные как действительный вектор-столбец. cw
наследовал тип данных sym
. Знак представляет твердые биты.
Типы данных: double |
single
[1] 3GPP TS 38.211. “NR; Физические каналы и модуляция”. Проект Партнерства третьего поколения; Сеть радиодоступа Technical Specification Group.
У вас есть модифицированная версия этого примера. Вы хотите открыть этот пример со своими редактированиями?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.