Тест соответствия обнаружения PUSCH HARQ-ACK

В этом примере показано, как измерить ложную вероятность обнаружения, и пропущенная вероятность обнаружения Гибридного Автоматического Повторного ACK Запроса (HARQ-ACK) мультиплексировала на Физическом Восходящем Разделяемом Канале (PUSCH) использование LTE Toolbox™ под условиями испытания соответствия, как задано в TS36.104, Раздел 8.2.4.1 [1].

Введение

Восходящую управляющую информацию (UCI) можно нести на Физическом Восходящем Разделяемом Канале (PUSCH) и может содержать Гибридный Автоматический Повторный ACK Запроса (HARQ-ACK) информация. Этот пример использует LTE Toolbox, чтобы выполнить "HARQ-ACK, Мультиплексированный на PUSCH" тест соответствия, заданный в TS36.104, Раздел 8.2.4.1 [1].

Два требования к производительности заданы для HARQ-ACK, мультиплексированного на PUSCH:

  • Ложная вероятность обнаружения ACK является вероятностью, что ACK обнаруживается, когда данные только отправляются на символах, где информация о HARQ-ACK может быть выделена.

  • ACK отсутствовал, вероятность обнаружения является условной вероятностью не обнаружения ACK, когда это было отправлено на ресурсах PUSCH.

Условия, заданные для этого теста, равняются двум, получают антенны, нормальный циклический префикс, канал ETU70, с помощью Фиксированного ссылочного канала (FRC) A4-3. Цель, заданная в TS 36.104, Раздел 8.2.4.1 [1] для пропускной способности на 1,4 МГц (6RB), является ложной вероятностью обнаружения и пропущенной вероятностью обнаружения 1% на уровне 13,8 дБ.

Тест запущен на подкадре основанием подкадра в каждой тестовой точке ОСШ. Для каждого подкадра восходящая форма волны сгенерирована с и без информации о ACK, прошла через исчезающий канал и декодируемый HARQ-ACK. Ложные обнаружения и пропущенные обнаружения зарегистрированы и вероятность ошибки, отображенной для области значений протестированного SNRs.

Настройка симуляции

Пример выполняется в течение продолжительности симуляции 1 системы координат во многих SNRs включая необходимые 13,8 дБ, на уровне которых тестовые требования для ложных и пропущенных процентов раскрытых преступлений (1% в каждом случае) должны быть достигнуты согласно TS36.104, Таблице 8.2.4.1-1 [1]. Большое количество numSubframes должен использоваться, чтобы привести к значимым результатам пропускной способности. SNRdB может быть массив значений или скаляра.

numSubframes = 10;  % Number of frames to simulate at each SNR
SNRdB = [4.8 7.8 10.8 13.8 16.8]; % SNR points to simulate

Настройка UE

Чтобы сконфигурировать передатчик, несколько желаемых полей параметра установлены в структуре frc, который затем передается lteRMCUL, который установит все другие поля обязательного параметра. На данном этапе структура frc представляет полную настройку необходимой передачи.

frc.TotSubframes = 1;   % Total number of subframes to generate
frc.NCellID = 10;       % Cell identity
frc.RC = 'A4-3';        % FRC number

% Populate FRC configuration structure with default values for A4-3
frc = lteRMCUL(frc);

Настройка модели канала распространения

Канал распространения сконфигурирован через структуру chcfg, с настройками на тестовые требования. Обратите внимание на то, что частота дискретизации распространения определяется из частоты дискретизации переданной формы волны, которая может быть установлена с помощью lteSCFDMAInfo.

chcfg.NRxAnts = 2;               % Number of receive antennas
chcfg.DelayProfile = 'ETU';      % Delay profile
chcfg.DopplerFreq = 70;          % Doppler frequency
chcfg.MIMOCorrelation = 'Low';   % MIMO correlation
chcfg.Seed = 91;                 % Channel seed
chcfg.NTerms = 16;               % Oscillators used in fading model
chcfg.ModelType = 'GMEDS';       % Rayleigh fading model type
chcfg.InitPhase = 'Random';      % Random initial phases
chcfg.NormalizePathGains = 'On'; % Normalize delay profile power
chcfg.NormalizeTxAnts = 'On';    % Normalize for transmit antennas

