ltePSCCHPRBS

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

Описание

пример

[seq,cinit] = ltePSCCHPRBS(n) возвращает вектор-столбец, содержащий первый n выходные параметры псевдослучайной двоичной последовательности скремблирования PSCCH (PRBS). Это также возвращает значение инициализации 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 путем генерации псевдослучайной двоичной последовательности PSCCH (PRBS) и применения операции "исключающее ИЛИ" на эти две последовательности.

Сгенерируйте необходимую длину 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 в форме со знаком.

  • Дескремблируйте вектор из шумных демодулируемых символов, представляющих последовательность мягких битов. Для этого выполните pointwise умножение между последовательностью 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

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

| | |

Введенный в R2017b