lteSLSCHDecode

Sidelink совместно использовал декодирование канала

Описание

пример

trblkout,blkcrc,stateout = lteSLSCHDecode(ue,trblklen,cwin) возвращает вектор-столбец информационных битов, trblkout, декодируемый от мягкого вектора данных кодовой комбинации отношения логарифмической правдоподобности (LLR) cwin для заданной структуры настроек UE и транспортной длины блока. Дополнительные выходные параметры содержат результат контроля циклическим избыточным кодом блока, blkcrc и структура, содержащая состояние декодирования процесса HARQ, stateout.

Обработка декодера SL-SCH включает устранение чередования PUSCH, восстановление уровня, турбо декодирование, конкатенацию блока и вычисления CRC. Декодер SL-SCH выполняет инверсию непрямой разделяемой обработки канала, заданной в TS 36.212 [1], Раздел 5.4.2. Для получения дополнительной информации см. Sidelink Разделяемая Транспортная Обработка Канала.

пример

[trblkout,blkcrc,stateout] = lteSLSCHDecode(ue,trblklen,cwin,statein) принимает входную структуру, задающую начальное состояние процесса HARQ, которое используется в поддержку мягкого объединения HARQ.

stateout массив обычно повторно применяется через statein аргумент последующего lteSLSCHDecode вызовы функции, когда часть фиксированной последовательности повторных передач HARQ используется SL-SCH. Когда транспортный блок передается, он всегда отправляется четыре раза на четырех последовательных подкадрах PSSCH с помощью фиксированной последовательности RV {0,2,3,1}. Последовательные подкадры PSSCH выбраны из подмножества пула подкадра PSSCH. statein и stateout переменные позволяют этому набору передач быть мягок объединенный.

Примеры

свернуть все

Закодируйте и декодируйте блок информации с помощью транспортного канала SL-SCH.

Создайте структуру настроек UE. Сгенерируйте 100-битный транспортный блок и кодовую комбинацию SL-SCH.

ue = struct('CyclicPrefixSL','Normal','Modulation','16QAM','RV',0);
trblk = randi([0 1],100,1);
cw = lteSLSCH(ue,5760,trblk);

Декодируйте кодовую комбинацию SL-SCH.

rxtrblk = lteSLSCHDecode(ue,length(trblk),cw);

Закодируйте и декодируйте блок информации с помощью транспортного канала SL-SCH и отобразите ошибочный результат CRC.

Создайте структуру настроек UE. Сгенерируйте 100-битный транспортный блок и кодовую комбинацию SL-SCH.

ue = struct('CyclicPrefixSL','Normal','Modulation','16QAM','RV',0);
trblk = randi([0 1],100,1);
cw = lteSLSCH(ue,5760,trblk);

Декодируйте кодовую комбинацию SL-SCH и проверку на блочные ошибки.

[rxtrblk,err] = lteSLSCHDecode(ue,length(trblk),cw);
err
err = logical
   0

Декодируемый транспортный блок не имеет никаких ошибок.

Используйте мягкое объединение, в то время как декодирование последовательности четырех передач раньше отправляло каждый транспортный блок на SL-SCH. Уровень, соответствующий и уровень шума, установлены так, чтобы успешное декодирование блока потребовало нескольких передач.

Инициализируйте параметры

  • Создайте структуру настроек UE для SL-SCH.

  • Сгенерируйте транспортный блок 100 случайных битов.

  • Создайте локальную переменную, задающую емкость в битах SL-SCH 288.

  • Задайте фиксированную последовательность версии сокращения, используемую процессом HARQ.

  • Очистите состояние декодирования процесса HARQ.

ue = struct('CyclicPrefixSL','Normal','Modulation','QPSK');
trblk = randi([0 1],100,1);
bitcapacity = 288;
rvseq = [0 2 3 1];
decstate = [];

Передайте и восстановите транспортный блок SL-SCH

  • Отправьте транспортный блок четыре раза.

  • Отобразите результат декодирования последовательных передач.

for i = 1:4
    % Encode information bits with the next RV value.
    ue.RV = rvseq(i);
    cw = lteSLSCH(ue,bitcapacity,trblk);
    
    % Modulate the codeword and add noise.
    sym = awgn(lteSymbolModulate(cw,ue.Modulation),-4,'measured');
    softdata = lteSymbolDemodulate(sym,ue.Modulation);
    
    % Decode the current transmission and combine with decoding state.
    [rxtrblk,err,decstate] = lteSLSCHDecode(ue,length(trblk), ...
        softdata,decstate);
    X = ['Decoding error ', num2str(err), ' for transmission #', ...
        num2str(i), ' with RV ', num2str(ue.RV)];
    disp(X)
end
Decoding error 1 for transmission #1 with RV 0
Decoding error 1 for transmission #2 with RV 2
Decoding error 0 for transmission #3 with RV 3
Decoding error 0 for transmission #4 with RV 1

Мягко объединенные данные восстанавливаются без ошибки на третьей передаче.

Входные параметры

свернуть все

Настройки оборудования пользователя в виде структуры параметра, содержащей эти поля:

Режим Sidelink в виде 'D2D' или 'V2X'.

Типы данных: char | string

Циклическая длина префикса в виде 'Normal' или 'Extended'.

Типы данных: char | string

Тип модуляции в виде 'QPSK' или '16QAM'.

Типы данных: char | string

Индикатор версии сокращения в виде целочисленного скаляра или вектора со значениями элемента от 0 до 3.

Пример: [0 2 3 1], указывает на порядок последовательности RV для передачи на PSSCH.

Типы данных: double

Количество турбо циклов итерации декодера в виде целочисленного скаляра от 1 до 30.

Типы данных: double

