exponenta event banner

Тест соответствия обнаружения PRACH

Этот пример показывает, как LTE Toolbox™ может использоваться, чтобы смоделировать TS36.104 «тест соответствия» Требований Обнаружения PRACH. Вероятность правильного обнаружения преамбулы физического канала произвольного доступа (PRACH) измеряется, когда присутствует сигнал преамбулы.

Введение

Канал произвольного доступа (RACH) - это передача по восходящей линии связи, используемая пользовательским оборудованием (UE) для инициирования синхронизации с eNireB. TS36.104, раздел 8.3.4.1 [1] определяет вероятность обнаружения физического канала произвольного доступа (PRACH) должна быть больше или равна 99% при SNR -8,0 дБ. Существует несколько случаев обнаружения ошибок:

  • Обнаружение неправильной преамбулы

  • Не удается обнаружить преамбулу

  • Обнаружение правильной преамбулы, но с неправильной оценкой синхронизации

Для условий ETU70 распространения канала ошибка оценки синхронизации возникает, если ошибка оценки смещения синхронизации наиболее сильного тракта больше 2,08 мкс. Наиболее сильный тракт имеет задержку 310 нс для ETU70.

В этом примере форма сигнала PRACH конфигурируется и проходит через соответствующий канал. В приемнике выполняется обнаружение PRACH и вычисляется вероятность обнаружения PRACH. Пример выполняется для параметров, определенных в разделах TS36.104, 8.4.1 [1] и TS36.141, таблица A.6-1 [2]; т.е. нормальный режим, 2 приемные антенны, ETU70 канал, нормальный циклический префикс, формат пакета 0, SNR -8.0dB.

Конфигурация моделирования

Тест выполняется в течение 10 подкадров в ряде SNR. foffset смещение частоты, которое будет смоделировано между передатчиком и приемником и определено для теста в TS36.104, Таблице 8.4.2.1-1 [1]. Большое количество numSubframes следует использовать для получения значимых результатов. SNRdB может быть массивом значений или скаляром.

numSubframes = 10;  % Number of subframes to simulate at each SNR
SNRdB = [-14.0 -12.0 -10.0 -8.0 -6.0];  % SNR points to simulate
foffset = 270.0;                        % Frequency offset in Hertz

Конфигурация UE

Настройки пользовательского оборудования (UE) указаны в структуре ue.

ue.NULRB = 6;                   % 6 Resource Blocks
ue.DuplexMode = 'FDD';          % Frequency Division Duplexing (FDD)
ue.CyclicPrefixUL = 'Normal';   % Normal cyclic prefix length
ue.NTxAnts = 1;                 % Number of transmission antennas

Конфигурирование PRACH

Конфигурация PRACH определена в структуре prach. Эта конфигурация используется для создания второй структуры info путем вызова ltePRACHInfo. Здесь содержится информация о PRACH, сгенерированном в заданной конфигурации. Некоторые из этих сведений будут использованы позже в примере.

prach.Format = 0;          % PRACH format: TS36.104, Table 8.4.2.1-1
prach.SeqIdx = 22;         % Logical sequence index: TS36.141, Table A.6-1
prach.CyclicShiftIdx = 1;  % Cyclic shift index: TS36.141, Table A.6-1
prach.HighSpeed = 0;       % Normal mode: TS36.104, Table 8.4.2.1-1
prach.FreqOffset = 0;      % Default frequency location
prach.PreambleIdx = 32;    % Preamble index: TS36.141, Table A.6-1

info = ltePRACHInfo(ue, prach);  % PRACH information

Конфигурация канала распространения

Конфигурирование модели канала распространения с использованием структуры chcfg по TS36.104, таблица 8.4.2.1-1 [1].

chcfg.NRxAnts = 2;                       % Number of receive antenna
chcfg.DelayProfile = 'ETU';              % Delay profile
chcfg.DopplerFreq = 70.0;                % Doppler frequency
chcfg.MIMOCorrelation = 'Low';           % MIMO correlation
chcfg.Seed = 1;                          % 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
chcfg.SamplingRate = info.SamplingRate;  % Sampling rate

Цикл для значений SNR

Цикл используется для выполнения моделирования для набора точек SNR, заданных вектором SNRdB. Вектор SNR, сконфигурированный здесь, представляет собой диапазон точек SNR, включая точку на уровне -8,0 дБ, SNR, при которой должно быть достигнуто тестовое требование для скорости обнаружения PRACH (99%).

ltePRACH генерирует выходной сигнал, нормализованный до той же мощности передачи, что и для передач данных восходящей линии связи в пределах панели инструментов LTE. Поэтому такая же нормализация должна иметь место в отношении шума, добавленного к PRACH. Шум, добавленный перед демодуляцией SC-FDMA, будет усилен IFFT. Усиление является квадратным корнем размера IFFT $N_{\mathrm{FFT}}$(), таким образом, чтобы гарантировать, что мощность добавляемого шума нормализуется после демодуляции, для достижения требуемого SNR требуемая мощность шума делится на. $N_{\mathrm{FFT}}$Кроме того, поскольку действительная и мнимая части шума создаются отдельно перед объединением в сложный аддитивный белый гауссов шум, амплитуда шума должна быть масштабирована$1/\sqrt{2}$ таким образом, чтобы генерируемая мощность шума была равна 1.

