comm.KasamiSequence

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

Описание

comm.KasamiSequence Система object™ генерирует последовательность от набора последовательностей Kasami. Последовательности Kasami являются набором последовательностей, которые имеют свойства взаимной корреляции. Для получения дополнительной информации см. Последовательности Kasami.

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

  1. Создайте comm.KasamiSequence объект и набор его свойства.

  2. Вызовите объект с аргументами, как будто это была функция.

Чтобы узнать больше, как Системные объекты работают, смотрите то, Что Системные объекты?

Создание

Описание

kasamiseq = comm.KasamiSequence создает Системный объект KasamiSequence. Этот объект генерирует последовательность Kasami.

пример

kasamiseq = comm.KasamiSequence(Name,Value) Свойства наборов с помощью одних или нескольких аргументов name-value. Например, 'Polynomial', 'z^8 + z^4 + z^3 + z^2 + 1' задает порождающий полином.

Свойства

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

Если в противном случае не обозначено, свойства являются ненастраиваемыми, что означает, что вы не можете изменить их значения после вызова объекта. Объекты блокируют, когда вы вызываете их, и release функция разблокировала их.

Если свойство является настраиваемым, можно изменить его значение в любое время.

Для получения дополнительной информации об изменении значений свойств смотрите Разработку системы в MATLAB Используя Системные объекты.

Порождающий полином в виде одной из этих опций:

  • Вектор символов или строковый скаляр полинома, постоянным термином которого является 1. Для получения дополнительной информации смотрите Представление Полиномов в Communications Toolbox.

  • Вектор-строка с бинарным знаком, который представляет коэффициенты полинома в порядке убывающих степеней. Длиной этого вектора должен быть N + 1, где N является степенью полинома. Первыми и последними записями должен быть 1, указание на ведущий термин со степенью N и постоянный термин 1.

  • Вектор-строка с целочисленным знаком из элементов, который представляет экспоненты для ненулевых терминов полинома в порядке убывающих степеней. Последней записью должен быть 0, указание на постоянный термин 1.

Можно задать примитивный порождающий полином как вектор-строку из элементов, который представляет экспоненты для ненулевых терминов полинома в порядке убывающих степеней. В качестве альтернативы можно также использовать primpoly функционируйте, чтобы найти примитивные полиномы для Поля Галуа или использовать gfprimck функционируйте, чтобы проверять, является ли полином допустимым примитивным полиномом.

Пример: 'z^8 + z^4 + z^3 + z^2 + 1', [1 0 0 0 1 1 1 0 1], и [8 4 3 2 0] представляйте тот же полином: z8 + z4 + z3 + z2 + 1.

Типы данных: double | char | string

Начальные условия сдвигового регистра в виде одной из этих опций:

  • Скаляр с бинарным знаком — Это значение задает начальные условия всех ячеек в сдвиговом регистре.

  • Вектор-строка с бинарным знаком из длины, равной степени порождающего полинома — Каждый элемент вектора, соответствует начальному значению соответствующей ячейки в сдвиговом регистре.

Примечание

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

Типы данных: double

Индекс последовательности в виде целого числа или вектора из формы [k m], чтобы выбрать последовательность Kasami интереса от набора возможных последовательностей. Последовательности Kasami имеют период, равный N = 2n – 1, где n является неотрицательным даже целое число, равное степени порождающего полинома, который вы задаете в Polynomial свойство.

Существуют два класса последовательностей Kasami: полученные из маленького набора и полученных из большого набора. Можно выбрать последовательность Kasami из маленького набора путем установки этого свойства на целое число в области значений [0, 2n/2– 2]. Можно выбрать последовательность из большого набора путем установки этого свойства на вектор из формы [k m]. k должен быть целым числом в области значений [–2, 2n– 2], и m должен быть целым числом в области значений [–1, 2n/2– 2]. Для получения дополнительной информации см. Последовательности Kasami.

Типы данных: double

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

Типы данных: double

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

  • false(0 ) - Используют SamplesPerFrame свойство задать количество выходных выборок на систему координат.

  • true(1 ) - Используют outputsize входной параметр, чтобы задать выходной размер последовательности Kasami. Входное значение должно быть меньше чем или равно значению MaximumOutputSize свойство.

