Генератор PN последовательности
Генератор псевдошумовой последовательности.
Описание
Блок PN Sequence Generator генерирует последовательность псевдослучайных двоичных чисел с помощью сдвигового регистра с линейной обратной связью (LFSR). Псевдослучайные последовательности обычно используются для псевдослучайного скремблирования и в системах со спектром, расширенным методом прямой последовательности. Для получения дополнительной информации см. Дополнительно.
Порты
Выход
#
Out
—
последовательность псевдослучайного шума
двоичный вектор
Подробнее
Последовательность PN, возвращаемая в виде двоичного вектора. Тип данных на выходе определяется параметром Output data type.
Типы данных |
|
Поддержка комплексных чисел |
Нет |
Вход
#
Rst
—
последовательность сигналов сброса
0
| 1
Подробнее
Последовательность сигналов сброса, значения могут быть 0
или 1
. Для получения дополнительной информации см. Сброс поведения.
Зависимости
Чтобы использовать этот параметр, установите флажок параметра Reset on nonzero input.
Типы данных |
|
Поддержка комплексных чисел |
Нет |
#
Mask
—
выходная маска
двоичный вектор
Подробнее
Маска выхода для задержки PN-последовательности от начального времени, заданная в виде двоичного вектора с элементами . – степень порождающего полинома.
Зависимости
Чтобы использовать этот параметр, установите для параметра Output mask source значение Input port
.
Типы данных |
|
Поддержка комплексных чисел |
Нет |
Параметры
Основные
#
Полиномиальный генератор —
порождающий полином
Строка
Подробнее
Порождающий полином, определяющий обратные связи сдвигового регистра. Задается как:
-
Символьный вектор или строковый скаляр полинома, постоянным членом которого является
1
. -
Двоичная вектор-строка длиной , представляющий коэффициенты полинома в порядке убывания степени. Длина этого вектора должна быть равна , где – степень многочлена. Первое и последнее значения должны быть равны
1
, что указывает на ведущий член со степенью и постоянный член, равный1
. -
Целочисленный вектор-строка, задающая экспоненты для ненулевых членов многочлена в порядке убывания силы. Последний элемент должен быть равен
0
, что означает постоянный член, равный1
.
Значения |
|
Значение по умолчанию |
|
Имя для программного использования |
|
Настраиваемый |
Нет |
# Начальное состояние — начальные состояния сдвигового регистра
Подробнее
Начальные состояния сдвигового регистра генератора PN-последовательности при запуске симуляции, заданные в виде двоичной вектор-строки. Длина вектора должна быть равна степени порождающего полинома, заданного параметром Generator polynomial. Для получения дополнительной информации см. Простой генератор сдвигового регистра и Порядок полинома и ориентация сдвигового регистра.
Чтобы блок сгенерировал ненулевую последовательность, вектор параметра Initial states должен содержать хотя бы один ненулевой элемент. |
Значение по умолчанию |
|
Имя для программного использования |
|
Настраиваемый |
Нет |
#
Источник выходной маски —
источник выходной маски
Поле ввода параметра
| Входной порт
Подробнее
Источник выходной маски, указывающий, как информация о выходной маске передается блоку. Задается как:
-
Dialog parameter
– для использования параметра Output mask vector (or scalar shift value). -
Input port
– для добавления и использования входного порта Mask.
Значения |
|
Значение по умолчанию |
|
Имя для программного использования |
|
Настраиваемый |
Нет |
# Вектор выходной маски (или скалярное значение сдвига) — вектор выходной маски или скалярное значение сдвига
Подробнее
Вектор маски выхода или значение скалярного сдвига, заданное в виде целочисленного скаляра или двоичного вектора-строки длины , где – степень порождающего полинома. Этот параметр определяет задержку PN-последовательности от начального времени. Для получения дополнительной информации см.Смещение начальной точки PN-последовательности.
Зависимости
Чтобы использовать этот параметр, установите для параметра Output mask source значение Dialog parameter
.
Значение по умолчанию |
|
Имя для программного использования |
|
Настраиваемый |
Нет |
#
Период дискретизации —
период дискретизации
Вещественное число
Подробнее
Период дискретизации сигнала, заданный в виде положительного скаляра.
-
Если установлено значение
-1
, выходной сигнал наследует время дискретизации от нижестоящего. Информацию о взаимосвязи между параметрами Sample time и Samples per frame см. в разделе Период дискретизации.
Пример |
|
Значения |
|
Значение по умолчанию |
|
Имя для программного использования |
|
Настраиваемый |
Нет |
#
Отсчетов на кадр —
количество отсчетов на один кадр
Вещественное число
Подробнее
Количество выборок на кадр в одном канале выходного сигнала, заданное в виде положительного целого числа. Для получения информации о взаимосвязи между параметрами Sample time и Samples per frame см. в разделе Период дискретизации.
Значения |
|
Значение по умолчанию |
|
Имя для программного использования |
|
Настраиваемый |
Нет |
#
Сброс при ненулевом входе —
сброс при ненулевом входе
Логический тип
Подробнее
Установите этот флажок, чтобы добавить входной порт Rst. Для получения дополнительной информации см.в разделе Сброс поведения.
Значения |
|
Значение по умолчанию |
|
Имя для программного использования |
|
Настраиваемый |
Нет |
#
Тип данных выхода —
тип выходных данных
Float64
| Bool
Подробнее
Тип выходных данных, указанный как Float64
или Bool
.
Значения |
|
Значение по умолчанию |
|
Имя для программного использования |
|
Настраиваемый |
Нет |
Дополнительно
Простой генератор сдвигового регистра
Для генерации PN-последовательностей используется сдвиговый регистр с линейной обратной связью (LFSR), реализованный в виде генератора простого сдвигового регистра (SSRG). Этот тип сдвигового регистра также известен как реализация Фибоначчи.
Полином определяет обратные связи сдвигового регистра. Это примитивный двоичный многочлен . Для коэффициента , где – от 0
до , коэффициент равен 1
, если существует связь от -го регистра к сумматору. Ведущий член, , и постоянный член, , порождающего полинома должны быть равны 1
, поскольку полином должен быть примитивным. На каждом временном шаге все регистры в генераторе обновляют свои значения в соответствии со значением входящей стрелки в регистр сдвига. Сумматоры выполняют сложение по модулю 2. Выход LFSR отражает сумму всех соединений в векторе масок .
-
задается параметром Generator polynomial.
-
Начальное значение задается параметром Initial states.
-
определяет смещение начальной точки PN-последовательности и задается параметром Output mask vector (or scalar shift value)] или портом Mask.
В этой таблице указаны два набора значений параметров, которые соответствуют порождающему полиному .
Количество | Пример 1 | Пример 2 |
---|---|---|
|
|
|
Степень порождающего полинома, |
|
|
Initial states |
|
|
Порядок полинома и ориентация сдвигового регистра
Реализация ориентирует сдвиговые регистры слева направо, при этом порождающий полином ( ), начальные состояния и выход маски определяются в порядке убывания. В частности, .
При попытке смоделировать и сопоставить результаты из литературы, вы должны понять, использует ли ваш источник ту же самую конвенцию или зеркальное отражение этой конвенции и определены ли они в порядке возрастания.
Смещение начальной точки PN-последовательности
Чтобы сдвинуть начальную точку последовательности PN, укажите параметр Output mask vector (or scalar shift value) как:
-
Целое число, представляющее длину сдвига.
Значение по умолчанию
0
параметра Output mask vector (or scalar shift value), соответствует отсутствию сдвига. Как показано на схеме регистра сдвига LFSR в Простой генератор сдвигового регистра, сдвиг отсутствует, когда единственное соединение происходит вдоль стрелки, обозначенной .В этой таблице показан сдвиг, который происходит, установить для параметра Output mask vector (or scalar shift value) значение
0
по сравнению с положительным целым числом .
T = 0 |
T = 1 |
T = 2 |
… |
T = |
T = |
|
Shift = |
|
|
|
… |
|
|
Shift = |
|
|
|
… |
|
|
-
Двоичный вектор, длина которого равна степени порождающего полинома. На схеме сдвигового регистра LFSR в Простой генератор сдвигового регистра показан Output mask vector (or scalar shift value), заданный как вектор-маска, . Двоичный вектор должен содержать элементов, где – степень порождающего полинома.
Двоичный вектор соответствует многочлену , степени не выше . Вектор маски, соответствующий сдвигу на , это вектор, который представляет собой по модулю , где порождающий полином.
Например, если степень порождающего полинома равна 4, то вектор маски, соответствующий , это [0 1 0 0]
, который представляет полином .
Сброс поведения
Прежде чем сбросить последовательность генератора, нужно установить флажок параметра Reset on nonzero input, чтобы включить входной порт Rst. Предположим, что блок PN Sequence Generator выводит [1 0 0 1 1 0 1 1]
, когда сброс отсутствует. В этой таблице показано влияние на выход блока PN Sequence Generator указанных значений параметров.
Сброс сигнала | Параметры сброса сигнала | Блок PN Sequence Generator | Сброс сигнала и выходной сигнал |
---|---|---|---|
Нет сброса |
|
|
|
Скалярный сигнал сброса |
|
|
|
Сигнал сброса вектора |
|
|
В случае отсутствия сброса блок выводит последовательность без сброса. Для случаев скалярного и векторного сигнала сброса блок подает сигнал сброса [0 0 0 1 0 0 0 0]
на порт Rst. Поскольку четвертый бит сигнала сброса – это 1
, а Sample time – это 1
, блок сбрасывает выход последовательности в четвертом бите.
Последовательности максимальной длины
Чтобы сгенерировать последовательность максимальной длины для порождающего полинома, имеющего степень , установите для параметра Generator polynomial значение из следующей таблицы. Максимальная длина последовательности равна .
r | Generator Polynomial | r | Generator Polynomial | r | Generator Polynomial | r | Generator Polynomial |
---|---|---|---|---|---|---|---|
2 |
|
15 |
|
28 |
|
41 |
|
3 |
|
16 |
|
29 |
|
42 |
|
4 |
|
17 |
|
30 |
|
43 |
|
5 |
|
18 |
|
31 |
|
44 |
|
6 |
|
19 |
|
32 |
|
45 |
|
7 |
|
20 |
|
33 |
|
46 |
|
8 |
|
21 |
|
34 |
|
47 |
|
9 |
|
22 |
|
35 |
|
48 |
|
10 |
|
23 |
|
36 |
|
49 |
|
11 |
|
24 |
|
37 |
|
50 |
|
12 |
|
25 |
|
38 |
|
51 |
|
13 |
|
26 |
|
39 |
|
52 |
|
14 |
|
27 |
|
40 |
|
53 |
|
Подробнее о конфигурациях сдвиговых регистров, которые представляют собой эти полиномы, см. в [1].
Период дискретизации
Время между обновлениями вывода равно произведению значений параметров Samples per frame и Sample time. Например, если Sample time и Samples per frame равны 1
, блок выводит одну выборку каждую секунду. Если вы увеличите значение Samples per frame до 10
, то блок будет выводить вектор 10 на 1 каждые 10 секунд. Такая синхронизация гарантирует, что эквивалентная скорость вывода не зависит от параметра Samples per frame.