comm.GoldSequence

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

Описание

comm.GoldSequence Система object™ генерирует двоичную последовательность с маленькими периодическими свойствами взаимной корреляции от ограниченного множества последовательностей. Для получения дополнительной информации смотрите последовательности Голда.

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

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

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

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

Создание

Описание

пример

goldseq = comm.GoldSequence создает Системный объект генератора последовательности Голда. Этот объект генерирует псевдослучайную последовательность Голда двоичных чисел.

пример

goldseq = comm.GoldSequence(Name,Value) свойства наборов с помощью одних или нескольких аргументов name-value. Заключите каждое имя свойства в кавычки. Например, 'Shift',1 задает одно демонстрационное смещение выходной последовательности от начальной точки.

Свойства

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

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

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

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

Порождающий полином для первой предпочтительной псевдошумовой последовательности в виде одной из этих опций:

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

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

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

Это свойство определяет соединения обратной связи для сдвигового регистра первого предпочтительного генератора псевдошумовой последовательности. Степень первого порождающего полинома должна равняться степени второго порождающего полинома, заданного SecondPolynomial свойство. Для получения дополнительной информации смотрите Предпочтительные Пары Последовательностей.

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

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

Начальные условия использовали для сдвигового регистра первого предпочтительного генератора псевдошумовой последовательности, когда симуляция запускается в виде скалярного или вектора с бинарным знаком с бинарным знаком.

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

  • Если вы устанавливаете это свойство на вектор, каждый элемент вектора соответствует начальному значению соответствующей ячейки в сдвиговом регистре. Длина вектора должна равняться степени порождающего полинома, заданного FirstPolynomial свойство.

Примечание

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

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

Порождающий полином для первой предпочтительной псевдошумовой последовательности в виде одной из этих опций:

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

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

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

Это свойство определяет соединения обратной связи для сдвигового регистра второго предпочтительного генератора псевдошумовой последовательности. Степень второго порождающего полинома должна равняться степени первого порождающего полинома, заданного FirstPolynomial свойство. Для получения дополнительной информации смотрите Предпочтительные Пары Последовательностей.

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

Источник начальных условий использовал для сдвигового регистра второго предпочтительного генератора псевдошумовой последовательности в виде одного из этих значений:

  • 'Property' — Задайте начальные условия генератора псевдошумовой последовательности при помощи SecondInitialConditions свойство.

  • 'Input port' — Задайте начальные условия генератора псевдошумовой последовательности при помощи secondinitcond входной параметр.

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

Начальные условия использовали для сдвигового регистра второго предпочтительного генератора псевдошумовой последовательности, когда симуляция запускается в виде скалярного или вектора с бинарным знаком с бинарным знаком.

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

  • Если вы устанавливаете это свойство на вектор, каждый элемент вектора соответствует начальному значению соответствующей ячейки в сдвиговом регистре. Длина вектора должна равняться степени порождающего полинома, заданного SecondPolynomial свойство.

Примечание

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

Зависимости

Включить этому набору свойств SecondInitialConditionsSource свойство к 'Property'.

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

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

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

Смещение выходной последовательности от начальной точки в виде целого числа. Модули находятся в выборках. Объект переносит значения сдвига, которые отрицательны или больше, чем длина последовательности Голда. Для примера с помощью сдвига смотрите, Генерируют последовательности Голда с Различными Значениями Сдвига.

Примечание

Вычислите вектор маски при помощи shift2mask функция.

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

Включите переменному размеру выходные параметры в виде числового или логического 0 ложь) или 1 TRUE). Включить переменному размеру выходные параметры при помощи outputsize входной параметр, набор это свойство к true. Активированный вход задает выходной размер последовательности Голда. Входное значение должно быть меньше чем или равно значению MaximumOutputSize свойство.

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

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

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

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

Зависимости

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

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

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

Зависимости

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

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

Включите вход сброса генератора в виде числового или логического 0 ложь) или 1 TRUE). Включить способности сбросить генератор последовательности с помощью resetseq входной параметр, набор это свойство к true. Этот вход сбрасывает состояния двух сдвиговых регистров генератора последовательности Голда к начальным условиям, заданным FirstInitialConditions и SecondInitialConditions свойства. Для примера с помощью resetseq введите, смотрите, Генерируют последовательности Голда с Различными Значениями Сброса.

Зависимости

Чтобы включить это свойство, установите SecondInitialConditionsSource свойство к 'Property'.

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

Тип данных выхода в виде 'double'логический, 'Smallest unsigned integer', или 'Smallest integer'.

