Пример выполняет вычисление качественной характеристики канала (CQI), как задано в Разделе TS 38.214 5.2.2, по каналу кластеризируемой задержанной линии (CDL). Пример оценивает точность CQI, о котором сообщают при помощи практической оценки канала.
CQI является индикатором качества канала. UE сообщает об индексе CQI gNB как часть информации о состоянии канала (CSI) при помощи CSI-RS для измерения.
Индекс CQI является значением между от 0 до 15. Это предоставляет информацию о самом высоком уровне схемы и кода модуляции, подходящем для нисходящей передачи, чтобы достигнуть необходимой частоты появления ошибочных блоков (BLER) условие. Раздел TS 38.214 5.2.2.1 задает два условия для максимального допустимого BLER, которые получены из более высокого параметра слоя 'cqi-таблица'. Этот пример рассматривает 0,1 условия BLER и cqi-таблицу как 'таблица 1' (таблица 5.2.2.1-2 TS 38.214).
Пример выполняет CQI, сообщающий для сценария одного входа одного выхода (SISO) по каналу CDL с профилем задержки CDL-C и распространение задержки 300e-9 секунда. Значение CQI, полученное при помощи практической оценки канала, по сравнению с CQI, полученным при помощи совершенной оценки канала.
Учитывая сигнал к интерференционному и шумовому отношению (SINR), CQI получен при помощи предрасчетных интерполяционных таблиц CQI по сравнению с SINR. Интерполяционная таблица вычисляется, чтобы обеспечить CQI, приводящий максимум к 0,1 BLER для соответствующего SINR. Это рассматривает количество слоев передачи, количество передачи, и получите антенны и условия канала.
Когда создание отчетов CQI выполняется, интерполяционные таблицы взяты в качестве ссылки. Наблюдаемый SINR по сравнению с таблицей и самым высоким значением CQI для SINR, где BLER меньше 0.1, сообщается.
Интерполяционные таблицы в примере создаются с помощью примера Пропускной способности NR PDSCH. Симуляции для нисходящего канала, совместно использованная пропускная способность канала выполняется, рассматривая уровень схемы и кода модуляции, который соответствует каждому CQI через конечную область значений сигнала к шумовому отношению (ОСШ) значения. Значение SINR, наблюдаемое в приемнике, где 0,1 BLER достигаются, сопоставлено против каждого индекса CQI. Интерполяционные таблицы в примере создаются для канала CDL-C и при помощи практической оценки канала и при помощи совершенной оценки канала.
Следующая фигура представляет результаты симуляции BLER, выполняемые через конечную область значений SNRs для всех значений CQI. Каждая кривая представляет BLER, соответствующий значению CQI. Симуляция выполняется для 100 систем координат с размером шага 0,5 дБ и таблицей 5.2.2.1-2 TS 38.214 как cqi-таблица. Симуляции рассматривают практический метод оценки канала с 'AveragingWindow'
как [5 1], для сценария SISO. 'AveragingWindow'
задает количество смежных ссылочных символов в частотном диапазоне и временном интервале, по которому усреднение должно быть выполнено в процедуре оценки канала. SINR в приемнике, где 0,1 BLER наблюдаются, показывают для каждого значения CQI во всплывающей подсказке.
Создайте объект настройки поставщика услуг представление поставщика услуг на 20 МГц с поднесущей, располагающей 30 кГц с интервалами.
carrier = nrCarrierConfig; carrier.SubcarrierSpacing = 30; carrier.NSizeGrid = 52;
Создайте пропускную способность, расстаются структура с активной частью пропускной способности (BWP) размер и запускают поля. BWP запускаются, поле относительно общего блока 0 ресурса (CRB 0).
bwp.NSizeBWP = 41;
bwp.NStartBWP = carrier.NStartGrid; % Consider the start of BWP aligning with the start of the carrier
Создайте объект настройки CSI-RS с один "не нулевая степень" ресурс NZP-CSI-RS, занимающий целый BWP.
csirs = nrCSIRSConfig;
csirs.RowNumber = 2; % Possible row numbers for single transmit antenna case are 1 and 2
csirs.NumRB = bwp.NSizeBWP;
csirs.RBOffset = bwp.NStartBWP - carrier.NStartGrid;
csirs.CSIRSPeriod = [4 0];
csirs.SymbolLocations = 0;
Сконфигурируйте количество передачи и получите антенны, рассмотрев сценарий SISO.
nTxAnts = 1; nRxAnts = 1;
Этот раздел генерирует символы CSI-RS и индексы для заданного поставщика услуг и параметров конфигурации CSI-RS.
Инициализируйте пустую сетку передачи.
txGrid = [];
Инициализируйте сетку ресурса поставщика услуг для одного паза и выполните отображение элемента ресурса.
ports = max(csirs.NumCSIRSPorts); % Number of antenna ports txSlotGrid = nrResourceGrid(carrier,ports); % Create the carrier resource grid for one slot for slotIdx = 0:carrier.SlotsPerFrame - 1 carrier.NSlot = slotIdx; csirsInd = nrCSIRSIndices(carrier,csirs); csirsSym = nrCSIRS(carrier,csirs); % Generate CSI-RS symbols with slot periodicity 4 and offset 0 % Placing the CSI-RS in the transmit grid txSlotGrid(csirsInd) = csirsSym; % Mapping CSI-RS symbols to the current slot grid % txGrid for one frame is generated by concatenating slot by slot txGrid = [txGrid txSlotGrid]; %#ok<AGROW> end
Выполните модуляцию OFDM, чтобы сгенерировать форму волны временного интервала.
[txWaveform,OFDMInfo] = nrOFDMModulate(carrier,txGrid);
Полагайте, что канал CDL с задержкой профилирует CDL-C и распространение задержки 300e-9 секунда.
Создайте объект канала с заданными настройками.
channel = nrCDLChannel; channel.DelayProfile = 'CDL-C'; channel.DelaySpread = 300e-9; % Turn the overall number of antennas into a specific antenna panel array geometry [channel.TransmitAntennaArray.Size, channel.ReceiveAntennaArray.Size] = ... hArrayGeometry(nTxAnts,nRxAnts); channel.SampleRate = OFDMInfo.SampleRate; % Get channel information chInfo = info(channel); maxChDelay = ceil(max(chInfo.PathDelays*channel.SampleRate)) + chInfo.ChannelFilterDelay;
Добавьте нули в конце переданной формы волны, чтобы сбросить содержимое канала. Эти нули учитывают любую задержку, введенную в канале. Это - соединение многопутевой задержки и задержки реализации. Это значение может измениться в зависимости от частоты дискретизации, профиля задержки и распространения задержки. Добавьте нули в конце переданной формы волны, чтобы сбросить содержимое канала. Эти нули учитывают любую задержку, введенную в канале. Это - соединение многопутевой задержки и задержки реализации. Это значение может измениться в зависимости от частоты дискретизации, профиля задержки и распространения задержки.
txWaveform = [txWaveform; zeros(maxChDelay, size(txWaveform,2))];
Передайте форму волны через канал, чтобы получить полученную форму волны временного интервала и усиления пути.
[rxWaveform,pathGains,sampleTimes] = channel(txWaveform);
Сгенерируйте и добавьте AWGN в полученную форму волны.
SNRdB = 15; % in dB SNR = 10^(SNRdB/20); % Linear value N0 = 1/(sqrt(2.0*nRxAnts*double(OFDMInfo.Nfft))*SNR); % Noise variance rng('default'); noise = N0*complex(randn(size(rxWaveform)),randn(size(rxWaveform))); rxWaveform = rxWaveform + noise;
Этот раздел показывает, как CQI, сообщающий с практической оценкой канала, выполняется.
% Generate reference grid for timing estimation refGrid = txGrid; % Consider reference grid as txGrid since we only have CSI-RS in the txGrid carrier.NSlot = 0; % To perform timing estimate, note the first NSlot value where the carrier starts offsetPractical = 0; [t,mag] = nrTimingEstimate(carrier,rxWaveform,refGrid); offsetPractical = hSkipWeakTimingOffset(offsetPractical,t,mag); rxWaveformPractical = rxWaveform(1+offsetPractical:end, :); % Perform OFDM demodulation to the rxWaveform rxGridPractical = nrOFDMDemodulate(carrier,rxWaveformPractical);
Информацией, запрошенной для создания отчетов CQI, является CQI создание отчетов о режиме, размере поддиапазона и интерполяционной таблице SINR для конкретной модели канала.
CQI создание отчетов о режимах: CQI сообщающие широкополосные поддержки или режимы поддиапазона, согласно просьбе gNB или решенный UE. В случае широкополосного режима об одном значении CQI сообщают для целого BWP. В случае режима поддиапазона об одном значении CQI для каждого поддиапазона сообщают согласно размеру поддиапазона, обозначенному более высокими слоями. Размер поддиапазона, согласно Таблице 5.2.1.4-2 в TS 38.214 зависит от размера BWP.
Следующая интерполяционная таблица вычисляется для 90%-й пропускной способности (который равен 0,1 BLER) по каналу CDL-C с распространением задержки 300e-9 секунды при помощи практического средства оценки канала.
cqiConfigPractical.CQIMode = 'Subband'; % Select one of two possible choices from 'Wideband' or 'Subband' cqiConfigPractical.NSBPRB = 4; % The size of subband in resource blocks cqiConfigPractical.SINR90pc = [-1.89 -0.82 0.95 2.95 4.90 7.39 8.89 ... 11.02 13.32 14.68 16.62 18.91 21.58 24.88 29.32];
Значения CQI вычисляются с помощью ресурса NZP-CSI-RS с периодичностью паза 4 и возмещают 0 по одной системе координат.
cqiPracticalPerSlot = []; for slotIdx = 0:carrier.SlotsPerFrame - 1 carrier.NSlot = slotIdx; csirsSym = nrCSIRS(carrier,csirs); csirsRefInd = nrCSIRSIndices(carrier,csirs); if (~isempty(csirsRefInd)) % Perform channel estimate by considering 'AveragingWindow' as [5 1] [Hest,nVar] = nrChannelEstimate(carrier,rxGridPractical(:,(1:carrier.SymbolsPerSlot)+(carrier.SymbolsPerSlot*slotIdx)),csirsRefInd,csirsSym,'AveragingWindow',[5 1]); % CQI value reported for each slot is stored in a new column % In subband case, a column of CQI values is reported, where each element corresponds to each subband cqiPracticalPerSlot(:,slotIdx+1) = hCQISelect(carrier,bwp,cqiConfigPractical,csirsRefInd,Hest,nVar); %#ok<SAGROW> end end % Plot the practical CQI estimates for one frame plotCQI(cqiPracticalPerSlot,'CQI Reported with Practical Channel Estimation');
Этот раздел показывает, как вы выполняете CQI, сообщающий с совершенной оценкой канала.
pathFilters = getPathFilters(channel); % Get path filters for perfect channel estimation
[offsetPerfect,mag] = nrPerfectTimingEstimate(pathGains,pathFilters);
rxWaveformPerfect = rxWaveform(1+offsetPerfect:end, :);
rxGridPerfect = nrOFDMDemodulate(carrier,rxWaveformPerfect);
Информацией, запрошенной для создания отчетов CQI, является CQI создание отчетов о режиме, размере поддиапазона и интерполяционной таблице SINR для конкретной модели канала. Считайте ту же настройку CQI используемой для практической оценки канала.
cqiConfigPerfect = cqiConfigPractical;
Следующая интерполяционная таблица вычисляется для 90%-й пропускной способности по каналу CDL-C с распространением задержки 300e-9 секунды, рассматривая совершенное средство оценки канала.
cqiConfigPerfect.SINR90pc = [-4.73, -3.04, -0.54, 1.87, 4.17, 6.77, 8.57, 10.57,...
12.87, 14.27, 16.17, 18.37, 20.77, 23.67, 27.07];
Значения CQI вычисляются с помощью ресурса NZP-CSI-RS с периодичностью паза 4 и возмещают 0 по одной системе координат.
cqiPerfectPerSlot = []; for slotIdx = 0:carrier.SlotsPerFrame - 1 carrier.NSlot = slotIdx; csirsSym = nrCSIRS(carrier,csirs); csirsRefInd = nrCSIRSIndices(carrier,csirs); if (~isempty(csirsRefInd)) PerfectHest = nrPerfectChannelEstimate(carrier,pathGains,pathFilters,offsetPerfect,sampleTimes); % Get perfect noise estimate (from the noise realization) noiseGrid = nrOFDMDemodulate(carrier,noise(1+offsetPerfect:end ,:)); nVar = var(noiseGrid(:)); % CQI value reported for each slot is stored in a new column % In subband case, a column of CQI values, one value corresponding to each subband is reported cqiPerfectPerSlot(:,slotIdx+1) = hCQISelect(carrier,bwp,cqiConfigPerfect,csirsRefInd,PerfectHest(:,(1:carrier.SymbolsPerSlot) + carrier.SymbolsPerSlot*slotIdx),nVar); %#ok<SAGROW> end end % Plot the perfect CQI estimates for one frame plotCQI(cqiPerfectPerSlot,'CQI Reported with Perfect Channel Estimation');
Получите CQI создание отчетов об ошибке из-за практической ошибки расчета канала:
cqiError = cqiPerfectPerSlot - cqiPracticalPerSlot; % Plot the error plotCQI(cqiError,'CQI Estimation Error (Perfect vs. Practical Channel Estimation)');
function plotCQI(cqi,Title) % plotCQI(CQI,TITLE) plots the CQI values with the title % TITLE. figure() imagesc(cqi) axis xy; colorbar; title(Title); xlabel('Slots'); ylabel('Subbands'); end
[1] 3GPP TS 38.211. “NR; Физические каналы и модуляция”. Проект Партнерства третьего поколения; Сеть радиодоступа Technical Specification Group.
[2] 3GPP TS 38.214. “NR; процедуры Физического уровня для данных”. Проект Партнерства третьего поколения; Сеть радиодоступа Technical Specification Group.
nrChannelEstimate
| nrCSIRS
| nrCSIRSIndices
| nrPerfectChannelEstimate
| nrPerfectTimingEstimate
| nrTimingEstimate