lteNPDCCHDecode

Декодируйте символы NPDCCH

Описание

[cw,stateout,symbols] = lteNPDCCHDecode(enb,chs,sym) декодирует sym, символы физического нисходящего канала NB-IoT (NPDCCH) для настройки всей ячейки enb и специфическую для канала структуру строения chs. Канальное декодирование содержит амортизацию, демпфирование слоя, мягкую демодуляцию, дескремблирование и восстановление кодового слова. Декодирование инвертирует процесс кодирования канала NPDCCH, описанный в 3GPP TS 36.211, раздел 10.2.5 [1]. Функция возвращает кодовое слово cw мягких бит, состояние декодера stateout для приема bundle (полного набора повторных передач одной управляющей информации нисходящей линии связи) и принятых символов созвездия 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, заданные как N матрица RE-by N RxAnts с комплексным значением, где:

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

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

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

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

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

Оценка канала, заданная как N RE-by N RxAnts-by N NBRefP комплексно-значимый массив, где:

  • N RE является количеством символов QPSK на антенну и на подкадр.

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

  • N NBRefP является количеством портов антенны 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Неотрицательное целое число

Номер подкадра, либо в точке инициализации скремблирующей последовательности, либо в точке повторной инициализации последовательности, выполненной в каждом четвертом подкадре 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 вход. The stateout выход представляет состояние выходного декодера первой передачи пучка.

  2. Вызовите lteNPDCCHDecode еще раз выполните функцию и задайте statein вход как stateout выход, возвращенный предыдущим вызовом функции.

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

Ссылки

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

Введенный в R2019b