comm.KasamiSequence

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

Описание

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

Чтобы сгенерировать последовательность Касами:

  1. Определите и настройте объект последовательности Касами. См. «Конструкция».

  2. Функции step сгенерировать последовательность Касами согласно свойствам comm.KasamiSequence. Поведение step характерен для каждого объекта в тулбоксе.

Примечание

Начиная с R2016b, вместо использования step метод для выполнения операции, заданной Системной object™, можно вызвать объект с аргументами, как если бы это была функция. Для примера, y = step(obj) и y = obj() выполнять эквивалентные операции.

Конструкция

H = comm.KasamiSequence создает объект KasamiSequence System, H. Этот объект генерирует последовательность Касами.

H = comm.KasamiSequence(Name,Value) создает объект генератора последовательности Касами, H, с каждым заданным набором свойств до заданного значения. Можно задать дополнительные аргументы пары "имя-значение" в любом порядке как (Name1, Value1..., NameN, ValueN).

Свойства

Polynomial

Полином генератора

Задайте полином, который определяет соединения обратной связи сдвига регистра. Значение по умолчанию является 'z^6 + z + 1'.

Можно задать полином генератора как вектор символов или как двоичный числовой вектор, который перечисляет коэффициенты полинома в порядке убывания степеней. Первый и последний элементы должны равняться 1. Задайте длину этого вектора как n + 1, где n является степенью полинома генератора и должна быть четной.

Наконец, можно задать полином генератора как вектор, содержащий экспоненты z для ненулевых членов полинома в порядке убывания степеней. Последняя запись должна быть 0. Для примера, [1 0 0 0 0 0 1 0 1] и [8 2 0] представляют тот же полином, g(z)=z8+z2+1.

InitialConditions

Начальные условия сдвига регистра

Задайте начальные значения регистра сдвига как двоичный числовой скаляр или как двоичный числовой вектор. Значение по умолчанию является [0 0 0 0 0 1]. Установите длину вектора равную степени полинома генератора.

Когда вы устанавливаете это свойство в векторное значение, каждый элемент вектора соответствует начальному значению соответствующей камеры в регистре сдвига.

Когда вы устанавливаете это свойство в скалярное значение, это значение задает начальные условия для всех камер регистра сдвига. Скаляр, или, по крайней мере, один элемент заданного вектора, требует ненулевого значения для объекта, чтобы сгенерировать ненулевую последовательность.

Index

Индекс последовательности

Укажите индекс, чтобы выбрать интересующую последовательность Касами из набора возможных последовательностей. Значение по умолчанию является 0. Последовательности Kasami имеют период, равный N = 2n -1, где n указывает неотрицательное, четное целое число, равное степени полинома генератора, который вы задаете в Polynomial свойство.

Существует два класса последовательностей Касами: полученные из небольшого множества и полученные из большого множества. Вы выбираете последовательность Касами из малого множества путем установки этого свойства в числовое, скалярное, целочисленное значение в область значений [0... 2n/2–2]. Вы выбираете последовательность из большого множества путем установки этого свойства в число 1×2 целочисленного вектора [k m] для k в [-2,..., 2n-2], и m в [-1,..., 2n/2–2].

Shift

Смещение последовательности от начального времени

Задайте смещение последовательности Касами от ее начальной точки в виде числового, целочисленного скалярного значения, которое может быть положительным или отрицательным. Значение по умолчанию является 0. Последовательность Касами имеет период N = 2n-1, где n - степень полинома генератора, которую вы задаете в Polynomial свойство. Значение сдвига оборачивается относительно периода последовательности.

VariableSizeOutput

Включите выходы переменного размера

Установите это свойство равным true, чтобы включить дополнительный вход в метод step. Значение по умолчанию является false. Когда вы устанавливаете это свойство равным true, активированный вход задает выход размер последовательности Касами, используемой для шага. Входное значение должно быть меньше или равным значению MaximumOutputSize свойство.

Когда вы устанавливаете это свойство false, SamplesPerFrame свойство задает количество выхода образцов.

MaximumOutputSize

Максимальный размер выходного сигнала

Задайте максимальный размер выхода последовательности Касами как положительное целое число 2-элементного вектора-строки. Второй элемент вектора должен быть 1. Значение по умолчанию является [10 1].

Это свойство применяется, когда вы устанавливаете VariableSizeOutput свойство true.

SamplesPerFrame

Количество выхода образцов в систему координат

Задайте количество выборок последовательности Касами, которые метод step выводит как числовое, положительное, целочисленное скалярное значение. Значение по умолчанию 1.

Когда вы устанавливаете это свойство в значение M, то step метод выводит M выборки последовательности Касами, которая имеет период N = 2n–1. Значение n равняется степени полинома генератора, которую вы задаете в Polynomial свойство.

ResetInputPort

Включите вход сброса генератора

Установите это свойство на true чтобы включить дополнительный вход в step способ. Значение по умолчанию является false. Дополнительный вход устанавливает состояния генератора последовательности Касами на начальные условия, которые вы задаете в InitialConditions свойство.

OutputDataType

Тип данных выхода

Укажите тип выходных данных как один из double | logical. Значение по умолчанию является double.

Методы

шагСгенерируйте последовательность Касами
Общий для всех системных объектов
release

Разрешить изменение значения свойства системного объекта

reset

Сброс внутренних состояний Системного объекта

Примеры

свернуть все

Расширение данных BPSK с последовательностью Касами длиной 255 при помощи Системного объекта последовательности Касами.

Сгенерируйте двоичные данные и примените BPSK модуляцию.

data = randi([0 1],10,1);
modData = pskmod(data,2);

Создайте объект последовательности Касами длиной 255 с помощью полинома генератора x8+x7+x4+1.

kasamiSequence = comm.KasamiSequence('Polynomial',[8 7 4 0], ...
    'InitialConditions',[0 0 0 0 0 0 0 1],'SamplesPerFrame',255);

Сгенерируйте последовательность Касами и преобразуйте ее в биполярную форму.

kasSeq = kasamiSequence();
kasSeq = 2*kasSeq - 1;

Применить коэффициент усиления 1/255 чтобы гарантировать, что операция расширения не увеличит общую степень сигнала.

kasSeq = kasSeq/sqrt(255);

Расширение данных BPSK с помощью последовательности Kasami.

spreadData = modData*kasSeq';
spreadData = spreadData(:);

Проверьте, что последовательность расширенных данных в 255 раз больше, чем последовательность входных данных.

spreadingFactor = length(spreadData)/length(data)
spreadingFactor = 255

Проверьте, что операция расширения не увеличила степень сигнала.

spreadSigPwr = sum(abs(spreadData).^2)/length(data)
spreadSigPwr = 1.0000

Измените полином генератора последовательности Касами на x8+x3+1 после первого освобождения объекта. Используйте символ представление полинома.

release(kasamiSequence)
kasamiSequence.Polynomial = 'x^8 + x^3 + 1';

Сгенерируйте новую последовательность и преобразуйте ее в биполярную форму.

kasSeq = kasamiSequence();
kasSeq = 2*kasSeq - 1;

Алгоритмы

Этот объект реализует алгоритм, входы и выходы, описанные на Kasami Sequence Generator блочных страниц с описанием. Свойства объекта соответствуют параметрам блоков, кроме:

  • Объект не имеет свойства для выбора выходов на основе фрейма.

  • Объект не имеет свойства, которое соответствует параметру Sample time.

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

.