В каждой контрольной точке SNR определение вероятности вычисляется на основе подкадра за подкадром с использованием следующих шагов:

  • Передача PRACH: Форма сигнала PRACH генерируется с помощью ltePRACH с заданным временным смещением. По TS36.141 раздел 8.4.1.4.2 [2] преамбулы отсылаются с определенными временными сдвигами, определенными в TS36.141, рисунок 8.4.1.4.2-2 [2]. Базовое значение смещения по времени устанавливается равным 50% от числа циклических сдвигов для генерации PRACH. Это смещение увеличивается для каждой преамбулы, добавляя значение шага 0,1 us, до конца испытываемого диапазона, который равен 0,9 us. Этот шаблон затем повторяется.

  • Шумное моделирование канала: Сигнал пропускается через замирающий канал и добавляется аддитивный белый гауссов шум. Дополнительные 25 выборок добавляются к концу формы сигнала для покрытия диапазона задержек, ожидаемых от моделирования канала (комбинация задержки реализации и расширения задержки канала). Эта задержка реализации затем удаляется, чтобы гарантировать, что задержка реализации интерпретируется как фактическое смещение по времени в детекторе преамбулы.

  • Применение частотного сдвига: Частотный сдвиг, определенный стандартом, также применяется на этом этапе путем выполнения простой ЧМ-модуляции принятого сигнала.

  • Обнаружение PRACH: Выполнение обнаружения PRACH с использованием ltePRACHDetect для всех индексов преамбулы ячейки (0-63). Обнаруженные индекс PRACH и смещение возвращаются и используются для определения того, где обнаружение было успешным в соответствии с ограничениями, обсужденными во введении.

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

% Initialize variables storing probability of detection at each SNR
pDetection = zeros(size(SNRdB));

for nSNR = 1:length(SNRdB)

    % Scale noise to ensure the desired SNR after SC-FDMA demodulation
    ulinfo = lteSCFDMAInfo(ue);
    SNR = 10^(SNRdB(nSNR)/20);
    N = 1/(SNR*sqrt(double(ulinfo.Nfft)))/sqrt(2.0);

    % Detected preamble count
    detectedCount = 0;

    % Loop for each subframe
    for nsf = 1:numSubframes

        % PRACH transmission
        ue.NSubframe = mod(nsf-1, 10);
        ue.NFrame = fix((nsf-1)/10);

        % Set PRACH timing offset in us as per TS36.141, Figure 8.4.1.4.2-2
        prach.TimingOffset = info.BaseOffset + ue.NSubframe/10.0;

        % Generate transmit wave
        txwave = ltePRACH(ue, prach);

        % Channel modeling
        chcfg.InitTime = (nsf-1)/1000;
        [rxwave, fadinginfo] = lteFadingChannel(chcfg, ...
                                [txwave; zeros(25, 1)]);

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

        % Remove the implementation delay of the channel modeling
        rxwave = rxwave((fadinginfo.ChannelFilterDelay + 1):end, :);

        % Apply frequency offset
        t = ((0:size(rxwave, 1)-1)/chcfg.SamplingRate).';
        rxwave = rxwave .* repmat(exp(1i*2*pi*foffset*t), ...
            1, size(rxwave, 2));

        % PRACH detection for all cell preamble indices
        [detected, offsets] = ltePRACHDetect(ue, prach, rxwave, (0:63).');

        % Test for preamble detection
        if (length(detected)==1)

            % Test for correct preamble detection
            if (detected==prach.PreambleIdx)

                % Calculate timing estimation error. The true offset is
                % PRACH offset plus channel delay
                trueOffset = prach.TimingOffset/1e6 + 310e-9;
                measuredOffset = offsets(1)/chcfg.SamplingRate;
                timingerror = abs(measuredOffset-trueOffset);

                % Test for acceptable timing error
                if (timingerror<=2.08e-6)
                    detectedCount = detectedCount + 1; % Detected preamble
                else
                    disp('Timing error');
                end
            else
                disp('Detected incorrect preamble');
            end
        else
            disp('Detected multiple or zero preambles');
        end

    end % of subframe loop

    % Compute final detection probability for this SNR
    pDetection(nSNR) = detectedCount/numSubframes;

end % of SNR loop
Detected multiple or zero preambles
Detected multiple or zero preambles

Анализ

В конце цикла SNR вычисленные вероятности обнаружения для каждого значения SNR строятся в зависимости от целевой вероятности.

hPRACHDetectionResults(SNRdB, numSubframes, pDetection);

Приложение

В этом примере используется эта вспомогательная функция.

Избранная библиография

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

  2. 3GPP TS 36.141 «Тестирование соответствия базовой станции (BS)»