Типы данных: struct

Транспортная длина блока в виде положительного целочисленного скаляра. trblklen задает декодируемую транспортную длину блока.

Типы данных: double

Данные о кодовой комбинации LLR в виде мягкого битового вектора.

Типы данных: double

Декодер буферное государство в виде структуры. Используйте statein вводить текущий декодер буферное государство для транспортного блока в активном процессе HARQ. statein может быть пустая структура или массив структур с одним или двумя элементами. Если непустой, statein.CBSBuffers должен содержать массив ячеек векторов, представляющих отношение логарифмической правдоподобности (LLR) мягкие буферные государства для набора блоков кода во входе к турбо декодеру, после явного восстановления уровня. Обновленные буферные государства после декодирования возвращены в CBSBuffers поле stateout.

statein массив обычно генерируется и перерабатывается от stateout из предыдущих вызовов lteSLSCHDecode, как часть фиксированной последовательности SL-SCH HARQ (ре) передачи.

statein структура содержит это поле:

LLR мягкие буферные государства в виде массива ячеек числовых векторов. CBSBuffers содержит мягкие буферные государства LLR для набора блоков кода, сопоставленных с одним транспортным блоком. Мягкие буферные государства LLR расположены во вход к турбо декодеру. Состояния доступны после явного восстановления уровня.

Типы данных: cell

Типы данных: struct

Выходные аргументы

свернуть все

Декодируемые информационные биты, возвращенные как вектор-столбец. trblkout информационные биты декодируются от мягкого вектора данных кодовой комбинации отношения логарифмической правдоподобности (LLR), cwin.

Проверка отказа CRC блока, возвращенного как true или false.

  • blkcrc = false указывает, что подкадр был восстановлен без блочных ошибок.

  • blkcrc = true указывает на блочную ошибку.

Внутреннее состояние декодера, возвращенного как структура, содержащая эти поля:

LLR мягкие буферные государства, возвращенные как массив ячеек целочисленных векторов. CBSBuffers содержит мягкие буферные государства LLR для набора блоков кода, сопоставленных с одним транспортным блоком. Мягкие буферные государства LLR расположены во вход к турбо декодеру. Состояния доступны после явного восстановления уровня.

Типы данных: cell

Результаты декодирования CRC набора блока типа-24B кода, возвращенного как целочисленный массив или пустой массив.

Типы данных: double

Ошибка декодирования CRC в типе-24A транспортирует блок, возвращенный как логическое.

  • BLKCRC = 0 указывает, что подкадр был восстановлен без блочных ошибок.

  • BLKCRC = 1 указывает на блочную ошибку.

Типы данных: логический

Больше о

свернуть все

Sidelink разделяемая транспортная обработка канала

Непрямой разделяемый канал (SL-SCH) транспортная обработка канала включает вычисление CRC типа-24A, сегментацию блока кода (включая прикрепление CRC типа-24B, если существующий), турбо кодирование, уровень, соответствующий с версией сокращения (RV), конкатенацией блока кода и перемежением PUSCH. lteSLSCH генерирует эту транспортную кодовую комбинацию канала, как задано TS 36.212, Раздел 5.4.2.

Транспортная кодовая комбинация канала SL-SCH, несущая информационные биты одного транспортного блока, передается на физическом непрямом разделяемом канале. Используйте ltePSSCH и ltePSSCHIndices функции, чтобы сгенерировать модулируемые символы и заполнить сетку ресурса для передачи.

Длина кодовой комбинации выводится lteSLSCH представляет емкость в битах физического канала. Для PSSCH входная длина кодовой комбинации является битами M  = N RE × бит/с N, где бит/с N является количеством битов на символ. Модуляция PSSCH является или QPSK (2 бита за символ) или 16QAM (4 бита за символ). Количество элементов ресурса PSSCH (N RE) в подкадре является N RE = N PRB ×   N REperPRB ×   N SYM и включает символы, сопоставленные с непрямым защитным символом SC-FDMA.

  • N PRB является количеством физических блоков ресурса (PRB), используемых в передаче.

  • N REperPRB является количеством элементов ресурса в PRB. Каждый PRB имеет 12 элементов ресурса.

  • N SYM является количеством символов SC-FDMA в подкадре PSSCH, включая символы, сопоставленные с непрямым защитным символом SC-FDMA. N, который SYM 12 для нормального циклического префикса D2D или 10 для D2D, расширил циклический префикс и V2X.

Для D2D sidelink кодовая комбинация SL-SCH, несущая информационные биты одного транспортного блока, всегда передается четыре раза на четырех последовательных подкадрах PSSCH с помощью фиксированной последовательности RV, RV = 0,2,3,1. Подкадры передачи выбраны из подмножества пула подкадра PSSCH. Нет никакой обратной связи HARQ, вовлеченной в процесс. Для V2X могут быть или одна или две передачи транспортного блока с помощью последовательности RV, RV = 0,2. Для получения дополнительной информации о передаче SL-SCH и непрямом процессе HARQ, смотрите TS 36.321, Раздел 5.14.2.2.

Ссылки

[1] 3GPP TS 36.212. “Развитый Универсальный Наземный Радио-доступ (к E-UTRA); Мультиплексирование и кодирование канала”. Проект Партнерства третьего поколения; Сеть радиодоступа Technical Specification Group. URL: https://www.3gpp.org.

[2] 3GPP TS 36.321. “Развитый Универсальный Наземный Радио-доступ (к E-UTRA); протокол Среднего управления доступом (MAC) Спецификация”. Проект Партнерства третьего поколения; Сеть радиодоступа Technical Specification Group. URL: https://www.3gpp.org.

Смотрите также

|

Введенный в R2017b