exponenta event banner

lteNPDCCHDecode

Декодирование символов NPDCCH

Описание

[cw,stateout,symbols] = lteNPDCCHDecode(enb,chs,sym) расшифровывает sym, символы NB-IoT физического канала управления нисходящей линии связи (NPDCCH), для настроек на уровне соты enb и специфичная для канала структура конфигурации chs. Канальное декодирование включает в себя устаревшее кодирование, преобразование уровня, мягкую демодуляцию, дескремблирование и восстановление кодового слова. Расшифровка инвертирует процесс кодирования канала NPDCCH, описанный в 3GPP раздел 10.2.5 TS 36.211 [1]. Функция возвращает кодовое слово cw мягких битов, состояние декодера stateout для приема пучка (полный набор повторных передач одной управляющей информации нисходящей линии связи) и принятых символов созвездия symbols.

пример

[___] = lteNPDCCHDecode(enb,chs,sym,statein) декодирует символы NPDCCH для начального состояния декодера statein.

[___] = lteNPDCCHDecode(enb,chs,sym,hest,noiseest) декодирует символы NPDCCH для оценки канала hest и оценка шума noiseest.

[___] = lteNPDCCHDecode(enb,chs,sym,hest,noiseest,statein) декодирует символы NPDCCH для оценки канала, оценки шума и начального состояния декодера.

Примеры

свернуть все

Формирование и прием подкадра символов NPDCCH по подкадрам для пучка из 10 подкадров.

Определение настроек для всей соты и структур параметров конфигурации передачи канала enb и chs.

enb.NNCellID = 0;
enb.NBRefP = 1;
chs.NRep = 10;

Установите длину выходного кодового слова в 320 и сформируйте биты кодового слова. Укажите состояние кодера и декодера как пустое в начале пакета.

cwLen = 320;
cw = ones(cwLen,1); % Codeword bits
estate = []; 
dstate = []; 

Создайте символы NPDCCH для каждого из 10 подкадров и затем декодируйте их.

for nsf = 0:chs.NRep-1
       enb.NSubframe = nsf;
       [sym,estate] = lteNPDCCH(enb,chs,cw,estate);
       [rxcw,dstate] = lteNPDCCHDecode(enb,chs,sym,dstate);
end

Значение поля CWSFCount в структуре dstate указывает, что подкадр NPDCCH был принят десять раз.

dstate.EndOfTx
ans = logical
   1

dstate.CWSFCount
ans = 10

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

свернуть все

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

ИмяОбязательно или необязательноЦенностиОписаниеТипы данных
NNCellIDНеобходимыйНеотрицательное целое числоИдентификация ячеек узкополосного физического уровня double
NBRefPНеобходимый1, 2Количество антенных портов узкополосного опорного сигнала (NRS).double
NSubframeНеобходимыйНеотрицательное целое числоНомер подкадраdouble

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

Конфигурация передачи канала, заданная как структура, содержащая эти поля.

ИмяОбязательно или необязательноЦенностиОписаниеТипы данных
NRepНеобходимыйНеотрицательное целое числоКоличество повторенийdouble
CSIДополнительный'On' (по умолчанию), 'Off'Информация о состоянии канала (CSI). Чтобы масштабировать мягкие биты по CSI во время процесса выравнивания, укажите это поле как 'On'. В противном случае укажите это поле как 'Off'.char, string

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

Модулированные символы NPDCCH, указанные как матрица комплексных значений NRE-by-NRxAnts, где:

  • NRE - количество символов квадратурной фазовой манипуляции (QPSK) на антенну и на подкадр, назначенный каналу NPDCCH.

  • NRxAnts - количество приемных антенн.

Типы данных: double
Поддержка комплексного номера: Да

Начальное состояние кодера для передачи пучка, определенного как структура, содержащая поля, перечисленные в stateout выход. В начале передачи жгута установить statein в пустой. lteNPDCCHDecode функция управляет состоянием во время последующих вызовов для передач связки и автоматически сбрасывает его в конце связки.

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