% Set channel model sampling rate
info = lteSCFDMAInfo(frc);
chcfg.SamplingRate = info.SamplingRate;

Настройка средства оценки канала

Средство оценки канала сконфигурировано с помощью структуры cec. Профиль задержки ETU заставляет канал изменяться быстро в зависимости от времени. Поэтому маленькое экспериментальное окно частоты усреднения 9 Элементов Ресурса (REs) используется. Опорный сигнал демодуляции (DRS) содержится только в одном символе на паз, поэтому окно усреднения во времени 1 RE используется. Это не будет включать пилотов от смежного паза при усреднении.

cec.PilotAverage = 'UserDefined'; % Type of pilot averaging
cec.FreqWindow = 9;               % Frequency averaging windows in REs
cec.TimeWindow = 1;               % Time averaging windows in REs
cec.InterpType = 'cubic';         % Interpolation type
cec.Reference = 'Antennas';       % Reference for channel estimation

Цикл для значений ОСШ

Цикл используется, чтобы запустить симуляцию для набора точек ОСШ, данных векторным SNRdB.

Шум, добавленный перед демодуляцией SC-FDMA, будет усилен ОБПФ. Усиление является квадратным корнем из размера ОБПФ ($N_{\mathrm{FFT}}$). Чтобы гарантировать, что степень аддитивного шума нормирована после демодуляции, чтобы достигнуть желаемого ОСШ, желаемая шумовая степень разделена на$N_{\mathrm{FFT}}$. Кроме того, когда действительные и мнимые части шума создаются отдельно прежде чем быть объединенным в комплексный Аддитивный белый Гауссов шум (AWGN), шумовая амплитуда должна масштабироваться$1/\sqrt{2}$ так произведенной шумовой энергией, 1.

В каждой тестовой точке ОСШ вычисляется вероятность ложного и пропущенного обнаружения. Эти вероятности вычисляются на подкадр основанием подкадра с помощью следующих шагов:

  • Создайте Форму волны Передачи: Восходящий Инструмент Ссылочного канала измерения (RMC) lteRMCULTool используется, чтобы сгенерировать восходящую форму волны, содержащую случайные транспортные данные и бит HARQ-ACK в каждом нечетном подкадре.

  • Шумное Моделирование Канала: форма волны передается через исчезающий канал и добавленный AWGN.

  • Выполните Демодуляция SC-FDMA и Синхронизация: полученные символы синхронизируются с учетом комбинации задержки реализации и распространения задержки канала. Символами является затем демодулируемый SC-FDMA.

  • Выполните Канал и Шумовую Степень Спектральная Оценка Плотности и Эквализация: канал и шумовая степень, спектральная плотность оценивается и полученные символы PUSCH, компенсируются.

  • Декодируйте PUSCH: UpLink Разделяемый Канал (UL-SCH) кодирование определяется и используется, чтобы декодировать PUSCH, чтобы восстановить чередованный UL-SCH.

  • Восстановите Бит ACK UCI: Устраните чередование PUSCH и декодируйте информацию о HARQ-ACK, чтобы восстановить бит HARQ-ACK UCI и обнаружить ложь HARQ-ACK или пропущенное обнаружение на основе того, был ли бит HARQ-ACK закодирован в переданном подкадре или нет.

% Initialize variables used in the simulation and analysis
pFalse = zeros(size(SNRdB));  % Probability of false detection at each SNR
pMissed = zeros(size(SNRdB)); % Probability of missed detection at each SNR

