Сформировать код коэффициента расширения с ортогональной переменной (OVSF) из набора ортогональных кодов
Расширяющие коды
Блок генератора кода OVSF генерирует код OVSF из набора ортогональных кодов. Коды OVSF были впервые введены для 3G систем связи. Коды OVSF используются главным образом для сохранения ортогональности между различными каналами в системе связи.
Коды OVSF определяются как строки матрицы N-на-N, CN, которая определяется рекурсивно следующим образом. Сначала определите C1 = [1]. Далее предположим, что CN определен, и пусть CN (k) обозначает k-ю строку CN. Определить C2N по
CN (N − 1) CN (N − 1) −
Следует отметить, что CN определяется только для N степени 2. Из индукции следует, что ряды CN ортогональны.
Коды OVSF также могут быть рекурсивно определены древовидной структурой, как показано на следующем рисунке.

Если [C] - длина кода 2r на глубине r в дереве, где корень имеет глубину 0, две ветви, ведущие из C, помечены последовательностями [C] и [C -C], которые имеют длину 2r + 1. Коды на глубине r в дереве являются строками матрицы CN, где N = 2r.
Обратите внимание, что два кода OVSF ортогональны тогда и только тогда, когда ни один из них не находится на пути от другого кода к корню. Поскольку коды, назначенные различным пользователям в одной и той же соте, должны быть ортогональными, это ограничивает количество доступных кодов для данной соты. Например, если код, C41 в дереве, назначен пользователю, коды C10, C20, C82, C83 и так далее не могут быть назначены любому другому пользователю в той же самой ячейке.
Код блока OVSF Code Generator задается двумя параметрами в диалоговом окне блока: коэффициент расширения, который является длиной кода, и индекс кода, который должен быть целым числом в диапазоне [0, 1,..., N - 1], где N - коэффициент расширения. Если код появляется на глубине r в предыдущем дереве, коэффициент расширения равен 2r. Индекс Code указывает, как далеко вниз отображается столбец дерева на глубине r, считая от 0 до N - 1. Для CN k на предыдущей диаграмме N - коэффициент расширения, а k - индекс кода.
Код можно восстановить из коэффициента расширения и индекса кода следующим образом. Преобразуйте индекс Code в соответствующее двоичное число, а затем добавьте 0s слева, если необходимо, чтобы результирующая двоичная последовательность x1 x2... xr имеет длину r, где r - логарифмическое основание 2 коэффициента расширения. Эта последовательность описывает путь от корня к коду. Путь принимает верхнюю ветвь от кода на глубине i, если xi = 0, и нижнюю ветвь, если xi = 1.
Для восстановления кода рекурсивно определите последовательность кодов Ci следующим образом. Позвольте C0 быть корнем [1]. Предполагая, что Ci был определен, для i < r определите Ci + 1 по
), если xi = 1
Код CN имеет указанные коэффициент расширения и индекс кода.
Например, чтобы найти код с коэффициентом расширения
16 и индекс кода
6, выполните следующие действия:
Преобразуйте 6 в двоичное число 110.
Добавьте один 0 слева, чтобы получить 0110, который имеет длину 4 = log2 16.
Создайте последовательности Ci в соответствии со следующей таблицей.
| я | xi | Ci |
|---|---|---|
| 0 | C0 = [1] | |
| 1 | 0 | C1 = C0 C0 = [1] [1] |
| 2 | 1 | C2 = C1-C1 = [1 1] [-1 - 1] |
| 3 | 1 | C3 = C2-C2 = [1 1 - 1 - 1] [-1 - 1 1 1] |
| 4 | 0 | C4 = C3 C3 = [1 1 - 1 - 1 - 1 - 1 1 1] [1 1 - 1 - 1 - 1 - 1 1 1] |
Код C4 имеющий коэффициент расширения
16 и индекс кода
6.
Положительное целое число, равное степени 2 и указывающее длину кода.
Целое число в диапазоне [0, 1,..., N - 1], определяющем код, где N - коэффициент расширения.
Время выборки выходных данных, указанное как -1 или положительный скаляр, который представляет время между каждой выборкой выходного сигнала. Если для параметра Sample time установлено значение -1время выборки наследуется от нисходящего потока. Для получения информации о взаимосвязи между временем выборки и выборками на кадр см. раздел
Синхронизация выборки.
Выборки на кадр, указанное как положительное целое число, указывающее количество выборок на кадр в одном канале выходных данных. Для получения информации о взаимосвязи между временем выборки и выборками на кадр см. раздел Синхронизация выборки.
Тип вывода блока может быть указан как int8 или double. По умолчанию блок устанавливает значение double.
Выберите режим моделирования.
Code generationНа первом прогоне модели смоделируйте и создайте код. Если структура блока не изменяется, последующие запуски модели не регенерируют код.
Если режим моделирования Code generation, Системные объекты, соответствующие блокам, принимают максимум девять входов.
Interpreted executionМоделирование модели без создания кода. Этот параметр приводит к более быстрому запуску, но может снизить производительность последующего моделирования.