В этом примере показано, как реализовать 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