Восходящее моделирование формы волны Используя SRS и PUCCH

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

Введение

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

В этом примере специфичная для ячейки настройка SRS имеет периодичность на 5 мс со смещением 0 (сообщенный srs.SubframeConfig = 3, как обозначено в TS36.211, Таблице 5.5.3.3-1 [1]). Настройка SRS UE-specific имеет периодичность на 10 мс со смещением 0 (сообщенный srs.ConfigIdx = 7, как обозначено в TS36.213, Таблице 8.2-1 [2]). Специфичная для ячейки настройка означает, что для этой ячейки, две возможности для передачи SRS существуют в каждом кадре, подкадры 0 и 5. Весь UEs в ячейке должен сократить их Физический Восходящий Канал Управления (PUCCH) передачи во время этих подкадров, чтобы допускать прием SRS без интерференции, даже если они не передают SRS сами. Настройка UE-specific означает, что этот 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 структуры, на которую указывает srsDims, возвращенный в вызов lteSRSInfo, является ли текущий подкадр (данный ue.NSubframe) специфичным для ячейки подкадром SRS (IsSRSSubframe = 1) или не (IsSRSSubframe = 0). Значение этого поля может быть скопировано в поле ue.Shortened. Это гарантирует, что последующая генерация PUCCH будет правильно уважать специфичную для ячейки настройку SRS за все подкадры, не используя последний символ PUCCH в специфичных для ячейки подкадрах SRS.

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

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

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

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

Приложение

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

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

  1. 3GPP TS 36.211 "Физические каналы и модуляция"

  2. 3GPP TS 36.213 "Процедуры физического уровня"