exponenta event banner

DL-SCH HARQ Моделирование

В этом примере демонстрируется инкрементная избыточность (IR) гибридного автоматического запроса на повторные запросы (Hybrid-ARQ) при передаче по общему каналу нисходящей линии связи (DL-SCH) с использованием Toolbox™ LTE.

Введение

Общий канал нисходящей линии связи (DL-SCH) описан в разделе 5.3.2 [2] TS36.212. Этот пример демонстрирует, как передатчик повторно передает одно кодовое слово по одному уровню, используя различную версию избыточности (RV) каждый раз, пока CRC принятого кодового слова не покажет успешную передачу. Передача DL-SCH 16QAM модулируется с 1/2 целевой скоростью кодирования, передаваемой через один антенный порт. Настройка, используемая в этом примере, основана на R.3 фиксированного опорного канала, определенных в таблице A.3.3.1-2 TS36.101 [1].

Гибридный автоматический запрос на повторение (Hybrid-ARQ) - это комбинация прямого исправления ошибок (FEC) и автоматического запроса на повторение оптимальным образом. Гибридные схемы ARQ обычно используются для облегчения надежной связи по шумным беспроводным каналам. HARQ способен компенсировать ошибки адаптации линии связи и обеспечивает более тонкую детализацию скорости кодирования, что приводит к лучшей пропускной способности, чем другие схемы FEC.

Существует три типа гибридных ARQ: тип I, тип II и тип III.

Гибридный ARQ типа I

Простейший метод: Гибридный ARQ типа I использует CRC, чтобы обнаружить, произошла ли ошибка в передаче. Если обнаруживается, что пакет содержит ошибку, то в передатчик посылается запрос на повторную передачу, и ошибочный пакет отбрасывается. Затем передатчик будет повторно передавать тот же самый пакет до тех пор, пока пакет не будет успешно декодирован приемником или пока не будет достигнут максимальный предел повторной передачи.

Гибридный ARQ типа I может быть расширен для включения объединения пакетов, это известно как гибридный ARQ типа I с комбинированием пакетов или объединением погон. После каждой неудачной повторной передачи ошибочные пакеты сохраняются в буфере. Затем приемник использует объединение максимального отношения для объединения каждого принятого канального бита с любыми предыдущими передачами того же бита, и объединенный сигнал подается в декодер. Объединение сигналов не дает никакого дополнительного усиления кодирования, оно только увеличивает накопленное отношение принятого сигнала к шуму$\mathrm{Eb}/\mathrm{N0}$ для каждой повторной передачи.

Гибридный ARQ типа II

В гибридном ARQ типа II, также известном как полная инкрементная избыточность (IR), каждая повторная передача не обязательно идентична исходной передаче. Вместо этого генерируется множество наборов кодированных битов, и всякий раз, когда требуется повторная передача, повторно передаваемые данные представляют другой набор кодированных битов, чем предыдущая передача. Приемник комбинирует повторную передачу с предыдущими попытками передачи того же пакета. Поскольку повторная передача содержит дополнительные биты четности, не включенные в предыдущие попытки передачи, результирующая кодовая скорость обычно снижается последующими повторными передачами. Каждая передача содержит различный набор битов четности, что приводит к более высокому коэффициенту кодирования по сравнению с последовательным объединением.

Гибридный ARQ типа III

Конечный способ тип III гибридного ARQ, также известный как частичный IR, уменьшает скорость кодирования посредством посылки дополнительных битов избыточности в каждой повторной передаче. Однако это гарантирует, что повторные передачи способны к самодекодированию. Это означает, что повторно переданный пакет может быть объединен с предыдущими пакетами для увеличения усиления разнесения.

Процесс HARQ в LTE

LTE использует ИК HARQ с 1/3 турбокодером, используемым для FEC. CRC транспортного блока (TB) используется для обнаружения ошибок. Приемник принимает только различные проколотые версии одних и тех же турбокодированных данных; каждая из этих повторных передач является самодекодируемой. Таким образом, он попадает в категорию гибридного ARQ типа III.

В LTE повторные передачи посылаются с начальной скоростью кодирования 1/2 или 3/4. Максимальное количество одновременных процессов DL-HARQ (количество обслуживаемых передач PDSCH) ограничено 8, как указано в TS36.213, раздел 7 [3].

