nrPUSCHDescramble

Выполните дескремблирование PUSCH

Описание

пример

cw = nrPUSCHDescramble(in,nid,rnti) возвращает вектор-столбец мягких битов, следующих из обратной операции физического восходящего канала совместно использованный канал (PUSCH), борющийся от Раздела TS 38.211 6.3.1.1 [1]. in вектор скремблированных мягких битов, nid борющаяся идентичность и rnti радиосеть временный идентификатор (RNTI) оборудования пользователя (UE). Когда вы используете этот синтаксис, функция дескремблирования только биты данных, потому что местоположения бита заполнителя для любой восходящей управляющей информации (UCI), если есть неизвестны в этом случае.

пример

cw = nrPUSCHDescramble(in,nid,rnti,xInd,yInd) возвращает вектор-столбец мягких битов путем принятия во внимание заполнителя UCI X местоположений бита, xInd, и заполнитель UCI Y местоположения бита, yInd. Входные параметры xInd и yInd вектор-столбцы на основе 1 в кодовой комбинации и указывают на соответствующие местоположения заполнителя.

Примеры

свернуть все

Создайте случайную последовательность двоичных значений, соответствующих кодовой комбинации, содержащей 3 000 битов. Выполните PUSCH скремблирование инициализированного заданным личным номером ячейки физического уровня и RNTI.

cw = randi([0 1],3000,1);
ncellid = 42;
rnti = 101;
scrambled = nrPUSCHScramble(cw,ncellid,rnti);

Модулируйте скремблированные данные с помощью 16-QAM модуляции. Демодулируйте результат.

modulation = '16QAM';
sym = nrSymbolModulate(scrambled,modulation);
demod = nrSymbolDemodulate(sym,modulation);

Выполните дескремблирование PUSCH демодулируемых символов.

descrambled = nrPUSCHDescramble(demod,ncellid,rnti)
descrambled = 3000×1
1010 ×

   -1.6000
   -1.6000
    0.4000
   -0.4000
   -1.6000
    0.4000
    0.4000
   -0.4000
   -0.4000
   -0.4000
      ⋮

Выполните трудное решение относительно мягкой метрики.

rxcw = double(descrambled<0)
rxcw = 3000×1

     1
     1
     0
     1
     1
     0
     0
     1
     1
     1
      ⋮

Сравните результат с исходной кодовой комбинацией.

isequal(cw,rxcw)
ans = logical
   1

Создайте кодовую комбинацию для 1 бита.

cw = [1 -2 -1 -1]';

Задайте борющуюся идентичность как 100 и радиосеть временный идентификатор как 65 350.

nid = 100;
rnti = 65350;

Выполните скремблирование PUSCH, которое инициализируется местоположениями бита X и Y заполнителя UCI.

xind = find(cw == -1);
yind = find(cw == -2);
scrambled = nrPUSCHScramble(cw,nid,rnti);

Модулируйте скремблированные данные с помощью 16-QAM схемы. Демодулируйте результат.

modulation = '16QAM';
sym = nrSymbolModulate(scrambled,modulation);
demod = nrSymbolDemodulate(sym,modulation);

Выполните дескремблирование PUSCH демодулируемых символов.

descrambled = nrPUSCHDescramble(demod,nid,rnti,xind,yind)
descrambled = 4×1
1010 ×

   -1.6000
   -1.6000
   -0.4000
   -0.4000

Сравните результат с исходной кодовой комбинацией.

isequal(descrambled(1)<0,cw(1))
ans = logical
   1

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

свернуть все

Аппроксимированное отношение логарифмической правдоподобности (LLR) мягкие биты в виде действительного вектор-столбца. Знак представляет скремблированный твердый бит.

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

Скремблирование идентичности в виде целого числа от 0 до 1 023. nid более высокий параметр слоя dataScramblingIdentityPUSCH, в пределах от от 0 до 1 023, если более высокий параметр слоя сконфигурирован. В противном случае, nid личный номер ячейки физического уровня NCellID, в пределах от от 0 до 1 007. Для получения дополнительной информации смотрите Раздел TS 38.211 6.3.1.1.

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

RNTI UE в виде целого числа от 0 до 65 535.

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

X индексов заполнителя UCI в виде вектор-столбца положительных значений. Когда вы задаете этот вход, функция дескремблирует входную кодовую комбинацию, in, во всех местоположениях кроме X мест заполнителя. Значение [] указывает на индексы заполнителя № X.

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

Y индексы заполнителя UCI в виде вектор-столбца положительных значений. Входная кодовая комбинация, in, в местоположениях заполнителя, yInd, дескремблирован с предыдущими значениями борющейся последовательности. Значение [] не указывает ни на какие индексы заполнителя Y.

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

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

свернуть все

Дескремблированные аппроксимированные мягкие биты LLR, возвращенные как числовой вектор-столбец. Знак представляет дескремблированный твердый бит.

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

Ссылки

[1] 3GPP TS 38.211. “NR; Физические каналы и модуляция”. Проект Партнерства третьего поколения; Сеть радиодоступа Technical Specification Group.

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

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

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

Функции

Введенный в R2019a