for nSNR = 1:length(SNRdB)

    % Initialize the random number generator stream
    rng('default');

    % Extract SNR to test
    SNR = 10^(SNRdB(nSNR)/20);

    % Scale noise to ensure the desired SNR after SC-FDMA demodulation
    N = 1/(SNR*sqrt(double(info.Nfft)))/sqrt(2.0);

    offsetUsed = 0;
    falseCount = 0;
    falseTests = 0;
    missCount = 0;
    missTests = 0;

    for subframeNo = 0:(numSubframes-1)

        % Updating subframe number
        frc.NSubframe = mod(subframeNo, 10);

        % Transmit ACK on every odd subframe
        if (mod(subframeNo, 2)==0)
            ACK = [];
            falseTests = falseTests + 1;
        else
            ACK = 1;
            missTests = missTests + 1;
        end

        % Create random data to transmit
        trblklen = frc.PUSCH.TrBlkSizes(frc.NSubframe+1);
        trblk = randi([0 1], trblklen, 1);

        % Transmit a waveform with an additional 25 samples to cover the
        % range of delays expected from the channel modeling (a
        % combination of implementation delay and channel delay spread)
        txWaveform = [lteRMCULTool(frc, trblk, [], [], ACK); zeros(25, 1)];

        % Pass waveform through fading channel model
        chcfg.InitTime = subframeNo/1000;
        rxWaveform = lteFadingChannel(chcfg, txWaveform);

        % Add noise
        noise = N*complex(randn(size(rxWaveform)), ...
            randn(size(rxWaveform)));
        rxWaveform = rxWaveform + noise;

        % Synchronization
        offset = lteULFrameOffset(frc, frc.PUSCH,rxWaveform);
        if (offset < 25)
            offsetUsed = offset;
        end

        % SC-FDMA demodulation
        rxSubframe = lteSCFDMADemodulate(frc, ...
            rxWaveform(1+offsetUsed:end, :));

        % Channel Estimation
        [estChannelGrid, noiseEst] = lteULChannelEstimate( ...
            frc, frc.PUSCH, cec, rxSubframe);

        % PUSCH indices for given subframe
        puschIndices = ltePUSCHIndices(frc,frc.PUSCH);

        % Minimum Mean Squared Error (MMSE) equalization
        rxSymbols = lteEqualizeMMSE(rxSubframe(puschIndices), ...
                        estChannelGrid(puschIndices), noiseEst);

        % Obtain UL-SCH coding information for current transport block and
        % ACK, and concatenate this information with the PUSCH / UL-SCH
        % configuration
        frc.PUSCH = lteULSCHInfo(frc, frc.PUSCH, trblklen, ...
            0, 0, 1, 'chsconcat');

        % Perform deprecoding, demodulation and descrambling on the
        % received data
        rxEncodedBits = ltePUSCHDecode(frc, frc.PUSCH, rxSymbols);

        % UL-SCH channel deinterleaving
        [deinterleavedData, ccqi, cri, cack] = ...
            lteULSCHDeinterleave(frc, frc.PUSCH, rxEncodedBits);

        % HARQ-ACK decoding
        rxACK = lteACKDecode(frc.PUSCH, cack);

        % Detect false or missed HARQ-ACK
        if (isempty(ACK) && ~isempty(rxACK))
            falseCount = falseCount + 1;
        end
        if (~isempty(ACK) && ~isequal(ACK,rxACK))
            missCount = missCount + 1;
        end

    end

    % Calculate false or missed HARQ-ACK probability
    pFalse(nSNR) = falseCount/falseTests;
    pMissed(nSNR) = missCount/missTests;

end

Анализ

Постройте симулированные результаты против целевой эффективности, как предусмотрено в стандарте с помощью hHARQACKResults.m.

hHARQACKResults(SNRdB, pFalse, pMissed);

Приложение

Этот пример использует функции помощника:

Выбранная библиография

  1. 3GPP TS 36.104 "Передача радио базовой станции (BS) и прием"

Для просмотра документации необходимо авторизоваться на сайте