nrULSCHDemultiplex

Выполните данные UL-SCH и управляйте демультиплексированием

    Описание

    пример

    [culsch,cack,ccsi1,ccsi2] = nrULSCHDemultiplex(pusch,tcr,tbs,oack,ocsi1,ocsi2,cw) возвращает демультиплексированный закодированный вектор данных culschи закодированные векторы управляющей информации восходящей линии связи (UCI) cack, ccsi1, и ccsi2 провести демультиплексирование принятого кодового слова cw. Это демультиплексирование отменяет обработку, определенную в TS 38.212 Раздел 6.2.7 [1]. pusch - физический общий канал восходящей линии связи (PUSCH) строения. tcr - целевая скорость кода. tbs - размер транспортного блока для передачи по общему каналу восходящей линии связи (UL-SCH). oack - номер бит полезной нагрузки гибридного автоматического запроса на повторное подтверждение (HARQ-ACK). ocsi1 количество полезной нагрузки части 1 информации о состоянии канала (CSI) бит и ocsi2 - количество бит полезной нагрузки CSI части 2. cw является вектор-столбец мягкой логарифмической правдоподобности отношения бит (LLR).

    Примеры

    свернуть все

    Создайте объект строения PUSCH со схемой pi/2-BPSK модуляции и без скачкообразного изменения частоты. Установите коэффициент бета- смещения для HARQ-ACK равным 20, и коэффициент бета- смещения для части 1 CSI и части 2 CSI равный 6,25 каждый. Задайте коэффициент масштабирования как 1, который ограничивает количество ресурсных элементов (RE), назначенных для UCI.

    pusch = nrPUSCHConfig;
    pusch.Modulation = 'pi/2-BPSK';
    pusch.FrequencyHopping = 'neither';
    pusch.BetaOffsetACK = 20;
    pusch.BetaOffsetCSI1 = 6.25;
    pusch.BetaOffsetCSI2 = 6.25;
    pusch.UCIScaling = 1;

    Установите целевую скорость кода, длины полезной нагрузки данных UL-SCH, HARQ-ACK, CSI часть 1 и CSI часть 2.

    tcr = 0.5;   % Target code rate
    tbs = 3848;  % Payload length of UL-SCH data (transport block size)
    oack = 8;    % Payload length of HARQ-ACK
    ocsi1 = 88;  % Payload length of CSI part 1
    ocsi2 = 100; % Payload length of CSI part 2

    Получите согласованные по скорости длины данных UL-SCH, HARQ-ACK, части 1 CSI и части 2 CSI.

    rmInfo = nrULSCHInfo(pusch,tcr,tbs,oack,ocsi1,ocsi2);

    Создайте случайным образом закодированные биты UL-SCH, HARQ-ACK, части 1 CSI и части 2 CSI.

    culsch = randi([0 1],rmInfo.GULSCH,1);
    cack = randi([0 1],rmInfo.GACK,1);
    ccsi1 = randi([0 1],rmInfo.GCSI1,1);
    ccsi2 = randi([0 1],rmInfo.GCSI2,1);

    Получите кодовое слово из случайным образом закодированных бит UL-SCH и кодированных бит типов UCI.

    cw = nrULSCHMultiplex(pusch,tcr,tbs,culsch,cack,ccsi1,ccsi2);

    Получите демультиплексированные биты UL-SCH и UCI из кодового слова.

    [rxculsch,rxcack,rxccsi1,rxccsi2] = nrULSCHDemultiplex(pusch,tcr,tbs,oack,ocsi1,ocsi2,1-2*cw);

    Проверьте, что случайным образом закодированные биты и демультиплексированные кодированные биты UL-SCH и кодированных типов UCI идентичны.

    isequal(rxculsch<0,culsch)
    ans = logical
       1
    
    
    isequal(rxcack<0,cack)
    ans = logical
       1
    
    
    isequal(rxccsi1<0,ccsi1)
    ans = logical
       1
    
    
    isequal(rxccsi2<0,ccsi2)
    ans = logical
       1
    
    

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

    свернуть все

    Параметры конфигурации PUSCH, заданные как nrPUSCHConfig объект. Эта функция использует только эти nrPUSCHConfig свойства объекта.

    Схема модуляции, заданная как 'QPSK', 'pi/2-BPSK', '16QAM', '64QAM', или '256QAM', строковый скаляр или символьный массив.

    Схема модуляцииКоличество Бит на символ
    'pi/2-BPSK'1
    'QPSK'2
    '16QAM'4
    '64QAM'6
    '256QAM'8

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

    Количество слоев передачи, заданное как 1, 2, 3, или 4.

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

    Тип отображения физического общего канала, заданный как 'A' или 'B'.

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

    Выделение символа OFDM физического общего канала, заданное как двухэлементный вектор неотрицательных целых чисел. Первый элемент этого свойства представляет начало выделения символа (на основе 0). Второй элемент представляет количество выделенных символов OFDM.

    Когда вы устанавливаете это свойство на [] или второго элемента вектора, для 0, для канала не выделен символ.

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

    Выделение физического ресурсного блока (PRB) PUSCH в BWP, заданное как вектор целых чисел от 0 до 274.

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

    Прекодирование преобразования, заданное как одно из следующих значений.

    • 0 (false) - Отключить предварительное кодирование преобразования. Тип формы волны является циклически-префиксным ортогональным частотным делением мультиплексированием (CP-OFDM).

    • 1 (true) - Включите предварительное кодирование преобразования. Тип формы волны является дискретным ортогональным частотным делением преобразования Фурье (DFT-s-OFDM).

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

    Скачок частоты для физического восходящего общего канала, заданный как один из следующих опций.

    • 'neither'

    • 'intraSlot'

    • 'interSlot'

    Если вы задаете скачкообразное изменение частоты внутри внутрипаза, и входные закодированные биты не удовлетворяют уравнениям раздела 6.2.7 TS 38.212, функция возвращает кодовое слово, принимая, что скачкообразное изменение частоты не присутствует.

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

    Коэффициент смещения беты HARQ-ACK, заданный как положительное целое число. Это свойство определяет количество ресурсов для мультиплексирования HARQ-ACK. Номинальное значение является одним из значений из таблицы 9.3-1 TS 38.213.

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

    Коэффициент смещения беты части 1 информации о состоянии канала (CSI), заданный как положительное целое число. Это свойство определяет количество ресурсов для мультиплексирования части 1 CSI. Номинальное значение является одним из значений из таблицы 9.3-2 TS 38.213.

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

    Коэффициент смещения беты части 2 CSI, заданный как положительное целое число. Это свойство определяет количество ресурсов для мультиплексирования CSI части 2. Номинальное значение является одним из значений из таблицы 9.3-2 TS 38.213.

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

    Масштабный коэффициент для ограничения количества ресурсных элементов, выделенных для UCI на PUSCH, заданный как скаляр между 0 и 1. Номинальное значение 0,5, 0,65, 0,8 или 1.

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

    Временный идентификатор радиосети пользовательского оборудования (UE), заданный в виде целого числа от 0 до 65 535.

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

    Параметры конфигурации PUSCH DM-RS, заданные как nrPUSCHDMRSConfig объект строения.

    Включите PT-RS, заданное в качестве одного из следующих значений.

    • 0 (false) - Отключите строение PT-RS.

    • 1 (true) - Включите строение PT-RS.

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

    Строение опорного сигнала отслеживания фазы PUSCH (PT-RS), заданная как nrPUSCHPTRSConfig объект строения.

    Целевая скорость кода для кодового слова в передаче UL-SCH, заданная в виде скаляра в области значений (0, 1).

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

    Размер транспортного блока, сопоставленный с кодовым словом в передаче UL-SCH, задается как неотрицательное целое число. Значение 0 указывает на отсутствие транспортного блока или на отсутствие передачи UL-SCH на PUSCH.

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

    Длина полезной нагрузки бит HARQ-ACK, заданная как неотрицательное целое число. Значение 0 указывает на отсутствие передачи HARQ-ACK.

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

    Длина полезной нагрузки CSI-части 1 бит, заданная в виде неотрицательного целого числа. Значение 0 указывает на отсутствие передачи CSI части 1.

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

    Длина полезной нагрузки CSI-части 2 бит, заданная в виде неотрицательного целого числа. Значение 0 указывает на отсутствие передачи CSI часть 2. Номинально часть 2 CSI присутствует только, когда часть 1 CSI присутствует.

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

    Получены журналы мягких битах коэффициента правдоподобия (LLR), возвращаются как реальные векторы-столбцы или []. Длина cw должно быть равно разрядности PUSCH.

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

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

    свернуть все

    Кодированные мягкие биты LLR UL-SCH, заданные как реальный вектор-столбец. Если входной параметр cw пуст, тогда выходной аргумент culsch также пуст. Тип выходных данных culsch соответствует параметру входного параметра cw.

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

    Закодированные мягкие биты HARQ-ACK LLR, заданные как реальный вектор-столбец. Если входной параметр cw пуст, тогда выходной аргумент cack также пуст. Тип выходных данных cack соответствует параметру входного параметра cw.

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

    Кодированные мягкие биты LLR части 1 CSI, заданные как реальный вектор-столбец. Если входной параметр cw пуст, тогда выходной аргумент ccsi1 также пуст. Тип выходных данных ccsi1 соответствует параметру входного параметра cw.

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

    Кодированные мягкие биты LLR части 2 CSI, заданные как реальный вектор-столбец. Если входной параметр cw пуст, тогда выходной аргумент ccsi2 также пуст. Тип выходных данных ccsi2 соответствует параметру входного параметра cw.

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

    Ссылки

    [1] 3GPP TS 38.212. "NR; Мультиплексирование и канальное кодирование. "3rd Генерация Partnership Project; Группа технических спецификаций Радиосеть доступ.

    [2] 3GPP TS 38.213. "NR; Процедуры физического слоя для контроля ". 3-ья Генерация Partnership Project; Группа технических спецификаций Радиосеть доступ.

    Расширенные возможности

    Генерация кода C/C + +
    Сгенерируйте код C и C++ с помощью Coder™ MATLAB ®

    .
    Введенный в R2020b