Сгенерируйте последовательность Kasami от набора последовательностей Kasami
Подбиблиотека Sequence Generators Источников Коммуникации
Блок Kasami Sequence Generator генерирует последовательность от набора последовательностей Kasami. Последовательности Kasami являются набором последовательностей, которые имеют хорошие свойства взаимной корреляции.
Этот блок может вывести последовательности, которые отличаются по длине во время симуляции. Для получения дополнительной информации о сигналах переменного размера, смотрите Основы Сигнала Переменного Размера (Simulink).
Существует два набора последовательностей Kasami: маленький набор и большой набор. Большой набор содержит все последовательности в маленьком наборе. Только маленький набор оптимален в смысле соответствия с нижней границей валлийцев для функций корреляции.
Последовательности Kasami имеют период N = 2n - 1, где n является неотрицательным, даже целочисленным. Позвольте u быть двоичной последовательностью длины N и позволить w быть последовательностью, полученной путем десятикратного уменьшения u 2n/2 +1. Маленький набор последовательностей Kasami задан следующими формулами, в которых T обозначает, что левый оператор смещения, m является параметром сдвига для w, и обозначает сложение по модулю 2.
Маленький Набор Последовательностей Kasami для n Даже
Обратите внимание на то, что маленький набор содержит 2n/2 последовательности.
Для mod (n, 4) = 2, большой набор последовательностей Kasami задан можно следующим образом. Позвольте v быть последовательностью, сформированной путем десятикратного уменьшения последовательности u 2n/2 + 1 + 1. Большой набор задан следующей таблицей, в которой k и m являются параметрами сдвига для последовательностей v и w, соответственно.
Большой Набор Последовательностей Kasami для mod (n, 4) = 2
Последовательности, описанные в первых трех строках предыдущей фигуры, соответствуют Золотым последовательностям для mod (n, 4) = 2. Смотрите страницу с описанием для блока Gold Sequence Generator для описания Золотых последовательностей. Однако последовательности Kasami формируют больший набор, чем Золотые последовательности.
Функции корреляции для последовательностей берут значения
{-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 |
Можно переключить отправную точку последовательности Kasami с параметром Shift, который является целым числом, представляющим длину сдвига.
Можно использовать внешний сигнал сбросить значения внутреннего сдвигового регистра к начальному состоянию путем выбора Reset on nonzero input. Это создает входной порт для внешнего сигнала в блоке Kasami Sequence Generator. Путем сброс блока, внутренний сдвиговый регистр зависит от того, основаны ли его выходной сигнал и сигнал сброса на выборке или основаны на кадре. Смотрите Пример: Сброс Сигнала для примера.
В следующей таблице перечислены некоторые полиномы, которые можно использовать, чтобы сгенерировать набор Kasami последовательностей.
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 раньше, генерировали выходную последовательность.
Целочисленный скаляр, который определяет смещение последовательности Kasami с начального времени.
Выберите это, если вы хотите, чтобы выходные последовательности отличались по длине во время симуляции. Выбор по умолчанию выходные сигналы фиксированной длины.
Задайте, как блок задает максимальный выходной размер для сигнала.
Когда вы выбираете Dialog parameter
, значение, которое вы вводите в параметр Maximum output size, задает максимальный размер вывода. Когда вы делаете этот выбор, входной порт oSiz
задает текущий размер выходного сигнала, и блок вывод наследовал шаг расчета от входного сигнала. Входное значение должно быть меньше чем или равно параметру Maximum output size.
Когда вы выбираете Inherit from reference port
, блок вывод наследовал шаг расчета, максимальный размер и текущий размер от сигнала переменного размера в Касательно входного порта.
Этот параметр только появляется, когда вы выбираете Output variable-size signals. Выбором по умолчанию является Dialog parameter
.
Задайте двухэлементный вектор - строку, обозначающий максимальный выходной размер для блока. Второй элемент вектора должен быть 1. Например, [10 1] дает максимальный размерный выходной сигнал 10 на 1. Этот параметр только появляется, когда вы выбираете Output variable-size signals.
Время между каждой выборкой столбца выходного сигнала.
Количество выборок на кадр в одном канале выходного сигнала.
Время между выходными обновлениями равно продукту Samples per frame и Sample time. Например, если Sample time и Samples per frame равняются один, блок выводит выборку каждую секунду. Если Samples per frame увеличен до 10, то вектор 10 на 1 выводится каждые 10 секунд. Это гарантирует, что эквивалентная норма выработки не зависит от параметра Samples per frame.
Когда выбрано, можно задать входной сигнал, который сбрасывает внутренние сдвиговые регистры к исходным значениям Initial states.
Выходной тип блока может быть задан как boolean
или double
. По умолчанию блок устанавливает это на double
.
Эта модель рассматривает Kasami, распространяющийся для объединенной 2D пользовательской передачи в лучевой среде.
Откройте модель здесь: kasami_sequence_block_example
modelname = 'kasami_sequence_block_example';
open_system(modelname);
sim(modelname);
Вы видите очень хорошее пользовательское разделение по разнообразным путям с усилениями объединения. Это может быть приписано "хорошим" свойствам корреляции последовательностей Kasami, которые обеспечивают баланс между идеальными свойствами взаимной корреляции ортогональных кодов и идеальными свойствами автокорреляции последовательностей PN. Смотрите соответствующие примеры на Генераторе кода Адамара и страницах с описанием Генератора Последовательности PN.
Чтобы экспериментировать с этой моделью далее, попытайтесь выбрать другие задержки пути, чтобы видеть, как производительность отличается для того же кода. Также попробуйте различные коды теми же задержками.
close_system(modelname, 0);
[1] Петерсон и Уэлдон, коды с коррекцией ошибок, 2-й Эд., нажатие MIT, Кембридж, MA, 1972.
[2] Proakis, Джон Г., Цифровая связь, Третий выпуск, Нью-Йорк, Макгроу Хилл, 1995.
[3] Sarwate, D. V. и Персли, M.B., "Свойства взаимной корреляции Псевдослучайных и Связанных Последовательностей", Proc. IEEE, Издание 68, № 5, май 1980, стр 583-619.