Этот пример демонстрирует, как сконфигурировать Оборудование пользователя (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 = 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 = 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 = 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 всегда передается на обеих (всех) антеннах с ортогональными ресурсами на каждой антенне.
Этот пример использует следующие функции помощника:
3GPP TS 36.211 "Физические каналы и модуляция"
3GPP TS 36.213 "Процедуры физического уровня"