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