Сгенерируйте код ортогонального переменного фактора распространения (OVSF) от набора ортогональных кодов
Распространение кодов
Блок OVSF Code Generator генерирует код OVSF от набора ортогональных кодов. Коды OVSF были сначала введены для систем связи 3G. Коды OVSF, в основном, используются, чтобы сохранить ортогональность между различными каналами в системе связи.
Коды OVSF заданы как строки N на n матрицы, CN, который задан рекурсивно можно следующим образом. Во-первых, задайте C1 = [1]. Затем примите, что CN задают и позволяют, CN (k) обозначают k-ую строку CN. Задайте C2N
Обратите внимание на то, что CN только задан для N степень 2. Это следует индукцией, что строки CN являются ортогональными.
Коды OVSF могут также быть заданы рекурсивно древовидной структурой как показано в следующем рисунке.
Если [C] является разрядностью кода 2r на глубине r в дереве, где корень имеет глубину 0, две ветви, выводящие C, помечены последовательностями [C C] и [C-C], которые имеют длину 2r+1. Коды на глубине r в дереве являются строками матричного CN, где N = 2r.
Обратите внимание на то, что два кода OVSF являются ортогональными, если и только если никакой код не находится на пути от другого кода до корня. Поскольку коды, присвоенные различным пользователям в той же ячейке, должны быть ортогональными, это ограничивает количество доступных кодов для данной ячейки. Например, если код C41 в дереве присвоен пользователю, коды C10, C20, C82, C83, и так далее, не могут быть присвоены никакому другому пользователю в той же ячейке.
Вы задаете код блок OVSF Code Generator выходные параметры двумя параметрами в диалоговом окне блока: Spreading factor, который является длиной кода и Code index, который должен быть целым числом в области значений [0, 1..., N - 1], где N является распространяющимся фактором. Если код появляется на глубине r в предыдущем дереве, Spreading factor 2r. Code index задает, как далеко вниз по колонке дерева на глубине r код появляется, рассчитывая от 0 до N - 1. Для CN, k в предыдущей схеме, N является Spreading factor, и k является Code index.
Можно восстановить код с Spreading factor и Code index можно следующим образом. Преобразуйте Code index в соответствующее двоичное число, и затем добавьте 0s налево, при необходимости, так, чтобы получившаяся двоичная последовательность x1 x2 ... xr имела длину r, где r является логарифмом основой 2 из Spreading factor. Эта последовательность описывает путь от корня до кода. Путь берет верхнюю ветвь из кода на глубине i если кси = 0 и более низкую ветвь если кси = 1.
Чтобы восстановить код, рекурсивно задайте последовательность кодов Ci для можно следующим образом. Позвольте C0 быть корнем [1]. Предположение, что Ci был задан, поскольку i <r, задает Ci+1
Код CN имеет заданный Spreading factor и Code index.
Например, чтобы найти код с Spreading factor
16
и Code index
6
, сделайте следующее:
Преобразуйте 6 в двоичное число 110.
Добавьте один 0 налево, чтобы получить 0110, который имеет длину 4 = log2 16.
Создайте последовательности Ci согласно следующей таблице.
i | \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 имеет Spreading factor
16
и Code index
6
.
Положительное целое число, которое является степенью 2, задавая длину кода.
Целое число в области значений [0, 1..., N - 1] определение кода, где N является Spreading factor.
Выведите шаг расчета в виде -1
или положительная скалярная величина, которая представляет время между каждой выборкой выходного сигнала. Если Sample time установлен в -1
, шаг расчета наследован от нисходящего потока. Для получения информации об отношении между Sample time и Samples per frame, смотрите
Демонстрационную Синхронизацию.
Выборки на систему координат в виде положительного целого числа, указывающего на количество выборок на систему координат в одном канале выходных данных. Для получения информации об отношении между Sample time и Samples per frame, смотрите Демонстрационную Синхронизацию.
Выходной тип блока может быть задан как int8
или double
. По умолчанию блок устанавливает это на double
.
Выберите режим симуляции.
Code generation
На первом запуске модели симулируйте и сгенерируйте код. Если структура блока не изменяется, последующие запуски модели не регенерируют код.
Если режимом симуляции является Code generation
, Системные объекты, соответствующие блокам, принимают максимум девяти входных параметров.
Interpreted execution
Симулируйте модель, не генерируя код. Эта опция приводит к, быстрее запускают времена, но может замедлить последующую производительность симуляции.