В LTE протокол остановки и ожидания N-канала используется в качестве протокола гибридного ARQ, поскольку он предлагает низкие требования к буферизации и низкие служебные данные обратной связи подтверждения (ACK )/отрицательного подтверждения (NACK).

Процесс DL-HARQ на панели инструментов LTE

В этом примере транспортный блок генерируется и подвергается DL-SCH кодированию для создания кодового слова. Кодовое слово подвергается физическому кодированию совместно используемого канала нисходящей линии связи для формирования комплексных модулированных символов.

К символам добавляется аддитивный белый гауссов шум. Шумные символы затем подвергаются обработке приемником для получения переданного кодового слова. Кодовое слово затем восстанавливается с турбо-скоростью, блок кода десегментирован и блок CRC декодируется, чтобы проверить, была ли передача успешной. Если ошибка CRC обнаружена в транспортном блоке, то повторная передача выполняется с использованием другого RV. Этот процесс продолжается до тех пор, пока передача не будет успешной или пока не будет достигнут предел повторной передачи.

Параметры для всей ячейки

Параметры ширины ячейки задаются в структуре enb.

enb.NDLRB = 50;                % No of Downlink RBs in total BW
enb.CyclicPrefix = 'Normal';   % CP length
enb.PHICHDuration = 'Normal';  % PHICH duration
enb.NCellID = 10;              % Cell ID
enb.CellRefP = 1;              % Single antenna ports
enb.DuplexMode = 'FDD';        % FDD Duplex mode
enb.CFI = 2;                   % 2 PDCCH symbols
enb.Ng = 'sixth';              % HICH groups
enb.NSubframe = 0;             % Subframe number 0

Конфигурирование режима передачи PDSCH

Физический общий канал нисходящей линии связи (PDSCH) конфигурируется с использованием структуры pdsch для схемы передачи с одной антенной.

pdsch.NLayers = 1;                % No of layers to map the transport block
pdsch.TxScheme = 'Port0';         % Transmission scheme
pdsch.Modulation = {'16QAM'};     % Modulation
pdsch.RV = 0;                     % Initialize Redundancy Version
pdsch.RNTI = 500;                 % Radio Network Temporary Identifier
pdsch.NTurboDecIts = 5;           % Number of turbo decoder iterations
pdsch.PRBSet = (0:enb.NDLRB-1).'; % Define the PRBSet
pdsch.CSI = 'On';                 % CSI scaling of soft bits

Конфигурация кодирования нисходящей линии связи

Определите параметры, необходимые для кодирования DL-SCH. Транспортный размер блока, используемый здесь, как определен для R.3 RMC в Таблице A.3.3.1-2 TS36.101 [1]. Размер кодированного блока DL-SCH может быть вычислен посредством ltePDSCHIndices функция с использованием enb и pdsch. ltePDSCHIndices функция возвращает информационную структуру в качестве второго вывода, содержащую параметр G который определяет количество кодированных и сопоставленных по скорости битов данных DL-SCH для удовлетворения физической емкости PDSCH.

rvIndex = 0;                                  % Redundancy Version index
transportBlkSize = 12960;                     % Transport block size
[~,pdschIndicesInfo] = ltePDSCHIndices(enb,pdsch,pdsch.PRBSet);
codedTrBlkSize = pdschIndicesInfo.G;          % Available PDSCH bits
dlschTransportBlk = randi([0 1], transportBlkSize, 1); % DL-SCH data bits

% Possible redundancy versions (number of retransmissions)
redundancyVersions = 0:3;

Петля повторной передачи

В этом примере моделируется один процесс HARQ. После каждой передачи значение blkCRCerr используется для проверки успешной передачи транспортного блока. Если обнаружена ошибка CRC, т.е. blkCRCerr >=1 затем выполняется повторная передача с использованием другого значения RV.

Первая передача выполняется с использованием RV, равного 0, что указывает на этап инициализации. Если пользовательское оборудование (UE) обнаруживает ошибку CRC, оно посылает NACK на базовую станцию (BS), так что повторная передача инициируется с использованием другого значения RV. Возвращено значение 1 или более для ошибки CRC блока.

eNireB будет продолжать передавать один и тот же транспортный блок, используя различные значения RV, пока UE не примет свободный от ошибок транспортный блок или не достигнет полного предела повторной передачи. В LTE общее число процессов HARQ, которые могут быть инициированы в любой данный момент времени, равно 8.

