Документация Engee

Генератор PN последовательности

Генератор псевдошумовой последовательности.

Тип: PNSequenceGenerator

Путь в библиотеке:

/Communication Systems/Sources/Sequence Generators/PN Sequence Generator

Описание

Блок Генератор PN последовательности генерирует последовательность псевдослучайных двоичных чисел с помощью сдвигового регистра с линейной обратной связью (LFSR). Псевдослучайные последовательности обычно используются для псевдослучайного скремблирования и в системах со спектром, расширенным методом прямой последовательности. Для получения дополнительной информации см. Дополнительно.

Порты

Выход

# Out — последовательность псевдослучайного шума
двоичный вектор

Details

Последовательность PN, возвращаемая в виде двоичного вектора. Тип данных на выходе определяется параметром Тип данных выхода.

Типы данных

Float64, Bool

Поддержка комплексных чисел

Нет

Вход

# Rst — последовательность сигналов сброса
0 | 1

Details

Последовательность сигналов сброса, значения могут быть 0 или 1. Для получения дополнительной информации см. Сброс поведения.

Зависимости

Чтобы использовать этот параметр, установите флажок параметра Сброс при ненулевом входе.

Типы данных

Bool

Поддержка комплексных чисел

Нет

# Mask — выходная маска
двоичный вектор

Details

Маска выхода для задержки PN-последовательности от начального времени, заданная в виде двоичного вектора с элементами . – степень порождающего полинома.

Зависимости

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

Типы данных

Float64

Поддержка комплексных чисел

Нет

Параметры

Основные

# Полиномиальный генератор — порождающий полином
Строка

Details

Порождающий полином, определяющий обратные связи сдвигового регистра. Задается как:

  • Символьный вектор или строковый скаляр полинома, постоянным членом которого является 1.

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

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

Значение по умолчанию

z^6 + z + 1

Имя для программного использования

GeneratorPolynomial

Настраиваемый

Нет

Вычисляемый

Да

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

Details

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

Чтобы блок сгенерировал ненулевую последовательность, вектор параметра Начальные состояния должен содержать хотя бы один ненулевой элемент.
Значение по умолчанию

[0 0 0 0 0 1]

Имя для программного использования

InitialStates

Настраиваемый

Нет

Вычисляемый

Да

# Источник выходной маски — источник выходной маски
Поле ввода параметра | Входной порт

Details

Источник выходной маски, указывающий, как информация о выходной маске передается блоку. Задается как:

  • Поле ввода параметра – для использования параметра Вектор выходной маски (или скалярное значение сдвига).

  • Входной порт – для добавления и использования входного порта Mask.

Значения

Dialog parameter | Input port

Значение по умолчанию

Dialog parameter

Имя для программного использования

OutputMaskSource

Настраиваемый

Нет

Вычисляемый

Нет

# Вектор выходной маски (или скалярное значение сдвига) — вектор выходной маски или скалярное значение сдвига

Details

Вектор маски выхода или значение скалярного сдвига, заданное в виде целочисленного скаляра или двоичного вектора-строки длины , где – степень порождающего полинома. Этот параметр определяет задержку PN-последовательности от начального времени. Для получения дополнительной информации см.Смещение начальной точки PN-последовательности.

Зависимости

Чтобы использовать этот параметр, установите для параметра Источник выходной маски значение Поле ввода параметра.

Значение по умолчанию

0

Имя для программного использования

OutputMaskVector

Настраиваемый

Нет

Вычисляемый

Да

# Период дискретизации — период дискретизации
Вещественное число

Details

Период дискретизации сигнала, заданный в виде положительного скаляра.

  • Если установлено значение -1, выходной сигнал наследует время дискретизации от нижестоящего. Информацию о взаимосвязи между параметрами Период дискретизации и Отсчетов на кадр см. в разделе Период дискретизации.

Пример

1 задает период дискретизации в 1 секунду

Значение по умолчанию

1

Имя для программного использования

SampleTimeValue

Настраиваемый

Нет

Вычисляемый

Да

# Отсчетов на кадр — количество отсчетов на один кадр
Вещественное число

