exponenta event banner

Моделирование формы сигнала восходящей линии связи с использованием SRS и PUCCH

В этом примере показано, как сконфигурировать передачу абонентского оборудования (UE) и определенных для соты зондирующих опорных сигналов (SRS). Физический канал управления восходящей линии связи (PUCCH) также сконфигурирован для передачи.

Введение

Конфигурация SRS разделена на 2 части - специфичные для UE и соты. Специфичная для UE часть описывает расписание и содержание фактических передач SRS для этого UE. Специфичная для соты часть описывает временной график, когда любое UE в соте может передавать - специфичный для UE график должен быть подмножеством этого расписания.

В этом примере специфичная для соты конфигурация SRS имеет периодичность 5 мс со смещением 0 (сигнализируется srs.SubframeConfig = 3 как обозначено в TS36.211, Таблице 5.5.3.3-1 [1]). Специфичная для UE конфигурация SRS имеет периодичность 10 мс со смещением 0 (сигнализируется srs.ConfigIdx = 7 как указано в TS36.213, таблица 8.2-1 [2]). Специфичная для соты конфигурация означает, что для этой соты существуют две возможности для передачи SRS в каждом кадре, подкадры 0 и 5. Все UE в соте должны сократить свои передачи по физическому каналу управления восходящей линии связи (PUCCH) во время этих подкадров, чтобы обеспечить прием SRS без помех, даже если они не передают SRS сами. Специфичная для UE конфигурация означает, что это UE сконфигурировано для генерации SRS только в субкадре 0.

Выходные данные в окне команд MATLAB ® при выполнении этого примера показывают передачу PUCCH во всех 10 подкадрах с сокращением в подкадрах 0 и 5 и передачу SRS в подкадре 0.

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

ue = struct;
ue.NULRB = 15;                  % Number of resource blocks
ue.NCellID = 10;                % Physical layer cell identity
ue.Hopping = 'Off';             % Disable frequency hopping
ue.CyclicPrefixUL = 'Normal';   % Normal cyclic prefix
ue.DuplexMode = 'FDD';          % Frequency Division Duplex (FDD)
ue.NTxAnts = 1;                 % Number of transmit antennas
ue.NFrame = 0;                  % Frame number

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

pucch = struct;
% Vector of PUCCH resource indices, one per transmission antenna
pucch.ResourceIdx = 0:ue.NTxAnts-1;
pucch.DeltaShift = 1;               % PUCCH delta shift parameter
pucch.CyclicShifts = 0;             % PUCCH delta offset parameter
pucch.ResourceSize = 0;             % Size of resources allocated to PUCCH

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

srs = struct;
srs.NTxAnts = 1;        % Number of transmit antennas
srs.SubframeConfig = 3; % Cell-specific SRS period = 5ms, offset = 0
srs.BWConfig = 6;       % Cell-specific SRS bandwidth configuration
srs.BW = 0;             % UE-specific SRS bandwidth configuration
srs.HoppingBW = 0;      % SRS frequency hopping configuration
srs.TxComb = 0;         % Even indices for comb transmission
srs.FreqPosition = 0;   % Frequency domain position
srs.ConfigIdx = 7;      % UE-specific SRS period = 10ms, offset = 0
srs.CyclicShift = 0;    % UE-cyclic shift

Цикл субкадра

Цикл обработки генерирует подкадр за один раз. Все они объединяются для создания сетки ресурсов для кадра (10 подкадров). Цикл выполняет следующие операции:

  • Информация SRS: по вызову lteSRSInfo мы можем получить информацию, связанную с SRS для данного подкадра. IsSRSSubframe поле структуры srsInfo возвращено из lteSRSInfo вызов указывает, является ли текущий подкадр (заданный ue.NSubframe) - специфичный для соты подкадр SRS (IsSRSSubframe = 1) или нет (IsSRSSubframe = 0). Значение этого поля можно скопировать в ue.Shortened поле. Это гарантирует, что последующее формирование PUCCH будет правильно уважать конфигурацию SRS, специфичную для соты, для всех подкадров, исключая последний символ PUCCH в подкадрах SRS, специфичных для соты.

  • Генерация и отображение опорного сигнала демодуляции (DRS) PUCCH 1: сигнал DRS расположен в 3-м, 4-м и 5-м символах каждого слота и поэтому никогда не имеет потенциала для столкновения с SRS.

  • Генерация и отображение PUCCH 1: В отличие от DRS, передача PUCCH 1 может занимать последний символ подкадра, если только ue.Shortened = 1. В этом случае последний символ подкадра останется пустым.

  • Формирование и отображение SRS: Здесь мы генерируем и отображаем SRS в соответствии со специфичной для UE конфигурацией SRS. Оба lteSRSIndices и lteSRS функции используют поля ue.NSubframe и srs.ConfigIdx определяют, сконфигурирован ли текущий подкадр для передачи SRS; в противном случае выходные данные обеих функций пусты.

txGrid = [];    % Create empty resource grid

