Генератор последовательности Kasami

Сгенерируйте последовательность Kasami от набора последовательностей Kasami

Библиотека

Подбиблиотека Sequence Generators Источников Коммуникации

Описание

Блок Kasami Sequence Generator генерирует последовательность от набора последовательностей Kasami. Последовательности Kasami являются набором последовательностей, которые имеют хорошие свойства взаимной корреляции.

Этот блок может вывести последовательности, которые отличаются по длине во время симуляции. Для получения дополнительной информации о сигналах переменного размера, смотрите Основы Сигнала Переменного Размера (Simulink).

Последовательности Kasami

Существует два набора последовательностей Kasami: маленький набор и большой набор. Большой набор содержит все последовательности в маленьком наборе. Только маленький набор оптимален в смысле соответствия с нижней границей валлийцев для функций корреляции.

Последовательности Kasami имеют период N = 2n - 1, где n является неотрицательным, даже целочисленным. Позвольте u быть двоичной последовательностью длины N и позволить w быть последовательностью, полученной путем десятикратного уменьшения u 2n/2 +1. Маленький набор последовательностей Kasami задан следующими формулами, в которых T обозначает, что левый оператор смещения, m является параметром сдвига для w, и обозначает сложение по модулю 2.

Маленький Набор Последовательностей Kasami для n Даже

Ks(u,n,m)={um=1uTmwm=0,...,2n/22

Обратите внимание на то, что маленький набор содержит 2n/2 последовательности.

Для mod (n, 4) = 2, большой набор последовательностей Kasami задан можно следующим образом. Позвольте v быть последовательностью, сформированной путем десятикратного уменьшения последовательности u 2n/2 + 1 + 1. Большой набор задан следующей таблицей, в которой k и m являются параметрами сдвига для последовательностей v и w, соответственно.

Большой Набор Последовательностей Kasami для mod (n, 4) = 2

KL(u,n,k,m)={uk=2; m=1vk=1; m=1uTkvk=0,...,2n2; m=1uTmwk=2; m=0,...,2n/22vTmwk=1; m=0,...,2n/22uTkvTmwk=0,...,2n2; m=0,...,2n/22

Последовательности, описанные в первых трех строках предыдущей фигуры, соответствуют Золотым последовательностям для mod (n, 4) = 2. Смотрите страницу с описанием для блока Gold Sequence Generator для описания Золотых последовательностей. Однако последовательности Kasami формируют больший набор, чем Золотые последовательности.

Функции корреляции для последовательностей берут значения

{-t (n),-s (n),-1, s (n)-2, t (n) - 2}

где

t(n)=1+2(n+2)/2n дажеs(n)=12(t(n)+1)

Параметры блоков

Параметр 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

    uTmw

  • Чтобы сгенерировать последовательности от большого набора, для 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

    uTkv

    [-2 m]

    k =-2

    m = 0, 1..., 2n/2 - 2

    uTmw

    [-1 m]

    k =-1

    m = 0..., 2n/2 - 2

    vTmw

    [k m]

    k = 0..., 2n - 2

    m = 0..., 2n/2 - 2

    uTkvTmw

Можно переключить отправную точку последовательности Kasami с параметром Shift, который является целым числом, представляющим длину сдвига.

Можно использовать внешний сигнал сбросить значения внутреннего сдвигового регистра к начальному состоянию путем выбора Reset on nonzero input. Это создает входной порт для внешнего сигнала в блоке Kasami Sequence Generator. Путем сброс блока, внутренний сдвиговый регистр зависит от того, основаны ли его выходной сигнал и сигнал сброса на выборке или основаны на кадре. Смотрите Пример: Сброс Сигнала для примера.

Полиномы для генерации последовательностей Kasami

В следующей таблице перечислены некоторые полиномы, которые можно использовать, чтобы сгенерировать набор Kasami последовательностей.

nNПолиномНабор
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] Маленький

Параметры

Generator polynomial

Вектор символов или бинарный вектор, задающий полином генератора для последовательности u.

Initial states

Бинарный скаляр или вектор - строка из длины равняются степени Generator polynomial, который задает начальные состояния сдвигового регистра, который генерирует последовательность u.

Sequence index

Целое число или вектор, задающий сдвиги последовательностей v и w раньше, генерировали выходную последовательность.

Shift

Целочисленный скаляр, который определяет смещение последовательности Kasami с начального времени.

Output variable-size signals

Выберите это, если вы хотите, чтобы выходные последовательности отличались по длине во время симуляции. Выбор по умолчанию выходные сигналы фиксированной длины.

Maximum output size source

Задайте, как блок задает максимальный выходной размер для сигнала.

  • Когда вы выбираете Dialog parameter, значение, которое вы вводите в параметр Maximum output size, задает максимальный размер вывода. Когда вы делаете этот выбор, входной порт oSiz задает текущий размер выходного сигнала, и блок вывод наследовал шаг расчета от входного сигнала. Входное значение должно быть меньше чем или равно параметру Maximum output size.

  • Когда вы выбираете Inherit from reference port, блок вывод наследовал шаг расчета, максимальный размер и текущий размер от сигнала переменного размера в Касательно входного порта.

Этот параметр только появляется, когда вы выбираете Output variable-size signals. Выбором по умолчанию является Dialog parameter.

Maximum output size

Задайте двухэлементный вектор - строку, обозначающий максимальный выходной размер для блока. Второй элемент вектора должен быть 1. Например, [10 1] дает максимальный размерный выходной сигнал 10 на 1. Этот параметр только появляется, когда вы выбираете Output variable-size signals.

Sample time

Время между каждой выборкой столбца выходного сигнала.

Samples per frame

Количество выборок на кадр в одном канале выходного сигнала.

Примечание

Время между выходными обновлениями равно продукту Samples per frame и Sample time. Например, если Sample time и Samples per frame равняются один, блок выводит выборку каждую секунду. Если Samples per frame увеличен до 10, то вектор 10 на 1 выводится каждые 10 секунд. Это гарантирует, что эквивалентная норма выработки не зависит от параметра Samples per frame.

Reset on nonzero input

Когда выбрано, можно задать входной сигнал, который сбрасывает внутренние сдвиговые регистры к исходным значениям Initial states.

Output data type

Выходной тип блока может быть задан как boolean или double. По умолчанию блок устанавливает это на double.

Пример

Kasami, распространяющийся с двумя пользователями и многопутевой

Эта модель рассматривает 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.

Блоки

Расширенные возможности

Генерация кода C/C++
Генерация кода C и C++ с помощью Simulink® Coder™.

Представлено до R2006a