Этот пример демонстрирует передачу мультикодовой комбинации и прием в восходящем канале.
В этом примере показано, как реализовать передачу мультикодовой комбинации и прием с помощью LTE Toolbox™. Это сделано с помощью Фиксированного ссылочного канала (FRC) A3-2, как задано в TS36.104, Приложении A3 [1]. Настройка затем исправлена, чтобы передать две тождественно сконфигурированных кодовых комбинации.
Этот раздел устанавливает конфигурационную структуру Оборудования пользователя (UE), сопоставленную на FRC A3-2, и изменяет его, чтобы использовать 2 кодовых комбинации. Настройка для этих двух кодовых комбинаций идентична.
% Generate configuration for FRC A3-2 frc = lteRMCUL('A3-2'); % UE configuration frc.TotSubframes = 1; % Total number of subframes frc.NTxAnts = 2; % Number of transmit antennas % Update Physical Uplink Shared Channel (PUSCH) configuration for 2 % identically configured codewords frc.PUSCH.NLayers = 2; frc.PUSCH.Modulation = repmat({frc.PUSCH.Modulation},1,2); frc.PUSCH.RV = repmat(frc.PUSCH.RV,1,2); frc.PUSCH.TrBlkSizes = repmat(frc.PUSCH.TrBlkSizes,2,1);
Этот раздел настраивает транспортные блоки и Восходящую управляющую информацию (UCI). Это затем закодировано, чтобы сгенерировать Восходящий Разделяемый Канал (UL-SCH). Схема ниже показов операции, выполняемые внутренне lteULSCH
.
Модуляция PUSCH применяется к сгенерированным кодовым комбинациям.
% Set up the transport block sizes and data for both codewords TBSs = frc.PUSCH.TrBlkSizes(:,frc.NSubframe+1); % transport block sizes trBlks = {(randi([0 1], TBSs(1), 1)) (randi([0 1], TBSs(2), 1))}; % data % Set up UCI contents CQI = [1 0 1 0 0 0 1 1 1 0 0 0 1 1].'; RI = [0 1 1 0].'; ACK = [1 0].'; % UL-SCH coding including UCI coding cws = lteULSCH(frc,frc.PUSCH,trBlks,CQI,RI,ACK); % PUSCH modulation puschSymbols = ltePUSCH(frc,frc.PUSCH,cws);
Этот раздел демодулирует PUSCH и применяет декодирование канала. Получившийся UCI затем декодируется, чтобы произвести полученную Качественную характеристику канала (CQI), Индикацию ранга (RI) и Подтверждение (ACK).
% PUSCH demodulation ulschInfo = lteULSCHInfo(frc,frc.PUSCH,TBSs,length(CQI),length(RI),... length(ACK),'chsconcat'); % Get UL-SCH information llrs = ltePUSCHDecode(frc,ulschInfo,puschSymbols); % Decode PUSCH % UL-SCH decoding softBuffer = []; [rxtrblks,crc,softBuffer] = lteULSCHDecode(frc,ulschInfo,TBSs,llrs,... softBuffer); % UCI decoding [llrsData,llrsCQI,llrsRI,llrsACK] = lteULSCHDeinterleave(frc,ulschInfo,... llrs); rxCQI = lteCQIDecode(ulschInfo,llrsCQI); % Decode CQI rxRI = lteRIDecode(ulschInfo,llrsRI); % Decode RI rxACK = lteACKDecode(ulschInfo,llrsACK); % Decode ACK
Декодируемый CRC для обеих кодовых комбинаций отображен. Переданный и полученный CQI, RI и биты ACK также показывают.
hULMulticodewordTxRxDisplayResults(crc,CQI,RI,ACK,rxCQI,rxRI,rxACK);
CRCs: Codeword 1: 0 Codeword 2: 0 CQI: transmitted: 1 0 1 0 0 0 1 1 1 0 0 0 1 1 received : 1 0 1 0 0 0 1 1 1 0 0 0 1 1 RI: transmitted: 0 1 1 0 received : 0 1 1 0 ACK: transmitted: 1 0 received : 1 0
Этот пример использует эту функцию помощника.
3GPP TS 36.104 "Передача радио базовой станции (BS) и прием"