ltePSCCHPRBS

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

Описание

пример

[seq,cinit] = ltePSCCHPRBS(n) возвращает вектор-столбец, содержащую первый n выходы псевдослучайной двоичной последовательности скремблирования (PRBS) PSCCH. Это также возвращает значение инициализации cinit для генератора PRBS.

Сгенерированная скремблирующая последовательность должна применяться к закодированным данным PSCCH, переносимым связанным субкадром. Используемый генератор последовательности PRBS инициализируется с c init  = 510 .

пример

[seq,cinit] = ltePSCCHPRBS(n,mapping) задает формат возвращаемой последовательности, seq, через mapping вход.

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

[subseq,cinit] = ltePSCCHPRBS(pn,mapping) задает формат возвращаемой подпоследовательности, subseq, через mapping вход.

Примеры

свернуть все

Скремблируйте кодовое слово PSCCH путем генерации псевдослучайной двоичной последовательности (PRBS) PSCCH и применения операции исключающего ИЛИ к этим двум последовательностям.

Сгенерируйте необходимую длину PRBS и скремблируйте кодовое слово PSCCH с помощью последовательности PRBS с помощью xor.

codeword = ones(288,1);
pscchPrbs = ltePSCCHPRBS(length(codeword));
scrambled = xor(pscchPrbs,codeword);

Дескремблируйте принятое кодовое слово PSCCH.

Скремблируйте кодовое слово PSCCH

  • Сгенерируйте необходимую длину PRBS и скремблируйте кодовое слово PSCCH с помощью последовательности PRBS с помощью xor.

  • Модулируйте логические скремблированные данные.

codeword = ones(288,1);
pscchPrbs = ltePSCCHPRBS(length(codeword));
scrambled = xor(pscchPrbs,codeword);

txsym = lteSymbolModulate(scrambled,'QPSK');

Дескремблируйте восстановленное кодовое слово

  • Добавьте шум к переданным символам и демодулируйте полученные мягкие данные.

  • Сгенерируйте PSCCH PRBS в форме со знаком.

  • Дескремблируйте вектор шумных демодулированных символов, представляющих последовательность мягких бит. Для этого выполните точечное умножение между последовательностью PRBS и восстановленными данными.

  • Сравните переданное кодовое слово с восстановленным кодовым словом.

sym = awgn(txsym,30,'measured');
softdata = lteSymbolDemodulate(sym,'QPSK');

scramblingSeq = ltePSCCHPRBS(length(softdata),'signed');
descrambled = softdata.*scramblingSeq;

isequal(codeword,descrambled > 0)
ans = logical
   1

Переданное кодовое слово соответствует жесткому решению по дескремблированным данным.

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

свернуть все

Количество элементов в возвращенной последовательности, seq, заданный как числовой скаляр.

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

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

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

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

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

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

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

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

свернуть все

PSCCH псевдослучайная последовательность скремблирования, возвращенная как логический вектор-столбец или числовой вектор-столбец. seq содержит первое n выходы последовательности скремблирования физического канала управления (PCCH). Если вы задаете mapping на 'signed', тип выходных данных double. В противном случае тип выходных данных logical.

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

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

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

Введенный в R2016b