В этом примере показано, как реализовать HARQ Indicator (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 с индексами:
В 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;
lteCRCDecode | lteCRCEncode | lteDLDeprecode | lteDLPrecode | lteDLResourceGrid | lteLayerDemap | lteLayerMap | ltePHICH | ltePHICHIndices | ltePHICHInfo | ltePHICHPRBS | lteSymbolDemodulate | lteSymbolModulate