Типы данных: логический | double

Максимальный выходной размер последовательности Kasami в виде вектора из формы [m 1], где m является положительным целым числом. Первый элемент вектора указывает на максимальный размер последовательности, и вторым элементом вектора должен быть 1.

Пример: [10 1] задает максимальный выходной размер 10- 1.

Зависимости

Чтобы включить это свойство, установите VariableSizeOutput свойство к 1 TRUE).

Типы данных: double

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

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

Зависимости

Чтобы включить это свойство, установите VariableSizeOutput свойство к false(0 ).

Типы данных: double

Опция, чтобы включить вход сброса генератора в виде логического или числового false(0 ) или true(1). Установите это свойство на true(1 ) включить resetseq входной параметр. Входной параметр сбрасывает состояния генератора последовательности Kasami к начальным условиям, которые вы задаете в InitialConditions свойство.

Типы данных: логический | double

Тип данных последовательности выхода Kasami в виде 'double' или 'logical'.

Типы данных: char | string

Использование

Описание

outsequence = kasamiseq() генерирует последовательность Kasami.

outsequence = kasamiseq(outputsize) задает длину выходной последовательности.

Чтобы включить этот синтаксис, установите VariableSizeOutput свойство к 1 TRUE).

пример

outsequence = kasamiseq(resetseq) задает сигнал сброса для генератора последовательности.

Чтобы включить этот синтаксис, установите ResetInputPort свойство к 1 TRUE).

outsequence = kasamiseq(outputsize,resetseq) задает длину выходной последовательности и сигнала сброса для генератора последовательности.

Чтобы включить этот синтаксис, установите VariableSizeOutput свойство к 1 TRUE) и ResetInputPort свойство к 1 TRUE).

Входные параметры

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

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

Скаляр или первый элемент вектора-строки должны быть меньше чем или равны первому элементу MaximumOutputSize значение свойства.

Зависимости

Чтобы включить этот входной параметр, установите VariableSizeOutput свойство к 1 TRUE).

Типы данных: double

Сбросьте сигнал для генератора последовательности в виде скаляра или вектор-столбца с длиной, равной количеству отсчетов на систему координат, заданную SamplesPerFrame свойство.

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

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

Зависимости

Чтобы включить этот входной параметр, установите ResetInputPort свойство к 1 TRUE).

Типы данных: double

Выходные аргументы

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

Последовательность Kasami, возвращенная как вектор-столбец.

Типы данных: double

Функции объекта

Чтобы использовать объектную функцию, задайте Системный объект как первый входной параметр. Например, чтобы выпустить системные ресурсы Системного объекта под названием obj, используйте этот синтаксис:

release(obj)

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

stepЗапустите алгоритм Системного объекта
releaseВысвободите средства и позвольте изменения в значениях свойств Системного объекта и введите характеристики
resetСбросьте внутренние состояния Системного объекта

Примеры

свернуть все

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

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

Создайте Системный объект генератора последовательности Kasami, задав порождающий полином x8+x4+x3+x2+1, начальные условия сдвигового регистра и последовательность Kasami длины 255.

kasamiseq = comm.KasamiSequence('Polynomial',[8 4 3 2 0], ...
    'InitialConditions',[0 0 0 0 0 0 0 1],'SamplesPerFrame',255);

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

kasSeq = kasamiseq();
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

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

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

Больше о

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

Ссылки

[1] Proakis, Цифровая связь Джона Г. 4-й редактор Нью-Йорк: Макгроу Хилл, 2001.

[2] Sarwate, D.V., и М.Б. Персли. “Свойства взаимной корреляции Псевдослучайных и Связанных Последовательностей”. Продолжения IEEE 68, № 5 (1980): 593–619. https://doi.org/10.1109/PROC.1980.11697.

[3] Петерсон, В. Уэсли и Э. Дж. Уэлдон. Коды 1972 с коррекцией ошибок.

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

Смотрите также

Объекты

Блоки

Представленный в R2012a