Этот пример показывает, как создать физический восходящий канал совместно использованный канал (PUSCH). Это демонстрирует, как сгенерировать транспортный блок, выполнить восходящий канал совместно использованный канал (UL-SCH), кодирующий, чтобы создать кодовую комбинацию, выполнить физическое кодирование канала, чтобы создать физический канал и сопоставить комплексные символы с сеткой ресурса.
Настройки оборудования пользователя (UE) Setup. Задайте настройки 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-specific, ue
, и специфичная для канала структура, pusch
, как входные параметры.
trblk = round(rand(1,504)); cw = lteULSCH(ue,pusch,trblk);
Сгенерируйте символы PUSCH. Для этого вызовите функцию ltePUSCH
, обеспечив UE и конфигурационные структуры PUSCH, 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