exponenta event banner

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

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

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

свернуть все

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

Режим боковых линий связи, указанный как '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 может быть пустой структурой или массивом структуры с одним или двумя элементами. Если не empty, statein.CBSBuffers должен содержать массив ячеек векторов, представляющих состояния мягкого буфера логарифмического отношения правдоподобия (LLR) для набора кодовых блоков на входе в турбодекодер после явного восстановления скорости. Обновленные состояния буфера после декодирования возвращаются в CBSBuffers поле stateout.

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

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

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

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

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

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

свернуть все

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

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

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

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

Внутреннее состояние декодера, возвращаемое в виде структуры, содержащей следующие поля:

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

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

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

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

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

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

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

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

Подробнее

свернуть все

Обработка общих транспортных каналов Sidelink

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

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

Длина кодового слова, выводимого на lteSLSCH представляет битовую емкость физического канала. Для PSSCH длина входного кодового слова равна Mbits  = NRE  × Nbps, где Nbps - количество битов на символ. Модуляция PSSCH является либо QPSK (2 бита на символ), либо 16QAM (4 бита на символ). Количество элементов ресурса PSSCH (NRE) в субкадре равно NRE  = NPRB  × NREperPRB  × NSYM и включает в себя символы, связанные с гардином sidelink SC-FDMA.

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

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

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

Для D2D боковой линии связи кодовое слово 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); мультиплексирование и канальное кодирование. "Проект партнерства 3-го поколения; Техническая спецификация на сеть радиодоступа группы. URL: https://www.3gpp.org.

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

См. также

|

Представлен в R2016b