В этом примере показано, как построить физический общий канал восходящей линии связи (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);
Создайте символы DRS PUSCH путем вызова ltePUSCHDRS функция. Эта функция требует тех же структур входных аргументов, что и ltePUSCH функция.
drsSymbols = ltePUSCHDRS(ue,pusch);
Создание индексов DRS PUSCH путем вызова ltePUSCHDRSIndices функция. Эти индексы можно использовать для отображения DRS в сетку ресурсов субкадров.
drsIndices = ltePUSCHDRSIndices(ue,pusch);
Отображение символов PUSCH и DRS в сетку ресурсов с использованием сгенерированных индексов.
subframe(puschIndices) = puschSymbols; subframe(drsIndices) = drsSymbols;
ltePUSCH | ltePUSCHDRS | ltePUSCHDRSIndices | ltePUSCHIndices | lteULResourceGrid | lteULSCH | lteULSCHInfo