exponenta event banner

коммуникация. KasamiSequence

Создать последовательность Касами

Описание

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

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

  1. Определите и настройте объект последовательности Kasami. См. раздел Строительство.

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

Примечание

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

Строительство

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

H = comm.KasamiSequence(Name,Value) создает объект генератора последовательности Kasami, 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

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

Укажите индекс, чтобы выбрать интересующую последовательность Kasami из набора возможных последовательностей. Значение по умолчанию: 0. Последовательности Касами имеют период, равный 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, включенные входные данные указывают размер выходных данных последовательности Kasami, используемой для шага. Входное значение должно быть меньше или равно значению MaximumOutputSize собственность.

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

MaximumOutputSize

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

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

Это свойство применяется при установке VariableSizeOutput свойство имеет значение true.

SamplesPerFrame

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

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

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

ResetInputPort

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

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

OutputDataType

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

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

Методы

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

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

reset

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

Примеры

свернуть все

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

Генерировать двоичные данные и применять модуляцию 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. Свойства объекта соответствуют параметрам блока, за исключением:

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

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

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

.