Details

Количество отсчетов на кадр в одном канале выходного сигнала, заданное в виде положительного целого числа. Для получения информации о взаимосвязи между параметрами Период дискретизации и Отсчетов на кадр см. в разделе Период дискретизации.

Значение по умолчанию

1

Имя для программного использования

SamplesPerFrame

Настраиваемый

Нет

Вычисляемый

Да

# Сброс при ненулевом входе — сброс при ненулевом входе
Логический тип

Details

Установите этот флажок, чтобы добавить входной порт Rst. Для получения дополнительной информации см.в разделе Сброс поведения.

Значение по умолчанию

false (выключено)

Имя для программного использования

Reset

Настраиваемый

Нет

Вычисляемый

Нет

# Тип данных выхода — тип выходных данных
Float64 | Bool

Details

Тип выходных данных, указанный как Float64 или Bool.

Значения

Float64 | Bool

Значение по умолчанию

Float64

Имя для программного использования

OutputDataType

Настраиваемый

Нет

Вычисляемый

Нет

Дополнительно

Простой генератор сдвигового регистра

Для генерации PN-последовательностей используется сдвиговый регистр с линейной обратной связью (LFSR), реализованный в виде генератора простого сдвигового регистра (SSRG). Этот тип сдвигового регистра также известен как реализация Фибоначчи.

pn sequence generator 1 ru

Полином определяет обратные связи сдвигового регистра. Это примитивный двоичный многочлен . Для коэффициента , где – от 0 до , коэффициент равен 1, если существует связь от -го регистра к сумматору. Ведущий член, , и постоянный член, , порождающего полинома должны быть равны 1, поскольку полином должен быть примитивным. На каждом временном шаге все регистры в генераторе обновляют свои значения в соответствии со значением входящей стрелки в регистр сдвига. Сумматоры выполняют сложение по модулю 2. Выход LFSR отражает сумму всех соединений в векторе масок .

  • задается параметром Полиномиальный генератор.

  • Начальное значение задается параметром Начальные состояния.

  • определяет смещение начальной точки PN-последовательности и задается параметром Output mask vector (or scalar shift value)] или портом Mask.

В этой таблице указаны два набора значений параметров, которые соответствуют порождающему полиному .

Количество Пример 1 Пример 2

g1 = [1 0 0 0 0 0 1 0 1]

g2 = [8 2 0]

Степень порождающего полинома,

8, что составляет length(g1)-1

8

Начальные состояния

[1 0 0 0 0 0 1 0]

[1 0 0 0 0 0 1 0]

Порядок полинома и ориентация сдвигового регистра

Реализация ориентирует сдвиговые регистры слева направо, при этом порождающий полином ( ), начальные состояния и выход маски определяются в порядке убывания. В частности, .

При попытке смоделировать и сопоставить результаты из литературы, вы должны понять, использует ли ваш источник ту же самую конвенцию или зеркальное отражение этой конвенции и определены ли они в порядке возрастания.

Смещение начальной точки PN-последовательности

Чтобы сдвинуть начальную точку последовательности PN, укажите параметр Вектор выходной маски (или скалярное значение сдвига) как:

  • Целое число, представляющее длину сдвига.

    Значение по умолчанию 0 параметра Вектор выходной маски (или скалярное значение сдвига), соответствует отсутствию сдвига. Как показано на схеме регистра сдвига LFSR в Простой генератор сдвигового регистра, сдвиг отсутствует, когда единственное соединение происходит вдоль стрелки, обозначенной .

    В этой таблице показан сдвиг, который происходит, установить для параметра Вектор выходной маски (или скалярное значение сдвига) значение 0 по сравнению с положительным целым числом .

T = 0

T = 1

T = 2

…​

T =

T =

Shift =

…​

Shift =

…​

  • Двоичный вектор, длина которого равна степени порождающего полинома. На схеме сдвигового регистра LFSR в Простой генератор сдвигового регистра показан Вектор выходной маски (или скалярное значение сдвига), заданный как вектор-маска, . Двоичный вектор должен содержать элементов, где – степень порождающего полинома.

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