Оценка канала, заданная как массив комплексных значений NRE-by-NRxAnts-by-NNBRefP, где:

  • NRE - количество символов QPSK на антенну и подкадр.

  • NRxAnts - количество приемных антенн.

  • NNBRefP - количество антенных портов NRS, указанное в NBRefP области enb вход.

lteNPDCCHDecode функция предполагает, что эта оценка использует NRS.

Типы данных: double
Поддержка комплексного номера: Да

Оценка шума спектральной плотности мощности шума на элемент ресурса в принятом подкадре, заданная как числовой скаляр. Эта оценка представлена lteDLChannelEstimate функция.

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

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

свернуть все

Кодовое слово мягких битов, возвращаемое в виде вектора числового столбца.

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

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

ИмяЦенностиОписаниеТипы данных
SubframeIdx

0 (по умолчанию),

целое число в интервале [0, chs. NRep – 1]

Индекс подкадра в пучке в форме на основе нуля. lteNPDCCHDecode функция возвращает это поле как SubframeIdx области statein ввод увеличен на единицу. Когда входное значение SubframeIdx в statein достигает максимального значения, функция возвращает это поле как 0. Если входные данные отсутствуют в statein, входным значением по умолчанию является 0. Значение 0 указывает, что передача достигла конца пучка, который также указывается функцией путем установки EndOfTx поле в 1 (true).double
InitNSubframeНеотрицательное целое число

Номер подкадра, либо в точке инициализации скремблирующей последовательности, либо в точке повторной инициализации последовательности, выполняемой в каждом 4-м подкадре NPDCCH. Когда обрабатываемый подкадр находится в точке инициализации или повторной инициализации, это поле равно mod(enb.Nsubframe,10). В противном случае он равен входу в statein. При вводе в statein не предоставляется, InitNSubframe равно mod(enb.NSubframe,10).

double
CWBufferЧисловой вектор столбцаБуфер для хранения битов с мягким объединением логарифмического отношения правдоподобия (LLR) после дескремблирования кодового слова. Длина этого поля равна длине кодового слова, cw. В начале пучка lteNPDCCHDecode функция сбрасывает это поле.double
CWSFCount

0 (по умолчанию),

неотрицательное целое число

Счетчик повторений, указывающий, сколько повторений cw CWBuffer поле восстановлено. В начале пучка lteNPDCCHDecode функция сбрасывает это поле.double
EndOfCWЛогичный 1 (true) или 0 (false)Индикатор поступления кодового слова. lteNPDCCHDecode функция возвращает это поле как 1 (true), когда принято все кодовое слово, и CWSFCount поле не менее 1. В начале пучка lteNPDCCHDecode функция сбрасывает это поле.logical
EndOfTxЛогичный 1 (true) или 0 (false)Конец индикатора пучка. lteNPDCCHDecode функция возвращает это поле как 1 (true), когда передача достигает конца пучка. В противном случае lteNPDCCHDecode функция возвращает это поле как 0 (false). В начале пучка lteNPDCCHDecode функция сбрасывает это поле.logical

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

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

Типы данных: double
Поддержка комплексного номера: Да

Совет

Чтобы использовать эту функцию для передачи пучка, выполните следующие действия:

  1. Позвоните в lteNPDCCHDecode и укажите начальное состояние кодировщика с помощью statein вход. stateout выходной сигнал представляет состояние выходного декодера первой передачи пучка.

  2. Позвоните в lteNPDCCHDecode снова и укажите statein ввод в качестве stateout вывод, возвращенный предыдущим вызовом функции.

  3. Повторите шаг 2 до lteNPDCCHDecode функция возвращает EndOfTx области stateout вывод в виде 1 (true), указывая конец пучка. lteNPDCCHDecode автоматически сбрасывает состояние в конце передачи пучка.

Ссылки

[1] 3GPP TS 36.211. «Физические каналы и модуляция». Проект партнерства 3-го поколения; техническая спецификация на сеть радиодоступа группы; Усовершенствованный универсальный наземный радиодоступа (E-UTRA). URL: https://www.3gpp.org.

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