В этом примере показано, как реализовать Индикатор 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';
Многие функции, используемые в этом примере, требуют подмножества предыдущих заданных настроек.
Чтобы сгенерировать информацию о ресурсе PHICH, используйте ltePHICHInfo
функция.
phichInfo = ltePHICHInfo(enb);
Функция возвращает phichInfo
, структура, содержащая соответствующие данные, требуемые задавать наборы PHICH. Элементы и значения структуры:
Сгенерируйте набор Индикатора HARQ (HI). Набор HI состоит из значения индикатора HARQ, 1 для ACK и 0 для NACK и пары индекса PHICH, которая содержит индекс группы PHICH, , и ортогональный индекс последовательности, , для PHICH, содержащего HI. Значения и может быть определен с помощью информации о размерности ресурса PHICH, возвращенной theltePHICHInfo
функция. Количество групп определяет приемлемые значения индекса группы PHICH, и количество последовательностей определяет приемлемые значения индексов последовательности.
HISet = [[0 0 1];[0 1 0];[0 4 0];[0 7 1]];
В этом примере вы создаете одну группу PHICH, содержащую четыре PHICHs с индексами:
В LTE Toolbox™ матрица набора HI используется, чтобы задать HI и пару индекса PHICH для каждого HI в подкадре. Матрица набора HI задает один PHICH в терминах , , и индикатор HARQ.
Сгенерируйте символы комплекса PHICH от настройки настроек всей ячейки и матрицы индикатора HARQ. Чтобы выполнить необходимое кодирование канала, модуляцию, скремблирование, отображение слоя, предварительное кодирование и объединение групп PHICH, вызывают ltePHICH
функция.
phichSymbols = ltePHICH(enb,HISet); disp(phichSymbols)
0.0000 + 0.0000i 0.0000 + 0.0000i -2.0000 + 0.0000i 0.0000 + 0.0000i 2.0000 + 0.0000i 0.0000 + 0.0000i 0.0000 + 0.0000i 0.0000 + 0.0000i 1.0000 - 1.0000i 0.0000 + 0.0000i 1.0000 - 1.0000i 0.0000 + 0.0000i -1.0000 - 1.0000i 0.0000 + 0.0000i 1.0000 + 1.0000i 0.0000 + 0.0000i 0.0000 + 0.0000i 0.0000 + 0.0000i 0.0000 + 0.0000i 2.0000 + 0.0000i 0.0000 + 0.0000i -2.0000 + 0.0000i 0.0000 + 0.0000i 0.0000 + 0.0000i 0.0000 + 0.0000i -1.0000 + 1.0000i 0.0000 + 0.0000i 1.0000 - 1.0000i 0.0000 + 0.0000i -1.0000 - 1.0000i 0.0000 + 0.0000i -1.0000 - 1.0000i 0.0000 + 0.0000i 0.0000 + 0.0000i -2.0000 + 0.0000i 0.0000 + 0.0000i 2.0000 + 0.0000i 0.0000 + 0.0000i 0.0000 + 0.0000i 0.0000 + 0.0000i -1.0000 + 1.0000i 0.0000 + 0.0000i 1.0000 - 1.0000i 0.0000 + 0.0000i -1.0000 - 1.0000i 0.0000 + 0.0000i -1.0000 - 1.0000i 0.0000 + 0.0000i
Итоговый вектор, phichSymbols
, имеет 12 строк и четыре столбца. Каждый столбец содержит комплексные символы, которые будут сопоставлены с сетками ресурса для каждого из четырех портов антенны.
Чтобы сгенерировать PHICH отображение индексов, используйте ltePHICHIndices
функция. Эти индексы отображения требуются, чтобы сопоставлять комплексные символы PHICH с сеткой ресурса подкадра.
phichIndices = ltePHICHIndices(enb); disp(phichIndices)
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 82 1594 3106 4618 84 1596 3108 4620
Эта функция возвращает матрицу с четырьмя столбцами, один для каждого порта антенны. Строки содержат индексы в линейной форме для отображения символов PHICH к сетке ресурса подкадра.
Чтобы сгенерировать сетку ресурса подкадра, используйте lteDLResourceGrid
функция. Эта функция создает пустую сетку ресурса для одного подкадра.
subframe = lteDLResourceGrid(enb); disp(size(subframe))
108 14 4
Сопоставьте комплексные символы PHICH с сеткой ресурса путем присвоения phichSymbols
к phichIndices
местоположения в subframe
.
subframe(phichIndices) = phichSymbols;
ltePHICH
| ltePHICHInfo
| ltePHICHIndices
| ltePHICHPRBS
| lteDLResourceGrid
| lteLayerMap
| lteLayerDemap
| lteDLPrecode
| lteDLDeprecode
| lteCRCEncode
| lteCRCDecode
| lteSymbolModulate
| lteSymbolDemodulate