Например, если степень порождающего полинома равна 4, то вектор маски, соответствующий , это [0 1 0 0], который представляет полином .

Сброс поведения

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

Сброс сигнала Параметры сброса сигнала Блок Генератор PN последовательности Сброс сигнала и выходной сигнал

Нет сброса

  • Значение 1 параметра Период дискретизации

  • Значение 1 параметра Отсчетов на кадр

  • Значение [0 0 0 0 0 0 0 0] на порту Rst

  • Значение 1 параметра Период дискретизации

  • Значение 1 параметра Отсчетов на кадр

  • Значение [1 0 0 1 1 0 1 1] на порту Out

pn sequence generator 2

Скалярный сигнал сброса

  • Значение 1 параметра Период дискретизации

  • Значение 1 параметра Отсчетов на кадр

  • Значение [0 0 0 1 0 0 0 0] на порту Rst

  • Значение 1 параметра Период дискретизации

  • Значение 1 параметра Отсчетов на кадр

pn sequence generator 3

Сигнал сброса вектора

  • Значение 1 параметра Период дискретизации

  • Значение 8 параметра Отсчетов на кадр

  • Значение [0 0 0 1 0 0 0 0] на порту Rst

  • Значение 1 параметра Период дискретизации

  • Значение 8 параметра Отсчетов на кадр

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

Последовательности максимальной длины

Чтобы сгенерировать последовательность максимальной длины для порождающего полинома, имеющего степень , установите для параметра Полиномиальный генератор значение из следующей таблицы. Максимальная длина последовательности равна .

r Generator Polynomial r Generator Polynomial r Generator Polynomial r Generator Polynomial

2

[2 1 0]

15

[15 14 0]

28

[28 25 0]

41

[41 3 0]

3

[3 2 0]

16

[16 15 13 4 0]

29

[29 27 0]

42

[42 23 22 1 0]

4

[4 3 0]

17

[17 14 0]

30

[30 29 28 7 0]

43

[43 6 4 3 0]

5

[5 3 0]

18

[18 11 0]

31

[31 28 0]

44

[44 6 5 2 0]

6

[6 5 0]

19

[19 18 17 14 0]

32

[32 31 30 10 0

45

[45 4 3 1 0]

7

[7 6 0]

20

[20 17 0]

33

[33 20 0]

46

[46 21 10 1 0]

8

[8 6 5 4 0]

21

[21 19 0]

34

[34 15 14 1 0]

47

[47 14 0]

9

[9 5 0]

22

[22 21 0]

35

[35 2 0]

48

[48 28 27 1 0]

10

[10 7 0]

23

[23 18 0]

36

[36 11 0]

49

[49 9 0]

11

[11 9 0]

24

[24 23 22 17 0]

37

[37 12 10 2 0]

50

[50 4 3 2 0]

12

[12 11 8 6 0]

25

[25 22 0]

38

[38 6 5 1 0]

51

[51 6 3 1 0]

13

[13 12 10 9 0]

26

[26 25 24 20 0]

39

[39 8 0]

52

[52 3 0]

14

[14 13 8 4 0]

27

[27 26 25 22 0]

40

[40 5 4 3 0]

53

[53 6 2 1 0]

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

Период дискретизации

Время между обновлениями вывода равно произведению значений параметров Отсчетов на кадр и Период дискретизации. Например, если Период дискретизации и Отсчетов на кадр равны 1, блок выводит одну отсчеты каждую секунду. Если вы увеличите значение Отсчетов на кадр до 10, то блок будет выводить вектор 10×1 каждые 10 секунд. Такая синхронизация гарантирует, что эквивалентная скорость вывода не зависит от параметра Отсчетов на кадр.

Литература

  1. Proakis, John G. "Digital Communications." 5th ed. New York: McGraw Hill, 2007.

  2. Lee, J. S., and L. E. Miller. "CDMA Systems Engineering Handbook." Boston and London. Artech House, 1998.

  3. Golomb, S.W. "_Shift Register Sequences. Laguna Hills. Aegean Park Press, 1967.