Использовать Smallest unsigned integer опция, у вас должен быть продукт Fixed-Point Designer™.

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

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

Описание

пример

outSequence = goldseq() выводит систему координат последовательности Голда в вектор-столбце на основе сконфигурированного объекта.

outSequence = goldseq(secondinitcond) использование secondinitcond как начальные условия для второй псевдошумовой последовательности.

Чтобы включить этот синтаксис, установите SecondInitialConditionsSource свойство к 'Input port' и ResetInputPort свойство к false.

outSequence = goldseq(outputsize) использование outputsize как выходной размер.

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

пример

outSequence = goldseq(resetseq) использование resetseq как сигнал сброса.

Чтобы включить этот синтаксис, установите ResetInputPort свойство к true и SecondInitialConditionsSource свойство к 'Property'.

outSequence = goldseq(secondinitcond,outputsize) задает входные параметры для вторых начальных условий псевдошумовой последовательности и выходного размера.

Чтобы включить этот синтаксис, установите SecondInitialConditionsSource свойство к 'Input port', ResetInputPort свойство к false, и набор VariableSizeOutput свойство к true.

outSequence = goldseq(outputsize,resetseq) задает входные параметры для выходного размера и сигнала сброса.

Чтобы включить этот синтаксис, установите VariableSizeOutput свойство к true, SecondInitialConditionsSource свойство к 'Property', и ResetInputPort свойство к true.

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

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

Начальные условия использовали для сдвигового регистра второго предпочтительного генератора псевдошумовой последовательности, когда симуляция запускается в виде скалярного или вектора с бинарным знаком с бинарным знаком.

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

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

Примечание

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

Зависимости

Чтобы включить этот входной параметр, установите SecondInitialConditionsSource свойство к 'Input port'.

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

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

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

Зависимости

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

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

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

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

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

Для сброса использования в качестве примера смотрите, Генерируют последовательности Голда с Различными Значениями Сброса.

Зависимости

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

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

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

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

Последовательность Голда, возвращенная как вектор-столбец. Для получения дополнительной информации смотрите последовательности Голда.

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

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

release(obj)

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

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

Примеры

свернуть все

Сгенерируйте 10 выборок последовательности Голда с периодом 25-1.

goldseq = comm.GoldSequence('FirstPolynomial','x^5+x^2+1', ...
    'SecondPolynomial','x^5+x^4+x^3+x^2+1', ...
    'FirstInitialConditions',[0 0 0 0 1], ...
    'SecondInitialConditions',[0 0 0 0 1], ...
    'Index',4,'SamplesPerFrame',10);
x = goldseq()
x = 10×1

     1
     1
     1
     0
     0
     0
     0
     0
     0
     1

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

Создайте Систему последовательности Голда object™, задав 15 выборок на систему координат и никакой сдвиг. Сгенерируйте последовательность Голда с 7 выборками. Выходная система координат начинается в начале последовательности Голда.

goldseq = comm.GoldSequence("FirstPolynomial","x^3+x^2+1", ...
    "SecondPolynomial","x^3+x+1", ...
    "FirstInitialConditions",[0 0 1], ...
    "SecondInitialConditions",[0 1 1], ...
    "Index",3, ...
    "SamplesPerFrame",15)
goldseq = 
  comm.GoldSequence with properties:

                  FirstPolynomial: "x^3+x^2+1"
           FirstInitialConditions: [0 0 1]
                 SecondPolynomial: "x^3+x+1"
    SecondInitialConditionsSource: 'Property'
          SecondInitialConditions: [0 1 1]
                            Index: 3
                            Shift: 0
               VariableSizeOutput: false
                  SamplesPerFrame: 15
                   ResetInputPort: false
                   OutputDataType: 'double'

outseq = goldseq()'
outseq = 1×15

     1     1     0     0     0     0     0     1     1     0     0     0     0     0     1

Выпустите объект, настройте сдвиг на-1 и сгенерируйте переключенный выход. Повторите этот процесс для значений сдвига 6 и 13. Для каждой из этих настроек сдвига выходная система координат начинается на 6-й выборке этой длинной последовательности Голда с 7 выборками.

release(goldseq);
goldseq.Shift = -1;
outseq = goldseq()'
outseq = 1×15

     0     1     1     0     0     0     0     0     1     1     0     0     0     0     0

release(goldseq);
goldseq.Shift = 6;
outseq = goldseq()'
outseq = 1×15

     0     1     1     0     0     0     0     0     1     1     0     0     0     0     0

