В этом примере показано, как создать физический общий канал восходящей линии связи (PUSCH). В нем показано, как сгенерировать транспортный блок, выполнить кодирование восходящего общего канала (UL-SCH), чтобы создать кодовое слово, выполнить кодирование физического канала, чтобы создать физический канал и сопоставить комплексные символы с ресурсной сеткой.
Задайте настройки пользовательского оборудования (UE) в структуре ue
. Многие функции, используемые в этом примере, требуют подмножества этих полей.
ue.NULRB = 9; ue.NSubframe = 0; ue.NCellID = 10; ue.RNTI = 1; ue.CyclicPrefixUL = 'Normal'; ue.Hopping = 'Off'; ue.SeqGroup = 0; ue.CyclicShift = 0; ue.Shortened = 0;
Сконфигурируйте PUSCH. В дополнение к настройкам UE, указанным в ue
Для генерации PUSCH необходимо определить параметры, относящиеся к физическому каналу.
pusch.PRBSet = (0:5).';
pusch.Modulation = 'QPSK';
pusch.RV = 0;
pusch.DynCyclicShift = 0;
Сгенерируйте ресурсную сетку подкадра путем вызова lteULResourceGrid
функция. Эта функция создает пустую ресурсную сетку для одного подкадра.
subframe = lteULResourceGrid(ue);
Сгенерируйте сообщение UL-SCH путем вызова lteULSCH
функция, обеспечивающая данные транспортного блока trblk
, специфичная для UE структура ue
, и специфичную для канала структуру pusch
как входные параметры.
trblk = round(rand(1,504)); cw = lteULSCH(ue,pusch,trblk);
Сгенерируйте символы PUSCH путем вызова ltePUSCH
функция, обеспечивающая настройки UE, строение PUSCH и кодовое слово в качестве входных параметров.
puschSymbols = ltePUSCH(ue,pusch,cw);
Сгенерируйте индексы PUSCH путем вызова ltePUSCHIndices
функция. Можно использовать эти сгенерированные индексы для сопоставления сложных символов PUSCH с ресурсной сеткой подрамника. Эта функция требует тех же входных параметров, что и ltePUSCH
функция.
puschIndices = ltePUSCHIndices(ue,pusch);
Сгенерируйте символы PUSCH DRS путем вызова ltePUSCHDRS
функция. Эта функция требует тех же входных параметров, что и ltePUSCH
функция.
drsSymbols = ltePUSCHDRS(ue,pusch);
Сгенерируйте индексы PUSCH DRS путем вызова ltePUSCHDRSIndices
функция. Можно использовать эти индексы для сопоставления DRS с ресурсной сеткой подрамника.
drsIndices = ltePUSCHDRSIndices(ue,pusch);
Сопоставьте символы PUSCH и DRS с ресурсной сеткой с помощью сгенерированных индексов.
subframe(puschIndices) = puschSymbols; subframe(drsIndices) = drsSymbols;
ltePUSCH
| ltePUSCHDRS
| ltePUSCHDRSIndices
| ltePUSCHIndices
| lteULResourceGrid
| lteULSCH
| lteULSCHInfo