В этом примере показано, как реализовать индикатор 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, возвращаемойltePHICHInfo функция. Количество групп определяет приемлемые значения индекса группы PHICH, а количество последовательностей определяет приемлемые значения индексов последовательностей.
HISet = [[0 0 1];[0 1 0];[0 4 0];[0 7 1]];
В этом примере создается одна группа PHICH, содержащая четыре PHICH с индексами:
В Toolbox™ LTE матрица набора 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;
lteCRCDecode | lteCRCEncode | lteDLDeprecode | lteDLPrecode | lteDLResourceGrid | lteLayerDemap | lteLayerMap | ltePHICH | ltePHICHIndices | ltePHICHInfo | ltePHICHPRBS | lteSymbolDemodulate | lteSymbolModulate