exponenta event banner

nrBCHDecode

Декодирование широковещательного канала (BCH)

Описание

пример

scrblk = nrBCHDecode(softbits,L) декодирует логарифмические отношения правдоподобия (LLR) softbits в соответствии с TS 38.212, раздел 7.1 [1]. Функция возвращает декодированный скремблированный транспортный блок ВСН scrblk. Входной аргумент L - длина списка, используемая для полярного декодирования.

[scrblk,errFlag] = nrBCHDecode(softbits,L) также возвращает флаг ошибки, errFlag, чтобы указать, scrblk содержит ошибку после декодирования.

[scrblk,errFlag,trblk,lsbofsfn,hrf,msbidxoffset] = nrBCHDecode(softbits,L,lssb,ncellid) также возвращает декодированный и нескремблированный транспортный блок BCH trblk. Дополнительными входными аргументами являются количество возможных блоков сигнала синхронизации/физического широковещательного канала (SS/PBCH). lssbи идентификационный номер ячейки физического уровня, ncellid. Функция также возвращает следующие информационные элементы:

  • lsbofsfn, четыре младших значащих бита (LSB) номера системного кадра

  • hrf, бит половины кадра

  • msbidxoffset, наиболее значащие биты (MSB) смещения индекса

Примеры

свернуть все

Сформировать случайную последовательность двоичных значений, соответствующих транспортному блоку ВСН из 24 битов.

trblk = randi([0 1],24,1,'int8');  

Укажите идентификационный номер ячейки физического уровня как 321, номер системного кадра как 10 и вторую половину кадра.

nid = 321;  
sfn = 10;   
hrf = 1;     

Укажите количество возможных блоков SS/PBCH как 8. При указании количества возможных блоков SS/PBCH как 4 или 8, можно указать смещение поднесущей kssb в качестве входного аргумента для кодера BCH.

lssb = 8;                     
kssb = 18;               

Кодирование транспортного блока BCH с использованием указанных аргументов.

bch = nrBCH(trblk,sfn,hrf,lssb,kssb,nid);

Декодирование кодированного транспортного блока и восстановление информации с использованием полярного списка декодирования длиной 8 битов.

listLen = 8;
[~,errFlag,rxtrblk,rxSFN4lsb,rxHRF,rxKssb] = nrBCHDecode( ...
   double(1-2*bch),listLen,lssb,nid);

Убедитесь, что декодирование не содержит ошибок.

errFlag
errFlag = uint32
    0
isequal(trblk,rxtrblk)
ans = logical
   1

isequal(bi2de(rxSFN4lsb','left-msb'),mod(sfn,16))
ans = logical
   1

[isequal(hrf,rxHRF) isequal(de2bi(floor(kssb/16),1),rxKssb)]
ans = 1x2 logical array

   1   1

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

свернуть все

Мягкие биты приближенного логарифмического отношения правдоподобия (LLR), заданные как вектор столбца с действительным значением 864 на 1.

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

Длина списка полярного декодирования, заданная как степень 2.

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

Количество возможных блоков SS/PBCH в полукадре, указанное как 4, 8, или 64.

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

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

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

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

свернуть все

Декодированный скремблированный транспортный блок BCH, возвращаемый как вектор двоичного столбца 32 на 1.

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

Флаг ошибки для указания того, scrblk содержит ошибку, возвращенную как 0 или 1. Если errFlag является 1, то произошла ошибка.

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

Декодированный и нескремблированный транспортный блок BCH, возвращаемый как вектор двоичного столбца 24 на 1. Продукция trblk является сообщением BCCH-BCH, как определено в TS 38.331 Раздел 6.2.1 [2]. BCCH-BCH-Message содержит главный информационный блок (MIB), определенный в TS 38.331, раздел 6.2.2.

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

Четыре LSB системного номера кадра возвращаются в виде вектора столбца 4 на 1.

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

Бит половины кадра при передаче блоков SS/PBCH, возвращаемый как 0 указывая первую половину кадра или 1 указание второй половины кадра. Для получения дополнительной информации см. TS 38.214 Раздел 4.1 [3].

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

MSB со смещением индекса, возвращаемые в виде скалярного или 3 на 1 вектора столбца.

  • Если lssb является 4 или 8, msbidxoffset - декодированный MSB индекса поднесущей, возвращаемый как скаляр.

  • Если lssb является 64, записи msbidxoffset являются тремя декодированными MSB индекса SSB, возвращаемыми в виде вектора столбца 3 на 1.

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

Вопросы совместимости

развернуть все

В R2020a изменилось поведение