Сгенерируйте последовательность Касами из набора последовательностей Касами
Сублибрария генераторов последовательностей источников Comm
Блок Kasami Sequence Generator генерирует последовательность из набора последовательностей Kasami. Последовательности Касами являются набором последовательностей, которые имеют хорошие перекрестные корреляционные свойства.
Этот блок может выводить последовательности, которые варьируются в длине во время симуляции. Для получения дополнительной информации о сигналах переменного размера смотрите Основы сигнала переменного размера (Simulink).
Существует два набора последовательностей Касами: малый набор и большой набор. Большой набор содержит все последовательности в малом наборе. Только малый набор оптимален в смысле соответствия нижней границы Уэлча для корреляционных функций.
Последовательности Kasami имеют период N = 2n - 1, где n является неотрицательным, четным целым числом. Предположим, что u - двоичная последовательность длины N, и w - последовательность, полученная путем децимирования u на 2n/2 +1. Малое множество последовательностей Касами определяется следующими формулами, в которых T обозначает оператор левого сдвига, m является параметром сдвига для w, и обозначает сложение по модулю 2.
Малый набор последовательностей Касами для n четных
Обратите внимание, что малый набор содержит 2n/2 последовательности.
Для mod (n, 4) = 2 большой набор последовательностей Касами определяется следующим образом. Предположим v - последовательность, образованная децимированием последовательности u на 2n/2 + 1+ 1. Большое множество определяется следующей таблицей, в которой k и m являются параметрами сдвига для последовательностей v и w, соответственно.
Большой набор последовательностей Касами для mod (n, 4) = 2
Последовательности, описанные в первых трех строках предыдущего рисунка, соответствуют последовательностям Голда для mod (n, 4) = 2. Смотрите страницу с описанием для блока Gold Sequence Generator для описания последовательностей Голда. Однако последовательности Касами образуют больший набор, чем последовательности Голда.
Функции корреляции для последовательностей берут значения
{-t (n), -s (n), -1, s (n) -2, t (n) - 2}
где
Параметр Generator polynomial задает полином генератора, который определяет связи в регистре сдвига, который генерирует последовательность u. Можно задать параметр Generator polynomial, используя следующие форматы:
Полиномиальный вектор символов, который включает в себя число 1
, для примера, 'z^4 + z + 1'
.
Вектор, который перечисляет коэффициенты полинома в порядке убывания степеней. Первая и последняя записи должны быть равны 1. Обратите внимание, что длина этого вектора на один больше, чем степень полинома генератора.
Вектор, содержащий экспоненты z для ненулевых членов полинома в порядке убывания степеней. Последняя запись должна быть 0
.
Для примера, 'z^8 + z^2 + 1'
, [1 0 0 0 0 0 1 0 1]
, и [8 2 0]
представляют тот же полином, p (z) = z8+ z2+1.
Параметр Initial states задает начальные состояния регистра сдвига, который генерирует последовательность u. Initial States является двоичным скаляром или вектором-строкой длины, равной степени Generator polynomial. Если вы выбираете бинарный скаляр, блок расширяет скаляр до вектора-строки длины, равной степени Generator polynomial, все значения которой равны скаляру.
Параметр Sequence index задает сдвиги последовательностей v и w, используемых для генерации последовательности выхода. Можно задать параметр любым из двух способов:
Чтобы сгенерировать последовательности из малого множества, для n является четным, можно задать Sequence index как целое число m. Область значений m равна [-1,..., 2n/2 - 2]. Следующая таблица описывает выходные последовательности, соответствующие Sequence index
m:
Индекс последовательности | Область значений индексов | Выходная последовательность |
---|---|---|
-1
| m = -1 | u |
m
| m = 0,..., 2n/2 - 2 |
Чтобы сгенерировать последовательности из большого множества, для mod (n, 4) = 2, где n - степень Generator polynomial, можно задать Sequence index как целочисленный вектор [k m]. В этом случае выход последовательность из большого множества. Диапазон для k равен [-2,..., 2n - 2], а область значений для m равна [-1,..., 2n/2 - 2]. Следующая таблица описывает выходные последовательности, соответствующие Sequence index [k m]:
Индекс последовательности [k m] | Область значений индексов | Выходная последовательность |
---|---|---|
[-2 -1]
| k = -2, m = -1 | u |
[-1 -1]
| k = -1, m = -1 | v |
[k -1]
| k = 0, 1,..., 2n - 2 m = -1 | |
[-2 m]
| k = -2 m = 0, 1,..., 2n/2 - 2 | |
| k = -1 m = 0,..., 2n/2 - 2 | |
[k m]
| k = 0,..., 2n - 2 m = 0,..., 2n/2 - 2 |
Можно сдвинуть начальную точку последовательности Касами с помощью параметра Shift, который является целым числом, представляющим длину сдвига.
Можно использовать внешний сигнал, чтобы сбросить значения внутреннего регистра сдвига в начальное состояние путем выбора Reset on nonzero input. Это создает порт входа для внешнего сигнала в блоке Kasami Sequence Generator. Способ сброса блока внутреннего регистра сдвига зависит от того, основаны ли его выходной сигнал и сигнал сброса на дискретизации или на кадре. См. пример Сброса поведения.
В следующей таблице перечислены некоторые полиномы, которые можно использовать для генерации набора последовательностей Касами.
n | N | Полином | Набор |
---|---|---|---|
4 | 15 | [4 1 0] | Маленький |
6 | 63 | [6 1 0] | Большой |
8 | 255 | [8 4 3 2 0] | Маленький |
10 | 1023 | [10 3 0] | Большой |
12 | 4095 | [12 6 4 1 0] | Маленький |
Вектор символов или двоичный вектор, задающий полином генератора для последовательности u.
Двоичный скаляр или вектор-строка длины, равная степени Generator polynomial, которая задает начальные состояния регистра сдвига, который генерирует последовательность u.
Целое число или вектор, задающий сдвиги последовательностей v и w, используемых для генерации выхода последовательности.
Целочисленный скаляр, который определяет смещение последовательности Касами от начального времени.
Выберите это, если необходимо, чтобы выходные последовательности изменялись в длине во время симуляции. Выбор по умолчанию выводит сигналы фиксированной длины.
Задайте, как блок определяет максимальный выходной размер для сигнала.
Когда вы выбираете Dialog parameter
, значение, которое вы вводите в параметре Maximum output size, задает максимальный размер выхода. Когда вы делаете этот выбор, oSiz
входной порт задает текущий размер выходного сигнала, и выход блока наследует шаг расчета от входного сигнала. Входное значение должно быть меньше или равно параметру Maximum output size.
Когда вы выбираете Inherit from reference port
, выход блока наследует шаг расчета, максимальный размер и размер тока от сигнала переменного размера в входном порту Ref.
Этот параметр появляется только при выборе Output variable-size signals. Выбор по умолчанию Dialog parameter
.
Задайте двухэлементный вектор-строку, обозначающее максимальный размер выхода для блока. Второй элемент вектора должен быть 1. Для примера [10 1] выдает выход сигнал максимального размера 10 на 1. Этот параметр появляется только при выборе Output variable-size signals.
Вывод шага расчета, заданный как -1
или положительная скалярная величина, которая представляет время между каждой выборкой сигнала выхода. Если для Sample time задано значение -1
, шаг расчета наследуется от нисходящего потока. Для получения информации о связи между Sample time и Samples per frame, смотрите
Sample Timing.
Выборки на систему координат, заданные как положительное целое число, указывающее количество отсчетов на систему координат в одном канале выходных данных. Для получения информации о связи между Sample time и Samples per frame, смотрите Sample Timing.
При выборе можно задать входной сигнал, который сбрасывает внутренние регистры сдвига к исходным значениям Initial states.
Выходной тип блока может быть задан как boolean
или double
. По умолчанию блок устанавливает это на double
.
Эта модель моделирует расширение последовательности Касами для двух пользователей в окружении передачи. Это аналогично окружению мобильного канала, где сигналы принимаются по нескольким путям. Каждый путь может иметь различные амплитуды и задержки. Приемник объединяет независимые пути когерентно, используя прием с разнесением для реализации коэффициентов усиления от принятых многолучевых передач. Смоделированная система не моделирует эффекты затухания, и приемник получает идеальные знания о количестве путей и их соответствующих задержках.
Модель использует случайные двоичные данные, которые модулируются BPSK (реально), расширяются последовательностями Kasami, а затем передаются по многолучевому каналу AWGN. Приемник состоит из устройства сжатия, устройства объединения разнесенных данных и демодулятора BPSK.
Используя те же данные передачи, модель вычисляет эффективность для передач с двумя пользователями через идентично сконфигурированные многолучевые каналы AWGN.
Вычисленный BER указывает, что распространение данных передачи с использованием последовательностей Kasami показывает низкую перекрестную корреляцию. Последовательности Kasami обеспечивают баланс между идеальными перекрестными корреляционными свойствами ортогональных кодов и идеальными автокорреляционными свойствами псевдошумовых последовательностей.
Чтобы экспериментировать дальше, откройте модель. Измените настройки, чтобы увидеть, как изменяется эффективность для различных задержек пути или с различными настройками генератора последовательности Kasami для отдельных пользователей.
[1] Peterson and Weldon, Error Correcting Codes, 2nd Ed., MIT Press, Cambridge, MA, 1972.
[2] Proakis, John G., Digital Communications, Third Edition, New York, McGraw Hill, 1995.
[3] Sarwate, D. V. and Pursley, M.B., «Crosscorrelation Properties of pseudorandom and Related Sequences», Proc. IEEE, Vol. 68, No. 5, May 1980, pp. 583-619.