Образцовый UL-SCH и PUSCH

Этот пример показывает, как создать физический восходящий канал совместно использованный канал (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;

Смотрите также

| | | | | |

Похожие темы