Kasami Sequence Generator

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

Библиотека

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

  • Kasami Sequence Generator block

Описание

Блок 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

Выведите шаг расчета в виде -1 или положительная скалярная величина, которая представляет время между каждой выборкой выходного сигнала. Если Sample time установлен в -1, шаг расчета наследован от нисходящего потока. Для получения информации об отношении между Sample time и Samples per frame, смотрите Демонстрационную Синхронизацию.

Samples per frame

Выборки на систему координат в виде положительного целого числа, указывающего на количество выборок на систему координат в одном канале выходных данных. Для получения информации об отношении между Sample time и 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 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.

Блоки

Больше о

развернуть все

Вопросы совместимости

развернуть все

Поведение изменяется в R2020a

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

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

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