Этот пример показывает, как реализовать Индикатор HARQ (HI) и физический канал HI (PHICH). Вы создаете цепочку обработки кодирования гибридных значений индикатора, создаете PHICH и сопоставляете его с сеткой ресурса.
Настройте настройки всей ячейки. Создайте структуру и задайте настройки всей ячейки как ее поля.
enb.NDLRB = 9; enb.CyclicPrefix = 'Normal'; enb.PHICHDuration = 'Normal'; enb.Ng = 'Sixth'; enb.CellRefP = 4; enb.NCellID = 1; enb.NSubframe = 0; enb.DuplexMode = 'FDD';
Многие функции, используемые в этом примере, требуют подмножества предыдущих заданных настроек.
Используйте ltePHICHInfo
, чтобы сгенерировать информацию о ресурсе PHICH.
phichInfo = ltePHICHInfo(enb);
Функция возвращает phichInfo
, структуру, содержащую соответствующие данные, требуемые задавать наборы PHICH. Элементы и значения структуры:
Сгенерируйте набор Индикатора HARQ (HI). Набор HI состоит из значения индикатора HARQ, 1 для ACK и 0 для NACK и индексной пары PHICH, которая содержит индекс группы PHICH, , и ортогональный индекс последовательности, , для PHICH, содержащего HI. Значения и может быть определен с помощью информации о размерности ресурса PHICH, возвращенной ltePHICHInfo
. Количество групп определяет приемлемые значения индекса группы PHICH, и количество последовательностей определяет приемлемые значения индексов последовательности.
HISet = [ [0 0 1]; [0 1 0]; [0 4 0]; [0 7 1]; ];
В этом примере вы создаете одну группу PHICH, содержащую четыре PHICHs с индексами:
В LTE Toolbox™ матрица набора HI используется, чтобы задать HI и индексную пару PHICH для каждого HI в подкадре. Матрица набора HI задает один PHICH с точки зрения .
Сгенерируйте символы комплекса PHICH. Вы генерируете их от eNodeB настройки и матрицы индикатора HARQ. Вызовите функцию ltePHICH
, чтобы выполнить кодирование канала, модуляцию, скремблирование, отображение слоя, предварительное кодирование и объединение групп PHICH.
phichSymbols = ltePHICH(enb,HISet); size(phichSymbols)
ans = 1×2
12 4
Итоговый вектор, phichSymbols
, имеет 12 строк и 4 столбца. Каждый столбец содержит комплексные символы, которые будут сопоставлены с сетками ресурса для каждого из четырех портов антенны.
Используйте ltePHICHIndices
, чтобы сгенерировать PHICH отображение индексов. Эти индексы отображения требуются, чтобы сопоставлять комплексные символы PHICH с сеткой ресурса подкадра.
phichIndices = ltePHICHIndices(enb)
phichIndices = 12x4 uint32 matrix
13 1525 3037 4549
15 1527 3039 4551
16 1528 3040 4552
18 1530 3042 4554
43 1555 3067 4579
45 1557 3069 4581
46 1558 3070 4582
48 1560 3072 4584
79 1591 3103 4615
81 1593 3105 4617
⋮
size(phichIndices)
ans = 1×2
12 4
Эта функция возвращает матрицу с 4 столбцами, одним столбцом для каждого порта антенны. Строки содержат индексы в линейной форме для отображения символов PHICH к сетке ресурса подкадра.
Используйте lteDLResourceGrid
, чтобы сгенерировать сетку ресурса подкадра. Эта функция создает пустую сетку ресурса для одного подкадра.
subframe = lteDLResourceGrid(enb); size(subframe)
ans = 1×3
108 14 4
Сопоставьте комплексные символы PHICH с сеткой ресурса путем присвоения phichSymbols
местоположениям phichIndices
в subframe
.
subframe(phichIndices) = phichSymbols;
lteCRCDecode
| lteCRCEncode
| lteDLDeprecode
| lteDLPrecode
| lteDLResourceGrid
| lteLayerDemap
| lteLayerMap
| ltePHICH
| ltePHICHIndices
| ltePHICHInfo
| ltePHICHPRBS
| lteSymbolDemodulate
| lteSymbolModulate