Сгенерируйте последовательность 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.
Выведите шаг расчета в виде -1
или положительная скалярная величина, которая представляет время между каждой выборкой выходного сигнала. Если Sample time установлен в -1
, шаг расчета наследован от нисходящего потока. Для получения информации об отношении между Sample time и Samples per frame, смотрите
Демонстрационную Синхронизацию.
Выборки на систему координат в виде положительного целого числа, указывающего на количество выборок на систему координат в одном канале выходных данных. Для получения информации об отношении между Sample time и 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 Sequence Generator и Hadamard Code Generator.
Чтобы экспериментировать с этой моделью далее, попытайтесь выбрать другие задержки пути, чтобы видеть, как производительность варьируется для того же кода. Также попробуйте различные коды теми же задержками.
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.