release(goldseq);
goldseq.Shift = 13;
outseq = goldseq()'
outseq = 1×15

     0     1     1     0     0     0     0     0     1     1     0     0     0     0     0

Сгенерируйте последовательности Голда с помощью различных значений для входа сброса.

Создайте Систему последовательности Голда object™, задав 15 выборок на систему координат и включив остальным вход. Сгенерируйте последовательность Голда с 7 выборками. Чтобы наблюдать начальную точку систем координат, выведенных объектом относительно сгенерированной последовательности Голда, выборки на значение системы координат включают одну выборку больше чем два раза длина последовательности.

goldseq = comm.GoldSequence("FirstPolynomial","x^3+x^2+1", ...
    "SecondPolynomial","x^3+x+1", ...
    "FirstInitialConditions",[0 0 1], ...
    "SecondInitialConditions",[0 1 1], ...
    "Index",3, ...
    "ResetInputPort",true, ...
    "SamplesPerFrame",15);

Так, чтобы объект не сбрасывал последовательность к начальным условиям, задайте скалярное входное значение сброса 0. Отобразите последовательные системы координат с 15 выборками последовательности. Вторая система координат продолжает последовательность от где первая брошенная система координат со вторым элементом последовательности Голда.

resetseq = 0;
x1 = goldseq(resetseq)'
x1 = 1×15

     1     1     0     0     0     0     0     1     1     0     0     0     0     0     1

x2 = goldseq(resetseq)'
x2 = 1×15

     1     0     0     0     0     0     1     1     0     0     0     0     0     1     1

Чтобы сбросить последовательность к начальным условиям, задайте скалярное входное значение сброса 1. Отобразите последовательные системы координат с 15 выборками последовательности. Вторая система координат теперь начинается с первого элемента последовательности Голда.

resetseq = 1;
x3 = goldseq(resetseq)'
x3 = 1×15

     1     1     0     0     0     0     0     1     1     0     0     0     0     0     1

x4 = goldseq(resetseq)'
x4 = 1×15

     1     1     0     0     0     0     0     1     1     0     0     0     0     0     1

Чтобы реконфигурировать вход сброса объекта принять вектор, выпустите объект. Задайте входной вектор сброса, заполненный 0s. Отобразите последовательные системы координат с 15 выборками последовательности. Поскольку объект не сбрасывает последовательность к начальным условиям, вторая система координат начинается со второго элемента последовательности Голда.

release(goldseq)
resetseq = [0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]';
x5 = goldseq(resetseq)'
x5 = 1×15

     1     1     0     0     0     0     0     1     1     0     0     0     0     0     1

x6 = goldseq(resetseq)'
x6 = 1×15

     1     0     0     0     0     0     1     1     0     0     0     0     0     1     1

Задайте входной вектор сброса, который имеет два элемента с ненулевыми значениями. Отобразите последовательные системы координат с 15 выборками последовательности. Вторые и третьи системы координат продолжают последовательность от предшествующей системы координат, но сбрасывают последовательность на третьих и девятых выборках системы координат из-за положения ненулевых записей в векторе, заданном для входа сброса.

resetseq = [0 0 1 0 0 0 0 0 1 0 0 0 0 0 0]';
x7 = goldseq(resetseq)'
x7 = 1×15

     0     0     1     1     0     0     0     0     1     1     0     0     0     0     0

x8 = goldseq(resetseq)'
x8 = 1×15

     1     1     1     1     0     0     0     0     1     1     0     0     0     0     0

x9 = goldseq(resetseq)'
x9 = 1×15

     1     1     1     1     0     0     0     0     1     1     0     0     0     0     0

Больше о

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

Ссылки

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

[2] Золото, R. “Максимальные Рекурсивные Последовательности с 3-значными Рекурсивными Функциями взаимной корреляции (Corresp).”. Транзакции IEEE на Теории информации 14, № 1 (январь 1968): 154–56. https://doi.org/10.1109/TIT.1968.1054106.

[3] Золото, R. “Оптимальные Двоичные последовательности для Спектра Распространения, Мультиплексирующего (Corresp).”. Транзакции IEEE на Теории информации 13, № 4 (октябрь 1967): 619–21. https://doi.org/10.1109/TIT.1967.1054048.

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

[5] Диксон, Роберт К. Сприд Спектрум Системс: С Коммерческим применением. 3-й редактор Нью-Йорк: Вайли, 1994.

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

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

Объекты

Функции

Блоки

Введенный в R2008a