for i = 1:10    % Process 10 subframes

        % Configure subframe number (0-based)
        ue.NSubframe = i-1;
        fprintf('Subframe %d:\n',ue.NSubframe);

        % Establish if this subframe is a cell-specific SRS subframe,
        % and if so configure the PUCCH for shortened transmission
        srsInfo = lteSRSInfo(ue, srs);
        ue.Shortened = srsInfo.IsSRSSubframe; % Copy SRS info to ue struct

        % Create empty uplink subframe
        txSubframe = lteULResourceGrid(ue);

        % Generate and map PUCCH1 DRS to resource grid
        drsIndices = ltePUCCH1DRSIndices(ue, pucch);% DRS indices
        drsSymbols = ltePUCCH1DRS(ue, pucch);       % DRS sequence
        txSubframe(drsIndices) = drsSymbols;        % Map to resource grid

        % Generate and map PUCCH1 to resource grid
        pucchIndices = ltePUCCH1Indices(ue, pucch); % PUCCH1 indices
        ACK = [0; 1];                               % HARQ indicator values
        pucchSymbols = ltePUCCH1(ue, pucch, ACK);   % PUCCH1 sequence
        txSubframe(pucchIndices) = pucchSymbols;    % Map to resource grid
        if (ue.Shortened)
            disp('Transmitting shortened PUCCH');
        else
            disp('Transmitting full-length PUCCH');
        end

        % Configure the SRS sequence group number (u) according to TS
        % 36.211 Section 5.5.1.3 with group hopping disabled
        srs.SeqGroup = mod(ue.NCellID,30);

        % Configure the SRS base sequence number (v) according to TS 36.211
        % Section 5.5.1.4 with sequence hopping disabled
        srs.SeqIdx = 0;

        % Generate and map SRS to resource grid
        % (if active under UE-specific SRS configuration)
        [srsIndices, srsIndicesInfo] = lteSRSIndices(ue, srs);% SRS indices
        srsSymbols = lteSRS(ue, srs);                         % SRS seq.
        if (srs.NTxAnts == 1 && ue.NTxAnts > 1) % Map to resource grid
            % Select antenna for multiple antenna selection diversity
            txSubframe( ...
                hSRSOffsetIndices(ue, srsIndices, srsIndicesInfo.Port)) = ...
                srsSymbols;
        else
            txSubframe(srsIndices) = srsSymbols;
        end
        % Message to console indicating when SRS is mapped to the resource
        % grid.
        if(~isempty(srsIndices))
            disp('Transmitting SRS');
        end

        % Concatenate subframes to form frame
        txGrid = [txGrid txSubframe]; %#ok
end
Subframe 0:
Transmitting shortened PUCCH
Transmitting SRS
Subframe 1:
Transmitting full-length PUCCH
Subframe 2:
Transmitting full-length PUCCH
Subframe 3:
Transmitting full-length PUCCH
Subframe 4:
Transmitting full-length PUCCH
Subframe 5:
Transmitting shortened PUCCH
Subframe 6:
Transmitting full-length PUCCH
Subframe 7:
Transmitting full-length PUCCH
Subframe 8:
Transmitting full-length PUCCH
Subframe 9:
Transmitting full-length PUCCH

Результаты

Полученный рисунок показывает количество активных поднесущих в каждом символе SC-FDMA через 140 символов в txGrid. Все символы SC-FDMA содержат 12 активных поднесущих, соответствующих полосе пропускания одного блока ресурсов PUCCH, за исключением:

  • символ 13, последний символ подкадра 0, который имеет 48 активных поднесущих, соответствующих передаче 8 ресурсного блока SRS

  • символ 83, последний символ подкадра 5, который имеет 0 активных поднесущих, соответствующих укороченному PUCCH (последний символ пуст), чтобы обеспечить возможность потенциальной передачи SRS другим UE в этой ячейке.

figure;
for i = 1:ue.NTxAnts
    subplot(ue.NTxAnts,1,i);
    plot(0:size(txGrid,2)-1,sum(abs(txGrid(:,:,i)) ~= 0),'r:o')
    xlabel('symbol number');
    ylabel('active subcarriers');
    title(sprintf('Antenna %d',i-1));
end

Постройте график сетки ресурсов с PUCCH на краях полосы и передачей гребенки SRS в субкадре 0.

figure;
pcolor(abs(txGrid));
colormap([1 1 1; 0 0 0.5])
shading flat;
xlabel('SC-FDMA symbol'); ylabel('subcarrier')

Дальнейшие исследования

Выбор передающей антенны SRS может быть продемонстрирован установкой ue.NTxAnts = 2 и анализ субплотов, полученных для каждой антенны; SRS передается на антенне 0, в то время как PUCCH укорачивается на обеих (всех) антеннах. Диаграмма выбора антенны для этого однокадрового прогона может быть показана путем дополнительной настройки srs.SubframeConfig = 0 и srs.ConfigIdx = 0. Это настраивает конфигурацию SRS для соты с периодичностью 2 мс со смещением 0 (сигнализируется srs.SubframeConfig = 0), а также специфическую для UE конфигурацию SRS периодичностью 2 мс со смещением 0 (сигнализируется srs.ConfigIdx = 0). В этом случае SRS передается этим UE в четных подкадрах, и передающая антенна чередуется с каждой передачей.

Передача SRS на нескольких антеннах с использованием разнесения ресурсов может быть показана путем установки ue.NTxAnts = 2 и srs.NTxAnts = 2. В этом случае SRS всегда передается на обеих (всех) антеннах с ортогональными ресурсами на каждой антенне.

Приложение

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

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

  1. 3GPP ТС 36.211 «Физические каналы и модуляция»

  2. 3GPP ТС 36.213 «Процедуры физического уровня»