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

  • PUCCH 1 Demodulation Reference Signal (DRS) Generation and Mapping: Сигнал DRS расположен в 3-м, 4-м и 5-м символах каждого паза и поэтому никогда не имеет возможности столкнуться с SRS.

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

  • Генерация and Mapping: Здесь мы генерируем и сопоставляем SRS в соответствии с строением 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 периодичности 2ms со смещением 0 (сигнализируется srs.ConfigIdx = 0). В этом случае SRS передается этим UE на четных подкадрах, и передающая антенна чередуется с каждой передачей.

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

Приложение

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

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

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

  2. 3GPP TS 36.213 «Процедуры физического слоя»