В этом примере показано, как измерить производительность передачи данных по индикатору качества канала (CQI) с помощью Toolbox™ LTE в условиях проверки соответствия, определенных в TS36.101 разделе 9.3.2.1.1.
В этом примере показано использование lteCQISelect функция, которая обеспечивает оценку CQI. Также проверяется эффективность оценки CQI. В этом примере представлены средства тестирования, которые показывают, что инструментарий LTE может удовлетворять тесту производительности отчетности CQI, определенному в TS36.101 разделе 9.3.2.1.1 [1]. Эксплуатационные требования испытания следующие:
индекс CQI не в наборе {медиана CQI-1, медиана CQI + 1} должна сообщаться, по меньшей мере, 20% времени;
отношение пропускной способности, полученной при передаче транспортного формата, указанного каждым сообщаемым широкополосным индексом CQI, и пропускной способности, полученной при передаче фиксированного транспортного формата, сконфигурированного в соответствии с широкополосной медианой CQI, должно быть > = 1,05;
при передаче транспортного формата, указанного каждым сообщаемым широкополосным индексом CQI, среднее значение BLER для указанных транспортных форматов должно быть больше или равно 0,02.
В этом примере проверяется выполнение этих требований.
Пример выполняется для длины моделирования 10 кадров при SNR 6.0dB. Большое количество NFrames следует использовать для получения значимых результатов.
NFrames = 10; SNRdB = 6.0;
Настройки eNaseB задаются в структуре enb. Это включает подструктуру PDSCH для конфигурирования PDSCH в соответствии с требованиями теста соответствия: HARQ деактивируется путем установки последовательности RV в нуль и значения CSIMode настроен согласно Таблице 9.3.2.1.1-1 [1] TS36.101.
enb = struct('RC','R.3'); % Set up parameters of RMC R.3 enb = lteRMCDL(enb); enb.CFI = 3; % Reconfigure Control Format Indicator enb.OCNGPDSCHEnable = 'On'; % Enable OCNG for unallocated PDSCH REs enb.TotSubframes = 1; % Reconfigure for a single subframe enb.PDSCH.RVSeq = 0; % Disable HARQ enb.PDSCH.CSIMode = 'PUCCH 1-0'; % Configure the CSI reporting mode enb.PDSCH.CSI = 'On'; % CSI scaling of soft bits
Структура, channel, содержит параметры конфигурации модели канала.
channel.Seed = 10; % Channel seed channel.NRxAnts = 2; % 2 receive antennas channel.DelayProfile = 'EPA'; % Delay profile channel.DopplerFreq = 5.0; % Doppler frequency channel.MIMOCorrelation = 'High'; % Multi-antenna correlation channel.ModelType = 'GMEDS'; % Rayleigh fading model type channel.NormalizeTxAnts = 'On'; % Normalize for transmit antennas channel.NormalizePathGains = 'On'; % Normalize delay profile power channel.InitPhase = 'Random'; % Random initial phases channel.NTerms = 16; % Oscillators used in fading model % Set channel model sampling rate ofdmInfo = lteOFDMInfo(enb); channel.SamplingRate = ofdmInfo.SamplingRate;
Блок оценки канала сконфигурирован со структурой cec. Переменная perfectChanEstimator управляет поведением оценщика канала. Допустимые значения: true или false. Если установлено значение true используется совершенный блок оценки канала, иначе используется несовершенная оценка канала, основанная на значениях принятых пилот-сигналов. В этом примере мы обеспечиваем возможность идеальной оценки канала.
% Configure channel estimator cec.PilotAverage = 'UserDefined'; % Type of pilot symbol averaging cec.FreqWindow = 9; % Frequency window size in REs cec.TimeWindow = 9; % Time window size in REs cec.InterpType = 'Cubic'; % 2D interpolation type cec.InterpWindow = 'Centered'; % Interpolation window type cec.InterpWinSize = 1; % Interpolation window size % Channel estimator behavior perfectChanEstimator = true;
Установка задержки CQI в подкадрах. Это задержка передачи CQI от UE к eNireB, как определено в таблице 9.3.2.1.1-1 TS36.101 [1]. Следует отметить, что предполагается, что обратная связь CQI является совершенной, причем значения подаются обратно в буфере, а не обратно в восходящей передаче.
cqiDelay = 8; % subframes
Основная обработка разделена на две фазы, сконфигурированные с помощью cqiConfig переменная цикла. На этих этапах выполняются два измерения, необходимые для проведения эксплуатационных испытаний, определенных в TS36.101 разделе 9.3.2.1.1 [1]:
UE сообщило CQI. Первый этап (cqiConfig=1) выполняет передачу и прием PDSCH, где схема модуляции и кодирования (MCS) выбирается на основе CQI, сообщенного UE, причем сообщенный CQI обновляется каждые 2 подкадра и подается обратно с задержкой в 8 подкадров. Записывают конечную пропускную способность, BLER и медианную CQI, и BLER (measuredBLER) и отклонение от медианного CQI (measuredAlpha, в процентах) проверяются на соответствие указанным требованиям к производительности.
Медиана CQI. На втором этапе (cqiConfig=2), передача и прием PDSCH выполняются с использованием медианного CQI (medianCQI) определено на первой фазе. Записывается конечная пропускная способность и коэффициент пропускной способности (measuredGamma) между использованием фазы CQI, сообщенной UE, и средней фазой CQI, сообщаемой и проверяемой в соответствии с заданным требованием к производительности.
Обработка выполняется на основе подкадра за подкадром с использованием следующих шагов:
Выберите CQI. Для CQI, сообщенного UE, текущий CQI считывается из самого старого значения в буфере CQI. cqiBuffer; для медианного CQI значение CQI всегда устанавливается равным medianCQI (это достигается путем заполнения буфера CQI медианным значением CQI, и буфер не будет обновлен).
Выберите MCS в соответствии с CQI. Схема Модуляции и Кодирования (МГЦ) индекс, соответствующий CQI, отобрана посредством справочной таблицы, определенной Таблицей A.4-1 TS36.101 Дистанционное управление 1 FDD CSI RMC (МГц 1).
Определение размера транспортного блока и порядка модуляции. Индекс MCS передается в lteMCS функцию, которая вычисляет соответствующий индекс размера транспортного блока (TBS) и порядок модуляции; lteTBS Затем функция используется для вычисления TBS из индекса TBS и количества блоков ресурсов, назначенных PDSCH.
Передача и прием сигнала. Данные транспортного блока генерируются и передаются lteRMCDLTool для создания передаваемого сигнала нисходящей линии связи. Затем этот сигнал пропускают через канал замирания и добавляют шум AWGN. Принятый сигнал синхронизируют и демодулируют OFDM и выполняют оценку канала.
Измерение пропускной способности PDSCH. PDSCH и DL-SCH декодируются, и для определения пропускной способности данных записывается сообщение/отказ CRC.
Обновление CQI. Если обновление CQI запланировано в этом подкадре, используйте оценку канала для обновления CQI с помощью lteCQISelect функция. Обновленное значение CQI записывается в буфер CQI. Если обновление CQI не запланировано в этом подкадре, предыдущее значение CQI используется повторно.
% Initialize variables used for results recording CQIReport = []; % reported CQI values SINRReport = []; % corresponding SINR values xaxis = []; % corresponding subframe numbers % For each CQI configuration (UE reported and median): for cqiConfig = 1:2 if (cqiConfig==1) cqiConfigStr = 'UE reported'; else cqiConfigStr = 'median'; end fprintf('\nSimulating with %s CQI at %gdB SNR for %d Frame(s)\n', ... cqiConfigStr,SNRdB,NFrames); % Initialize CQI values: for UE reported, set to all ones; for median, % set to the median of the CQI values for the UE reported run if (cqiConfig==1) cqiBuffer = ones(1,cqiDelay); else cqiBuffer = ones(1,cqiDelay)*medianCQI; end % Initialize variables rng('default'); % Default random number generator seed totalCRC = []; % CRC values, used for throughput calculation totalTBS = []; % TBS values, used for throughput calculation offsets = 0; % Initialize frame offset value % For each subframe: for subframeNo = 0:(NFrames*10-1) % Update subframe number enb.NSubframe = mod(subframeNo,10); % Select CQI, reading the oldest value from the CQI buffer cqiPtr = mod(subframeNo,cqiDelay); CQI = cqiBuffer(cqiPtr+1); % Select MCS according to CQI using TS36.101 Table A.4-1 CSI RMC % RC.1 FDD (MCS.1), which defines the relationship between CQI % indices and MCS indices IMCSTable = [-1 0 0 2 4 6 8 11 13 16 18 21 23 25 27 27]; IMCS = IMCSTable(CQI+1); % Determine TBS and modulation order [ITBS,modulation] = lteMCS(IMCS); enb.PDSCH.Modulation = {modulation}; if (mod(enb.NSubframe,5)==0) TBS = 0; else TBS = double(lteTBS(size(enb.PDSCH.PRBSet,1),ITBS)); end enb.PDSCH.TrBlkSizes(enb.NSubframe+1) = TBS; % Determine if a CQI update is required in this subframe, according % to reporting periodicity N_pd = 2ms and configuration index % cqi-pmi-ConfigurationIndex = 1 from TS36.101 Table 9.3.2.1.1-1 cqiPeriod = 2; % periodicity N_pd cqiOffset = 1; % offset deriving from cqi-pmi-ConfigurationIndex cqiUpdate = (mod(subframeNo,cqiPeriod)==cqiOffset); % Establish if this subframe actually needs executed for PDSCH % reception, CQI estimation or initial timing offset estimation: if((TBS~=0 && subframeNo>=(cqiDelay+cqiOffset)) || ... (cqiConfig==1 && cqiUpdate) || subframeNo==0) % Generate random bits for the subframe data = randi([0 1],TBS,1); % Create OFDM resource grid containing RMC transmission and % perform OFDM modulation. txWaveform = lteRMCDLTool(enb,data); % The initialization time for channel modeling is set each % subframe to simulate a continuously varying channel channel.InitTime = subframeNo/1000; % Pass data through the fading channel model. % An additional 25 samples are added to the end of the % waveform. These are to cover the range of delays expected % from the channel modeling (a combination of implementation % delay and channel delay spread) rxWaveform = lteFadingChannel(channel, ... [txWaveform ; zeros(25,size(txWaveform,2))]); % Calculate noise gain including compensation for downlink % power allocation SNR = 10^((SNRdB-enb.PDSCH.Rho)/20); % Normalize noise power to take account of sampling rate, which % is a function of the IFFT size used in OFDM modulation, and % the number of antennas N0 = 1/(sqrt(2.0*enb.CellRefP*double(ofdmInfo.Nfft))*SNR); % Create additive white Gaussian noise noise = N0*complex(randn(size(rxWaveform)), ... randn(size(rxWaveform))); % Add AWGN to the received time domain waveform rxWaveform = rxWaveform + noise; % Perform synchronization % An offset within the range of delays expected from the % channel modeling (a combination of implementation delay and % channel delay spread) indicates success if (mod(subframeNo,10)==0) offset = lteDLFrameOffset(enb,rxWaveform); if (offset > 25) offset = offsets(end); end offsets = [offsets offset]; %#ok<AGROW> end rxWaveform = rxWaveform(1+offset:end,:); % Perform OFDM demodulation on the received data to create % the received resource grid rxGrid = lteOFDMDemodulate(enb,rxWaveform); % Channel estimation if (perfectChanEstimator) chEstGrid = ... lteDLPerfectChannelEstimate(enb,channel,offset); n = lteOFDMDemodulate(enb,noise(1+offset:end,:)); noiseEst = var(reshape(n,numel(n),1)); else [chEstGrid,noiseEst] = ... lteDLChannelEstimate(enb,enb.PDSCH, ... cec,rxGrid); %#ok<UNRCH> end % If this subframe requires PDSCH reception: if(TBS~=0 && subframeNo>=(cqiDelay+cqiOffset)) % Decode the PDSCH ind = ltePDSCHIndices(enb,enb.PDSCH,enb.PDSCH.PRBSet); pdschRx = lteExtractResources(ind,rxGrid) * ... (10^(-enb.PDSCH.Rho/20)); pdschChEst = lteExtractResources(ind,chEstGrid); [rxBits,rxSymbols] = ltePDSCHDecode(enb,enb.PDSCH, ... pdschRx,pdschChEst,noiseEst); % Decode the DL-SCH [decbits,crc] = lteDLSCHDecode(enb,enb.PDSCH,TBS,rxBits); % Record the CRC and TBS values for final throughput % calculation totalCRC = [totalCRC crc]; %#ok<AGROW> totalTBS = [totalTBS TBS]; %#ok<AGROW> end % Update CQI: if (cqiConfig==1 && cqiUpdate) % Perform CQI selection [thisCQI,thisSINR] = ... lteCQISelect(enb,enb.PDSCH,chEstGrid,noiseEst); % Feed the CQI value back to UE (in a buffer) cqiBuffer(cqiPtr+1) = thisCQI; % Record values for plotting CQIReport = [CQIReport thisCQI]; %#ok<AGROW> SINRReport = [SINRReport thisSINR]; %#ok<AGROW> xaxis = [xaxis subframeNo]; %#ok<AGROW> end end % For subframes where CQI was not updated, re-use the previous % value in the buffer if (cqiConfig==1 && ~cqiUpdate) cqiBuffer(cqiPtr+1) = cqiBuffer(mod(cqiPtr-1,cqiDelay)+1); end end % Display results for the current CQI configuration fprintf('\nResults with %s CQI:\n',cqiConfigStr); tputTotal = sum(totalTBS); if (cqiConfig==1) % Compute and display throughput tputUEReported = sum(totalTBS.*(1-totalCRC)); fprintf('Throughput: %d bits (%0.2f%%)\n', ... tputUEReported,tputUEReported/tputTotal*100); % Compute and display BLER measuredBLER = mean(totalCRC); fprintf('BLER: %0.3f (requirement is >= 0.02)\n',measuredBLER); % Compute and display median CQI medianCQI = ceil(median(CQIReport)); fprintf('Median CQI: %d\n',medianCQI'); % Compute and display proportion of CQI values % outside +/- 1 of the median measuredAlpha = (sum(CQIReport<(medianCQI-1)) + ... sum(CQIReport>(medianCQI+1)))/length(CQIReport)*100; fprintf(['Percentage of CQI indices outside +/- 1 of median:' ... ' %0.2f%% (requirement is >= 20%%)\n'],measuredAlpha); else % Compute and display throughput tputMedian = sum(totalTBS.*(1-totalCRC)); fprintf('Throughput: %d bits (%0.2f%%)\n', ... tputMedian,tputMedian/tputTotal*100); % Compute and display throughput ratio measuredGamma = tputUEReported/tputMedian; fprintf(['Throughput ratio (gamma): %0.3f' ... ' (requirement is >= 1.05)'],measuredGamma); end end
Simulating with UE reported CQI at 6dB SNR for 10 Frame(s) Results with UE reported CQI: Throughput: 980384 bits (77.98%) BLER: 0.219 (requirement is >= 0.02) Median CQI: 10 Percentage of CQI indices outside +/- 1 of median: 30.00% (requirement is >= 20%) Simulating with median CQI at 6dB SNR for 10 Frame(s) Results with median CQI: Throughput: 722304 bits (60.27%) Throughput ratio (gamma): 1.357 (requirement is >= 1.05)
Создается фигура с двумя вложенными графиками. Первый подграф показывает оцененное значение SINR для каждого подкадра; второй подграфик показывает сообщенный CQI для каждого подкадра. Это иллюстрирует, как SINR и соответствующий сообщенный CQI изменяются во времени из-за замирания канала.
figure; subplot(2,1,1); plot(xaxis,SINRReport,'rx-'); xlabel('Subframe number'); ylabel('Estimated SINR (dB)'); title('Estimated SINR versus subframe number'); hold on; subplot(2,1,2); plot(xaxis,CQIReport,'bo-'); xlabel('Subframe number'); ylabel('Selected CQI Index'); title('Selected CQI Index versus subframe number');

3GPP ТС 36.101 «Радиопередача и прием пользовательского оборудования (UE)»