Этот пример демонстрирует Гибридный Автоматический Повторный запрос (гибридный ARQ) Инкрементное сокращение (IR) в Нисходящем Разделяемом Канале (DL-SCH) передача с помощью LTE Toolbox™.
Нисходящий Разделяемый Канал (DL-SCH) описан в TS36.212, Раздел 5.3.2 [2]. Этот пример демонстрирует, как передатчик ретранслирует одну кодовую комбинацию по единственному слою, с помощью различной Версии сокращения (RV) каждый раз, пока CRC полученной кодовой комбинации не указывает на успешную передачу. Передача DL-SCH 16QAM модулируется с целью 1/2 кодирование уровня, переданного по одному порту антенны. Настройка, используемая в этом примере, основана на Фиксированном Ссылочном Канале R.3, заданный в Таблице A.3.3.1-2 TS36.101 [1].
Гибридный Автоматический Повторный запрос (гибридный ARQ) является комбинацией Прямого исправления ошибок (FEC) и Автоматического Повторного запроса оптимальным способом. Схемы гибридного ARQ обычно используются, чтобы упростить надежную коммуникацию по шумным беспроводным каналам. HARQ может компенсировать ошибки адаптации ссылки и обеспечивает более прекрасную гранулярность кодирования уровня, приводящего к лучшей производительности пропускной способности, чем другие схемы FEC.
Существует три типа Гибридного ARQ: Тип I, Тип-II и Тип-III.
Самый простой метод: Гибридный Тип I ARQ использует CRC, чтобы обнаружить, произошла ли ошибка в передаче. Если пакет, как будут находить, будет по ошибке запросом повторной передачи, то будет отправлен в передатчик, и ошибочный пакет будет отброшен. Передатчик затем ретранслирует тот же пакет, пока пакет не будет успешно декодироваться получателем, или максимальный предел повторной передачи достигнут.
Гибридный Тип ARQ я могу быть расширен, чтобы включать пакетное объединение, это известно как Гибридный Тип I ARQ с Пакетным Объединением Расчесывания или Преследования. После каждой не пройдено повторной передачи ошибочные пакеты хранятся в буфере. Получатель затем использует максимальное отношение, объединяющееся, чтобы объединить каждый полученный бит канала с любыми предыдущими передачами того же бита, и объединенный сигнал питается декодер. Объединение преследования не дает дополнительного усиления кодирования, оно только увеличивает накопленный полученный сигнал до шумового отношения для каждой повторной передачи.
В Гибридном Типе II ARQ, также известном как полное Инкрементное сокращение (IR), каждая повторная передача не обязательно идентична исходной передаче. Вместо этого сгенерированы несколько наборов закодированных битов и каждый раз, когда повторная передача требуется, ретранслируемые данные представляют различный набор закодированных битов, чем предыдущая передача. Получатель комбинирует повторную передачу с предыдущими попытками передачи того же пакета. Когда повторная передача содержит дополнительные биты четности, не включенные в предыдущие попытки передачи, получившийся уровень кода обычно понижается последующими повторными передачами. Каждая передача содержит различный набор битов четности, приводящих к более высокому усилению кодирования, когда сравнено, чтобы преследовать объединение.
Гибридный Тип III ARQ последнего метода, также известный как частичный IR, уменьшает уровень кодирования путем отправки дополнительных битов сокращения в каждой повторной передаче. Это действительно однако гарантирует, что повторные передачи могут самодекодировать. Это означает, что ретранслируемый пакет может быть преследованием, объединенным с предыдущими пакетами, чтобы увеличить усиление разнообразия.
LTE использует IR HARQ с 1/3 турбо энкодером, используемым в FEC. CRC Транспортного блока (TB) используется, чтобы обнаружить ошибки. Получатель только получает различные проколотые версии тех же закодированных турбо данных; каждая из этих повторных передач сам decodable. Таким образом это попадает в категорию Гибридного ARQ типа III.
В LTE повторные передачи отправляются с начальным уровнем кодирования 1/2 или 3/4. Максимальное количество одновременных процессов DL-HARQ (количество передач PDSCH, обслуженных), ограничивается 8, как задано в TS36.213, Раздел 7 [3].
В LTE N-канал протокол останавливать-и-ожидать используется в качестве Гибридного протокола ARQ, когда это предлагает низко буферизующие требования и низкое Подтверждение (ACK) / Отрицательное Подтверждение (NACK) обратная связь наверху.
В этом примере транспортный блок сгенерирован и подвергается DL-SCH, кодирующему, чтобы создать кодовую комбинацию. Кодовая комбинация подвергается физическому нисходящему каналу, совместно использованное кодирование канала, чтобы сформировать комплекс модулировало символы.
Аддитивный Белый Гауссов шум добавляется к символам. Шумные символы затем подвергаются обработке получателя, чтобы получить переданную кодовую комбинацию. Кодовая комбинация является затем турбо восстановленным уровнем, блок кода desegmented и блок 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.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, это указывает на этап инициализации. Если ошибка CRC обнаруживается Оборудованием пользователя (UE), это отправляет NACK в Базовую станцию (BS) так, чтобы повторная передача инициировалась с помощью различного значения RV. Значение 1 или больше возвратилось для ошибки блока CRC.
eNodeB продолжит передавать тот же транспортный блок с помощью различных значений RV, пока UE не получит безошибочный транспортный блок, или общий предел повторной передачи происходит. В LTE общее количество процессов HARQ, которые могут инициироваться в любой момент времени, равняется 8.
Чтобы передать и получить транспорт блокируются, следующие шаги происходят:
Кодирование Канала DL-SCH. Биты DL-SCH сгенерированы и подвергаются кодированию канала. Включенный в этот процесс транспортная вставка CRC 24A-типа блока, сегментация блока кода и вставка блока CRC кода, турбокодирование, соответствие уровня и конкатенация блока кода. Количество вставок сегментации и CRC блока кода в каждый сегмент зависит от данного транспортного размера блока. Каждый сегментированный блок является отдельно закодированным турбо и уровень, соответствующий после вставки CRC 24B-типа блока кода. Процесс конкатенации применяется на соответствующее турбо уровня, закодировал блоки, чтобы сформировать кодовую комбинацию. Если передача заканчивается по ошибке затем, UE сигнализирует о NACK. Повторная передача ошибочного пакета сделана с помощью различного RVs. Каждый RV соответствует различному набору битов четности от того же закодированного блока; RV управляет этим изменением. Все эти операции могут быть выполнены с помощью функции тулбокса lteDLSCH.
Генерация Символов Комплекса PDSCH. Скремблирование, модуляция, отображение слоя и предварительное кодирование применяются к закодированному транспортному блоку, чтобы сгенерировать символы комплекса PDSCH. Это достигается с помощью ltePDSCH.
Шумовое Сложение. Сгенерированный шум затем добавляется к символам комплекса PDSCH. Путем варьирования значения отклонения nVariance
количество повторных передач будет также варьироваться, это вызвано тем, что количество обнаруженных ошибок будет колебаться с суммой шума, существующего на символах.
Обработка Получателя PDSCH. В получателе PDSCH deprecoding, слой demapping, мягкая демодуляция и дескремблирование применяются к шумным символам комплекса 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
3GPP TS 36.101 "Передача радио оборудования пользователя (UE) и прием"
3GPP TS 36.212 "Мультиплексирование и кодирование канала"
3GPP TS 36.213 "Процедуры физического уровня"