Сгенерируйте псевдошумовую последовательность
Communications Toolbox / Источники Коммуникации / Генераторы Последовательности
Поддержка HDL Communications Toolbox / источники коммуникации
Блок PN Sequence Generator генерирует последовательность псевдослучайных двоичных чисел с помощью сдвигового регистра линейной обратной связи (LFSR). Псевдошумовые последовательности обычно используются в псевдослучайном скремблировании, и в системах спектра распространения прямой последовательности. Для получения дополнительной информации смотрите Больше О.
Эти значки показывают блок со всеми включенными портами.
Mask
— Выведите маскуВыведите маску, чтобы задержать псевдошумовую последовательность с начального времени в виде бинарного вектора с элементами N. N является степенью полинома генератора.
Чтобы включить этот порт, установите Output mask source на Input port
.
Типы данных: double |
uint8
| ufix1
oSiz
'OutputSize' Выведите размер для выходных сигналов переменного размера в виде целого числа. Для получения информации о сигналах переменного размера смотрите Основы Сигнала Переменного Размера (Simulink).
Чтобы включить этот порт, выберите Output variable-size signals и установите Maximum output size source на Dialog parameter
.
Типы данных: double
Ref
— Ссылочный входСсылочный вход в виде вектор-столбца, который определяет длину последовательности максимальной и текущей производительности. Вход Ref должен быть сигналом переменного размера. Для получения информации о сигналах переменного размера смотрите Основы Сигнала Переменного Размера (Simulink).
Чтобы включить этот порт, выберите Output variable-size signals и установите Maximum output size source на Inherit from reference input
.
Типы данных: double
Rst
— Сбросьте генератор последовательностиСбросьте генератор последовательности в виде 0
или 1
. Для получения дополнительной информации смотрите Поведение Сброса.
Чтобы включить этот порт, выберите Reset on nonzero input.
Типы данных: Boolean
Out
— Псевдослучайная шумовая последовательностьПсевдошумовая последовательность, возвращенная как бинарный вектор.
Generator polynomial
— Полином генератора'z^6 + z + 1'
(значение по умолчанию) | полиномиальный вектор символов | вектор строки двоичных знаковПолином генератора в виде одного из следующего:
Полиномиальный вектор символов, который включает номер 1
.
Вектор строки двоичных знаков, который представляет коэффициенты полинома генератора в порядке убывающей степени. Первыми и последними записями должен быть 1
. Длина этого вектора (N +1), где N является степенью полинома генератора.
Вектор, содержащий экспоненты z для ненулевых условий полинома в порядке убывания степеней. Последней записью должен быть 0
.
Для получения дополнительной информации смотрите Символьное представление Полиномов.
Пример: 'z^8 + z^2 + 1'
, [1 0 0 0 0 0 1 0 1], и
[8 2 0]
представляйте тот же полином, p (z) = z
8 + z
2 + 1.
Типы данных: double |
char
Initial states
— Начальные состояния сдвигового регистра
(значение по умолчанию) | вектор строки двоичных знаковНачальный сдвиговый регистр утверждает в виде вектора строки двоичных знаков длины N, где N является степенью полинома генератора.
Для блока, чтобы сгенерировать ненулевую последовательность, вектор Initial states должен содержать по крайней мере один ненулевой элемент.
Типы данных: double
Output mask source
— Выведите источник маскиDialog parameter
(значение по умолчанию) | Input port
Выведите источник маски, который указывает, как выходная информация о маске дана блоку в виде:
Dialog parameter
использовать Output mask vector (or scalar shift value)
установка параметра.
Input port
добавить и использовать Mask
входной порт.
Output mask vector (or scalar shift value)
— Выведите вектор маски или скалярное значение сдвигаВыведите вектор маски или скалярное значение сдвига в виде целочисленного скаляра или вектор строки двоичных знаков длины N, где N является степенью полинома генератора. Этот параметр определяет задержку псевдошумовой последовательности с начального времени. Для получения дополнительной информации смотрите Начальную точку Псевдошумовой последовательности Перемены.
Чтобы включить этот параметр, установите Output mask source на Dialog parameter
.
Типы данных: double
Output variable-size signals
— Сигналы размера выходной переменнойВыберите этот параметр, чтобы разрешить переменной длине выходные последовательности в процессе моделирования. Когда установлено в off
, последовательности фиксированной длины выводятся. Когда установлено в on
, последовательности переменной длины могут быть выведены. Для получения информации о сигналах переменного размера смотрите Основы Сигнала Переменного Размера (Simulink).
Maximum output size source
— Максимальный выходной источник размераDialog parameter
(значение по умолчанию) | Inherit from reference port
Максимальный выходной источник размера, который указывает, как максимальная последовательность выходной размер задана.
Dialog parameter
конфигурирует блок, чтобы использовать установку параметра Maximum output size в качестве максимальной разрешенной выходной длины последовательности. Когда вы делаете этот выбор, входной порт oSiz задает текущий размер выходного сигнала, и блок выход наследовал шаг расчета от входного сигнала. Входное значение oSiz должно быть меньше чем или равно параметру Maximum output size.
Inherit from reference port
добавляет Ref
входной порт и конфигурирует блок, чтобы наследовать шаг расчета, максимальный размер и размер текущей производительности от сигнала переменного размера в Ref
входной порт, чтобы установить максимальную разрешенную выходную длину последовательности.
Чтобы включить этот параметр, выберите Output variable-size signals.
Maximum output size
— Максимальный выходной размер
(значение по умолчанию) | двухэлементный вектор-строкаМаксимальный выходной размер в виде двухэлементного вектора-строки, который обозначает максимальный выходной размер для блока. Вторым элементом вектора должен быть 1
.
Пример: [10 1]
дает максимальный размерный выходной сигнал 10 на 1.
Чтобы включить этот параметр выбирают Output variable-size signals и устанавливают Maximum output size source на Dialog parameter
.
Типы данных: double
Sample time
— Выведите шаг расчета
(значение по умолчанию) |-1 | положительная скалярная величинаВыведите шаг расчета в виде -1
или положительная скалярная величина, которая представляет время между каждой выборкой выходного сигнала. Если Sample time установлен в -1
, шаг расчета наследован от нисходящего потока. Для получения информации об отношении между Sample time и Samples per frame, смотрите
Демонстрационную Синхронизацию.
Пример 1 задает шаг расчета 1 секунды.
Чтобы включить этот параметр, очистите Output variable-size signals.
Типы данных: double
Samples per frame
— Выборки на систему координат
(значение по умолчанию) | положительное целое числоВыборки на систему координат в одном канале выходного сигнала в виде положительного целого числа. Для получения информации об отношении между Sample time и Samples per frame, смотрите Демонстрационную Синхронизацию.
Чтобы включить этот параметр, очистите Output variable-size signals.
Типы данных: double
Reset on nonzero input
— Сбросьте на ненулевом входеВыберите этот параметр, чтобы добавить Rst
входной порт. Для получения дополнительной информации смотрите Поведение Сброса.
Enable bit-packed outputs
— Включите побитно упакованные выходные параметрыВыберите этот параметр, чтобы сделать Number of packed bits и параметры Interpret bit-packed values as signed доступными.
Number of packed bits
— Количество упакованных битовКоличество упакованных битов в виде целого числа в области значений [1,32].
Чтобы включить этот параметр, выберите Enable bit-packed outputs.
Типы данных: double
Interpret bit-packed values as signed
— Интерпретируйте побитно упакованные значения, как подписаноИнтерпретируйте побитно упакованные значения как значения данных целого числа со знаком, когда выбрано или значения данных беззнаковых целых чисел, когда очищено. Когда выбрано, 1 в старшем значащем бите (знаковый бит) указывает на отрицательную величину.
Чтобы включить этот параметр, выберите Enable bit-packed outputs.
Output data type
— Тип выходных данныхdouble
(значение по умолчанию) | boolean
| Smallest unsigned integer
Выходные данные вводят в виде double
, boolean
, или Smallest unsigned integer
.
Когда Enable bit-packed outputs очищен, тип выходных данных может быть задан как double
, boolean
, или Smallest unsigned integer
. Когда параметр Output data type устанавливается на Smallest unsigned integer
, тип выходных данных выбран на основе настроек, используемых в панели Hardware Implementation диалогового окна Configuration Parameters модели. Если ASIC/FPGA
выбран в панели Hardware Implementation, выходные данные вводят ufix(1)
= идеальный минимальный однобитный размер. Для всех других выборов это - беззнаковое целое с самым маленьким доступным размером слова, достаточно большим, чтобы соответствовать одному биту, обычно соответствуя размеру char (например, uint8
).
Когда Enable bit-packed outputs выбран, тип выходных данных может быть задан как double
или Smallest unsigned integer
. Когда параметр Output data type устанавливается на Smallest unsigned integer
, тип выходных данных выбран на основе Interpret bit-packed values as signed и параметров Number of packed bits и настроек, используемых в панели Hardware Implementation диалогового окна Configuration Parameters модели. Если ASIC/FPGA
выбран в панели Hardware Implementation, типом выходных данных является идеальный минимальный n битный размер, такой как sfix(n)
или ufix(n)
, на основе параметра Interpret bit-packed values as signed. Для всех других выборов это - целое число со знаком или беззнаковое целое с самым маленьким доступным размером слова, достаточно большим, чтобы соответствовать битам n.
Типы данных |
|
Многомерные сигналы |
|
Сигналы переменного размера |
|
Сдвиговый регистр линейной обратной связи (LFSR), реализованный как простой генератор сдвигового регистра (SSRG), используется, чтобы сгенерировать псевдошумовые последовательности. Этот тип сдвигового регистра также известен как реализацию Фибоначчи. Для примера смотрите Генерацию Псевдошумовой последовательности Модели С Линейным Сдвиговым регистром Обратной связи.
Параметр Generator Polynomial определяет связи обратной связи сдвигового регистра. Это - примитивный бинарный полином в z, g rzr+gr–1zr–1+gr–2zr–2 +... +g0. Для коэффициента, g k =0 к r, коэффициент gk равняется 1, если существует связь с k-ого регистра на сумматор. Ведущий термин, gr и постоянный термин, g 0, параметра Generator Polynomial должны быть 1, потому что полином должен быть примитивным. Параметр Initial states задает начальные значения регистров. Например, следующая таблица указывает на два набора значений параметров, которые соответствуют полиному генератора p (z) = z 8 + z 2 + 1.
Количество | Пример 1 | Пример 2 |
---|---|---|
Generator polynomial | g1 = [1 0 0 0 0 0 1 0 1]
| g2 = [8 2 0]
|
Степень полинома генератора | 8, который является length(g1)-1
| 8 |
Initial states | [1 0 0 0 0 0 1 0]
| [1 0 0 0 0 0 1 0]
|
На каждом временном шаге все регистры r в генераторе обновляют свои значения согласно значению входящей стрелы к сдвиговому регистру. Сумматоры выполняют сложение по модулю 2. Выход LFSR отражает сумму всех связей в векторе маски m.
Параметр Output mask vector (or scalar shift value), m, определяет сдвиг начальной точки псевдошумовой последовательности. Для получения дополнительной информации смотрите Начальную точку Псевдошумовой последовательности Перемены.
Чтобы переключить начальную точку псевдошумовой последовательности, задайте параметр Output mask vector (or scalar shift value) как:
Целое число, представляющее длину сдвига.
Установка Output mask vector (or scalar shift value) по умолчанию 0 не соответствует никакому сдвигу. Как проиллюстрировано в схеме сдвигового регистра LFSR в Простом Генераторе Сдвигового регистра, нет никакого сдвига, когда единственная связь приезжает, стрела пометила m 0.
Эта таблица показывает сдвиг, который происходит, когда вы устанавливаете Output mask vector (or scalar shift value) на 0 по сравнению с положительным целочисленным d.
T = 0 | T = 1 | T = 2 | ... | T = d | T = d +1 | |
---|---|---|---|---|---|---|
Shift = 0 | x0 | x1 | x2 | ... | xd | x d +1 |
Shift = d | xd | xd+1 | x d +2 | ... | x 2d | x 2d+1 |
Бинарный вектор, длина которого равна степени полинома генератора. Схема сдвигового регистра LFSR в Простом Генераторе Сдвигового регистра показывает Output mask vector (or scalar shift value), заданный как вектор маски, m. Бинарный вектор должен иметь элементы N, где N является степенью полинома генератора. Чтобы вычислить вектор маски, используйте shift2mask
функция.
Бинарный вектор соответствует полиному в z, m r –1zr–1 + m r –2zr–2 +... + m 1z + m 0, степени в большей части r –1. Вектор маски, которые соответствуют сдвигу d, является вектором, который представляет m (z) = zd g по модулю (z), где g (z) является полиномом генератора.
Например, если степень полинома генератора равняется 4, то вектором маски, который соответствует d = 2, является [0 1 0 0]
, который представляет полиномиальный m (z) = z 2.
Чтобы сбросить последовательность генератора, необходимо сначала выбрать Reset on nonzero input, чтобы добавить Rst
входной параметр. Предположим что блок PN Sequence Generator выходные параметры [1 0 0 1 1 0 1 1]
когда нет никакого сброса. Следующая таблица показывает эффект на блоке PN Sequence Generator выход для обозначенных значений свойств.
Сбросьте свойства сигнала | Блок PN Sequence Generator | Сбросьте сигнал Выходной сигнал | |
---|---|---|---|
Никакой сброс | Sample time = Samples per frame = Rst = | Sample time = Samples per frame = Out = |
|
Скалярный сигнал сброса | Sample time = Samples per frame = Rst = | Sample time = Samples per frame = |
|
Векторный сигнал сброса | Sample time = Samples per frame = Rst = | Sample time = Samples per frame = |
Ни для какого случая сброса последовательность выводится без того, чтобы быть сброшенным. Для скалярных и векторных случаев сигнала сброса сброс сигнализирует о [0 0 0 1 0 0 0 0]
вводится к Rst
порт. Последовательность выход сбрасывается на уровне четвертого бита, потому что четвертый бит сигнала сброса является 1 и Sample time, равняется 1.
Для выходных параметров переменного размера блок только поддерживает скалярные входные параметры сигнала сброса.
Чтобы сгенерировать максимальную последовательность длины для полинома генератора, который имеет степень r, устанавливает Generator polynomial на значение из следующей таблицы. Максимальная длина последовательности 2r – 1.
r | Полином генератора | r | Полином генератора | r | Полином генератора | r | Полином генератора |
---|---|---|---|---|---|---|---|
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].
Время между выходными обновлениями равно продукту Samples per frame и Sample time. Например, если Sample time и Samples per frame равняются один, блок выводит выборку каждую секунду. Если Samples per frame увеличен до 10, то вектор 10 на 1 выводится каждые 10 секунд. Это гарантирует, что эквивалентная норма выработки не зависит от параметра Samples per frame.
Поведение изменяется в R2020a
Начиная в R2020a, Simulink® больше не позволяет вам использовать версию блока PN Sequence Generator, доступную перед R2015b.
Существующие модели автоматически обновляются, чтобы загрузить версию блока PN Sequence Generator, о которой объявляют в Исходных блоках выходные системы координат непрерывных выборок времени, но не используют атрибут системы координат в Информации о релизах R2015b. Для получения дополнительной информации о передаче блока см. Передающие Таблицы (Simulink).
[1] Proakis, Джон Г., Цифровая связь. 3-й редактор Нью-Йорк. Макгроу Хилл, 1995.
[2] Ли, J. S. и Л. Э. Миллер. Руководство системного проектирования CDMA. Бостон и Лондон. Дом Artech, 1998.
[3] Golomb, S.W. Последовательности сдвигового регистра. Лагуна-Хиллз. Эгейский парк Press, 1967.
HDL Coder™ обеспечивает дополнительные параметры конфигурации, которые влияют на реализацию HDL и синтезируемую логику.
Этот блок имеет одну, архитектуру HDL по умолчанию.
ConstrainedOutputPipeline | Количество регистров, чтобы поместить при выходных параметрах путем перемещения существующих задержек в рамках проекта. Распределенная конвейеризация не перераспределяет эти регистры. |
InputPipeline | Количество входных настроек канала связи, чтобы вставить в сгенерированный код. Распределенная конвейеризация и ограниченная выходная конвейеризация могут переместить эти регистры. |
OutputPipeline | Количество выходных настроек канала связи, чтобы вставить в сгенерированный код. Распределенная конвейеризация и ограниченная выходная конвейеризация могут переместить эти регистры. |
Можно выбрать Input port
как Output mask source на блоке. В этом случае, Mask
входной сигнал должен быть вектором типа данных ufix1
.
Если вы выбираете Reset on nonzero input, вход к Rst
порт должен иметь тип данных Boolean
.
Выходные параметры типа double
не поддержаны для генерации HDL-кода. Все другие выходные типы (включая побитно упакованные выходные параметры) поддерживаются.
Вы не можете сгенерировать HDL для этого блока в Resettable Synchronous Subsystem.
Вы не можете сгенерировать HDL для этого блока в Triggered Subsystem, если опция Use trigger signal as clock выбрана. Смотрите Используя Инициированные Подсистемы для генерации HDL-кода (HDL Coder).
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.