exponenta event banner

ltePDSCHPRBS

Псевдослучайная скремблирующая последовательность PDSCH

Описание

пример

[seq,cinit] = ltePDSCHPRBS(enb,rnti,cwIndex,n) возвращает вектор столбца, содержащий первый n выходные сигналы скремблирующей последовательности физического общего канала нисходящей линии связи (PDSCH). Он также возвращает значение инициализации cinit для генератора псевдослучайной двоичной последовательности (PRBS). Функция инициализируется в соответствии с настройками для всей ячейки, enb, 16-битный rnti, и cwIndex, указывая, какое кодовое слово скремблирует эта последовательность.

[seq,cinit] = ltePDSCHPRBS(enb,rnti,cwIndex,n,mapping) позволяет управлять форматом возвращаемой последовательности seq со входом mapping.

[subseq,cinit] = ltePDSCHPRBS(enb,rnti,cwIndex,pn) возвращает подпоследовательность полной последовательности PRBS, указанной pn.

[subseq,cinit] = ltePDSCHPRBS(enb,rnti,cwIndex,pn,mapping) позволяет дополнительно контролировать формат возвращаемой подпоследовательности, subseq, с вводом mapping

Примеры

свернуть все

Скремблировать содержимое кодового слова, используя скремблирующую последовательность PDSCH.

Создайте структуру конфигурации для всей ячейки для R.0 опорного канала, получите индексы PDSCH и создайте кодовое слово.

enb = lteRMCDL('R.0');
pdsch = enb.PDSCH;
[~,pdschInfo] = ltePDSCHIndices(enb,pdsch,pdsch.PRBSet);
codedTrBlkSize = pdschInfo.G;
cw = randi([0 1],codedTrBlkSize,1);

Генерируют скремблирующую последовательность PDSCH и скремблируют кодовое слово, используя скремблирующую последовательность PDSCH.

RNTI = 11;
ncw = 0;
pdschPrbsSeq = ltePDSCHPRBS(enb,RNTI,ncw,length(cw));
scrambled = xor(pdschPrbsSeq, cw);

Скремблируют содержимое двух кодовых слов, используя скремблирующую последовательность PDSCH. При передаче множества кодовых слов посредством пространственного мультиплексирования каждое кодовое слово использует различную скремблирующую последовательность.

Создайте структуру конфигурации для всей ячейки для R.14 опорного канала, получите индексы PDSCH.

rmc.RC = 'R.14';
rmc = lteRMCDL(rmc,2);
pdsch = rmc.PDSCH;
[~,pdschInfo] = ltePDSCHIndices(rmc,pdsch,pdsch.PRBSet);
codedTrBlkSize1 = pdschInfo.G(1);
codedTrBlkSize2 = pdschInfo.G(2);
cws{1} = randi([0 1],codedTrBlkSize1,1);
cws{2} = randi([0 1],codedTrBlkSize2,1);

Генерируют скремблирующие последовательности PDSCH для двух кодовых слов и скремблируют кодовые слова, используя скремблирующие последовательности PDSCH.

RNTI = 11;
ncw = 0;
pdschPrbsSeq1 = ltePDSCHPRBS(rmc,RNTI,ncw,length(cws{1}));
ncw = 1;
pdschPrbsSeq2 = ltePDSCHPRBS(rmc,RNTI,ncw,length(cws{2}));
scrambled1 = xor(pdschPrbsSeq1, cws{1});
scrambled2 = xor(pdschPrbsSeq2, cws{2});

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

свернуть все

Параметры для всей ячейки, заданные как структура. enb содержит следующие поля.

Идентификатор ячейки физического уровня, заданный как неотрицательное целое число.

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

Номер подкадра, заданный как неотрицательное целое число.

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

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

Временный идентификатор радиосети, указанный как неотрицательное целое число.

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

Индекс кодового слова, указанный как 0 или 1. Этот вход указывает, какое кодовое слово скремблирует эта последовательность.

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

Длина скремблирующей последовательности, заданная как положительное целое число.

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

Диапазон подпоследовательности скремблирования, subseq, указанный как вектор строки [p n]. Подпоследовательность возвращается n значения генератора PRBS, начиная с позиции p (на основе 0).

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

Форматирование последовательности вывода, указанное как 'binary' или 'signed'. mapping управляет форматом возвращаемой последовательности.

  • 'binary' карты true в 1 и false в 0.

  • 'signed' карты true до -1 и false на 1.

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

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

свернуть все

Скремблирующая последовательность PDSCH, возвращаемая как вектор логического столбца или вектор числового столбца. seq аргумент содержит первый n выходные сигналы псевдослучайной скремблирующей последовательности PDSCH. Если mapping имеет значение 'signed', seq является вектором двойного типа данных. В противном случае это вектор логического типа данных.

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

Подпоследовательность скремблирования PDSCH, возвращаемая как вектор логического столбца или вектор числового столбца. subseq содержит значения генератора PRBS, указанные pn. Если установить mapping кому 'signed', тип выходных данных: double. В противном случае тип выходных данных: logical

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

Значение инициализации для генератора PRBS, возвращаемое как числовой скаляр.

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

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