Сгенерируйте псевдонозную последовательность
Communications Toolbox/Источники связи/Генераторы последовательности
Поддержка HDL-кода Communications Toolbox/Comm-источники
Блок Псевдошумовая Последовательность Generator генерирует последовательность псевдослучайных двоичных чисел с помощью регистра сдвига с линейной обратной связью (LFSR). Псевдонозные последовательности обычно используются для псевдослучайной скремблирования и в системах с расширением спектра с прямой последовательностью. Дополнительные сведения см. в разделе Дополнительные сведения.
Эти значки показывают блок с включенными всеми портами.
Mask
- ВыходВыход маску, чтобы задержать псевдошумовую последовательность от начального времени, заданную как двоичный вектор с N элементами. N является степенью полинома генератора.
Чтобы включить этот порт, установите Output mask source равным Input port
.
Типы данных: double
| uint8
| ufix1
oSiz
- Размер выходного сигналаВыходной размер для выходных сигналов переменного размера, заданный как целое число. Для получения информации о сигналах переменного размера смотрите Основы сигнала переменного размера (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) =
z8 + z
2 + 1.
Типы данных: double
| char
Initial states
- Начальные состояния регистра сдвига[0 0 0 0 0 1]
(по умолчанию) | двоичный вектор-строкаНачальные состояния регистра сдвига, заданные как двоичный вектор-строка длины 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
- Максимальный размер выходного сигнала[10 1]
(по умолчанию) | двухэлементный вектор-строкаМаксимальный выходной размер, заданный как двухэлементный вектор-строка, который обозначает максимальный выходной размер для блока. Второй элемент вектора должен быть 1
.
Пример: [10 1]
выдает сигнал максимального выхода размера 10 на 1.
Чтобы включить этот параметр, выберите Output variable-size signals и установите Maximum output size source на Dialog parameter
.
Типы данных: double
Sample time
- Вывод шага расчета1
(по умолчанию) | -1 | положительная скалярная величинаВывод шага расчета, заданный как -1
или положительная скалярная величина, которая представляет время между каждой выборкой сигнала выхода. Если для Sample time задано значение -1
, шаг расчета наследуется от нисходящего потока. Для получения информации о связи между Sample time и Samples per frame, смотрите
Sample Timing.
Пример: 1
задает значение шага расчета 1 секунду.
Чтобы включить этот параметр, очистите Output variable-size signals.
Типы данных: double
Samples per frame
- Выборки по системам координат1
(по умолчанию) | положительное целое числоВыборки на систему координат в одном канале выходного сигнала, заданные как положительное целое число. Для получения информации о связи между Sample time и Samples per frame, смотрите Sample Timing.
Чтобы включить этот параметр, очистите Output variable-size signals.
Типы данных: double
Reset on nonzero input
- Сброс на ненулевом входеВыберите этот параметр, чтобы добавить Rst
входной порт. Для получения дополнительной информации см. Раздел «Сброс поведения».
Enable bit-packed outputs
- Включите битовые выходыВыберите этот параметр, чтобы сделать доступными Number of packed bits и Interpret bit-packed values as signed параметры.
Когда этот параметр выбран, объект выводит вектор-столбец длины M, которая содержит наиболее значимые битовые (MSB) первые целочисленные представления битовых слов P длины. M - количество выборок на систему координат, заданное в параметре Samples per frame. P - размер битовых слов, заданный в параметре Number of packed bits.
Примечание
Первый бит слева в битовом слове содержит самый значительный бит для целочисленного представления.
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 диалогового окна Параметры конфигурации модели. Если 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 диалогового окна Параметры конфигурации модели. Если ASIC/FPGA
выбран на панели Hardware Implementation, тип выходных данных является идеальным минимальным размером n -бит, таким как sfix(n)
или ufix(n)
, на основе параметра Interpret bit-packed values as signed. Для всех других вариантов выбора это целое число со знаком или беззнаком с наименьшим доступным размером слова, достаточной для соответствия n битам.
Типы данных |
|
Многомерные сигналы |
|
Сигналы переменного размера |
|
Регистр сдвига с линейной обратной связью (LFSR), реализованный как генератор простого регистра сдвига (SSRG), используется для генерации псевдошумовые последовательности. Этот тип регистра сдвига также известен как реализация Фибоначчи. Для получения примера смотрите Модель Псевдошумовой последовательности Генерации С Линейной Обратной Связью Сдвига Регистр.
Параметр Generator Polynomial определяет связи обратной связи регистра сдвига. Это примитивный двоичный полином в z, g r zr+ g r-1 zr–1+ <reservedrangesplaceholder2> <reservedrangesplaceholder1>-2 <reservedrangesplaceholder0>r–2+... + <reservedrangesplaceholder10> 0. Для коэффициента, g k = 0 к r, коэффициент gk равен 1, если существует связь от k-го регистра к сумматору. Начальный член, gr и постоянный член, g 0, параметра Generator Polynomial должны быть 1, потому что полином должен быть примитивным. Параметр Initial states задает начальные значения регистров. Для примера в следующей таблице указаны два набора значений параметров, которые соответствуют полиному генератора p (z) = z8 + z2 + 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 | <reservedrangesplaceholder0> 1 | <reservedrangesplaceholder0> 2 | ... | xd | <reservedrangesplaceholder1> <reservedrangesplaceholder0> +1 |
Shift = d | xd | xd+1 | <reservedrangesplaceholder1> <reservedrangesplaceholder0> +2 | ... | <reservedrangesplaceholder1> 2 <reservedrangesplaceholder0> | <reservedrangesplaceholder1> 2 <reservedrangesplaceholder0> +1 |
Двоичный вектор, длина которого равна степени полинома генератора. Схема регистра сдвига LFSR в генераторе простых регистров сдвига показывает Output mask vector (or scalar shift value) заданную в виде вектора маски, m. Двоичный вектор должен иметь N элементов, где N является степенью полинома генератора. Чтобы вычислить вектор маски, используйте shift2mask
функция.
Двоичный вектор соответствует полиному в z, m r -1 zr–1 + <reservedrangesplaceholder2> <reservedrangesplaceholder1>-2 <reservedrangesplaceholder0>r–2 +... + m 1 z + m 0 степени самое большее r -1. Вектор-маска, который соответствует сдвигу d, является вектором, который представляет m (z) = zd по модулю g (z), где g (z) является полиномом генератора.
Для примера, если степень полинома генератора равна 4, то маска вектора, которая соответствует d = 2, [0 1 0 0]
, который представляет полином m (z) = z2.
Чтобы сбросить последовательность генераторов, необходимо сначала выбрать Reset on nonzero input, чтобы добавить Rst
вход. Предположим, что блок Псевдошумовая Последовательность Generator выводит [1 0 0 1 1 0 1 1]
если сброса нет. В следующей таблице показан эффект на выходе блока Псевдошумовая Последовательность 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] |
Для получения дополнительной информации о строениях сдвигового регистра, которые представляют эти полиномы, смотрите Digital Communications by John Proakis. [1].
Время между обновлениями выхода равно продукту Samples per frame и Sample time. Для примера, если Sample time и Samples per frame равны единице, блок выводит выборку каждую секунду. Если Samples per frame увеличено до 10, то вектор 10 на 1 выводится каждые 10 секунд. Это гарантирует, что эквивалентная скорость выхода не зависит от параметра Samples per frame.
Поведение изменено в R2020a
Начиная с R2020a, Simulink® больше не позволяет использовать версию блока Псевдошумовая Последовательность Generator, доступную до R2015b.
Существующие модели автоматически обновляются, чтобы загрузить версию блока Псевдошумовой последовательности Generator, объявленную в Исходных блоках выхода кадрах смежных временных выборок, но не используйте атрибут кадра в R2015b Информации о релизах. Для получения дополнительной информации о переадресации блоков смотрите Таблицы переадресации (Simulink).
[1] Proakis, John G. Digital Communications. 3-й ред. Нью-Йорк: McGraw Hill, 1995.
[2] Ли, Дж. С. и Л. Э. Миллер. Руководство по системному проектированию CDMA. Бостон и Лондон. Дом Артека, 1998.
[3] Golomb, S.W. Shift Register Sequences. Лагуна Хилс. Eegean Park Press, 1967.
HDL Coder™ предоставляет дополнительные опции строения, которые влияют на реализацию HDL и синтезированную логику.
Этот блок имеет одну архитектуру HDL по умолчанию.
ConstrainedOutputPipeline | Количество регистров для размещения на выходах путем перемещения существующих задержек в рамках вашего проекта. Распределённая конвейеризация не перераспределяет эти регистры. Значение по умолчанию является |
InputPipeline | Количество входных этапов конвейера для вставки в сгенерированный код. Распределённая конвейеризация и ограниченная выходная конвейеризация могут перемещать эти регистры. Значение по умолчанию является |
OutputPipeline | Количество выходных этапов конвейера для вставки в сгенерированный код. Распределённая конвейеризация и ограниченная выходная конвейеризация могут перемещать эти регистры. Значение по умолчанию является |
Можно выбрать Input port
как значение, Output mask source на блоке. В этом случае Mask
входной сигнал должен быть вектором типа данных ufix1
.
Если вы выбираете Reset on nonzero input, вход в Rst
порт должен иметь тип данных Boolean
.
Выходы type double
не поддерживаются для генерации HDL-кода. Поддерживаются все другие типы выхода (включая битовые выходы).
Вы не можете сгенерировать HDL для этого блока внутри Resettable Synchronous Subsystem (HDL Coder).
Вы не можете сгенерировать HDL для этого блока внутри Triggered Subsystem, если выбрана опция Use trigger signal as clock. См. Использование триггируемых подсистем для генерации HDL-кода (HDL Coder).
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.