Для передачи и приема транспортного блока выполняются следующие шаги:

  • Кодирование канала DL-SCH. Биты DL-SCH генерируются и подвергаются канальному кодированию. Этот процесс включает в себя вставку транспортного блока 24A-type CRC, сегментацию кодового блока и вставку CRC кодового блока, турбокодирование, согласование скорости и конкатенацию кодового блока. Количество операций сегментации кодового блока и вставки CRC в каждый сегмент зависит от заданного размера транспортного блока. Каждый сегментированный блок отдельно турбокодируется и скорость согласовывается после кодового блока 24B-type вставки CRC. Процесс конкатенации применяется к согласованным по скорости турбокодированным блокам для формирования кодового слова. Если передача приводит к ошибке, то UE посылает сигнал NACK. Повторная передача ошибочного пакета выполняется с использованием различных RV. Каждый RV соответствует различному набору битов четности из одного и того же кодированного блока; RV управляет этим изменением. Все эти операции можно выполнить с помощью функции панели инструментов. lteDLSCH.

  • Формирование комплексных символов PDSCH. Скремблирование, модуляция, отображение уровня и предварительное кодирование применяются к кодированному транспортному блоку для генерации комплексных символов PDSCH. Это достигается с помощью ltePDSCHPRBS.

  • Добавление шума. Генерируемый шум затем добавляется к комплексным символам PDSCH. Путем изменения значения отклонения nVariance количество повторных передач также будет изменяться, поскольку количество обнаруженных ошибок будет колебаться в зависимости от количества шума, присутствующего на символах.

  • Обработка приемника PDSCH. В амортизации приемника PDSCH к шумным комплексным символам PDSCH применяются обратное преобразование уровня, мягкая демодуляция и дескремблирование.

  • Декодирование канала DL-SCH. Декодирование канала выполняется с использованием lteDLSCHDecode который выполняет восстановление скорости, мягкое объединение, десегментацию кодового блока, удаление CRC и декодирование CRC блока. Эта функция принимает мягкий буфер в качестве входного параметра, который затем используется при мягком объединении с принятыми мягкими битами кодового слова перед декодированием битов.

% Define soft buffer
decState = [];

% Noise power can be varied to see the different RV
SNR = 4; % dB

% Initial value
blkCRCerr = 1;

while blkCRCerr >= 1

    % Increment redundancy version for every retransmission
    rvIndex = rvIndex + 1;
    if rvIndex > length(redundancyVersions)
        error('Failed transmission');
    end
    pdsch.RV = redundancyVersions(rvIndex);

    % PDSCH payload
    codedTrBlock = lteDLSCH(enb, pdsch, codedTrBlkSize, ...
                   dlschTransportBlk);

    % PDSCH symbol generation
    pdschSymbols = ltePDSCH(enb, pdsch, {codedTrBlock});

    % Add noise to pdschSymbols to create noisy complex modulated symbols
    pdschSymbolsNoisy = awgn(pdschSymbols,SNR);

    % PDSCH receiver processing
    rxCW = ltePDSCHDecode(enb, pdsch, pdschSymbolsNoisy);

    % DL-SCH channel decoding
    [rxBits, blkCRCerr, decState] = lteDLSCHDecode(enb, ...
        pdsch, transportBlkSize, rxCW, decState);

end

blkCRCerr - ошибка CRC блока для принятого транспортного блока. UE посылает NACK, если обнаруживает ошибку CRC в принятом транспортном блоке. Кроме того, новый мягкий буфер, decState, содержимое доступно на выходе этой функции, которая будет использоваться в следующий раз.

Используя этот пример, можно наблюдать влияние шума на количество повторных передач, необходимых для успешного приема. В этом примере для данного уровня шума, добавленного к переданным символам, для успешного приема данных требуется всего 1 повторная передача.

fprintf(['\n\nTransmission successful, total number of Redundancy ' ...
    'Versions used is ' num2str(redundancyVersions(rvIndex) + 1) ' \n\n']);

Transmission successful, total number of Redundancy Versions used is 2 

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

  1. 3GPP ТС 36.101 «Радиопередача и прием пользовательского оборудования (UE)»

  2. 3GPP TS 36.212 «Мультиплексирование и канальное кодирование»

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