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. Для получения дополнительной информации см. Раздел «Обработка совместно используемого транспортного канала»

пример

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

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

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

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

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

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

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

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

свернуть все

Декодированные информационные биты, возвращенные как вектор-столбец. The 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 длина ключевого слова входа - M биты = N ре × <reservedrangesplaceholder6> bps  , где <reservedrangesplaceholder5> bps - количество бит за символ. Модуляция PSSCH является либо QPSK (2 бита на символ), либо 16QAM (4 бита на символ). Число       элементов ресурса PSSCH (N РЕ) в нижней раме является N РЕ = <reservedrangesplaceholder2> PRB × <reservedrangesplaceholder1> REperPRB × <reservedrangesplaceholder0> 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 боковой линии связи кодовое слово 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. "Evolved Universal Terrestrial Radio Access (E-UTRA); Мультиплексирование и канальное кодирование. "3rd Генерация Partnership Project; Группа технических спецификаций Радиосеть доступ. URL-адрес: https://www.3gpp.org.

[2] 3GPP TS 36.321. "Evolved Universal Terrestrial Radio Access (E-UTRA); Спецификация протокола управления средним доступом (MAC). "3rd Генерация Partnership Project; Группа технических спецификаций Радиосеть доступ. URL-адрес: https://www.3gpp.org.

См. также

|

Введенный в R2016b