Буферная входная последовательность к меньшему или большему формату кадра
DSP System Toolbox / управление Сигнала / Буферы
Блок Buffer всегда выполняет основанную на системе координат обработку. Блок перераспределяет данные в каждом столбце входа, чтобы произвести выход с различным форматом кадра. Буферизация сигнала к большему формату кадра дает к выходу с более медленной частотой кадров, чем вход. Например, рассмотрите этот рисунок для скалярного входа.
Буферизация сигнала к меньшему формату кадра дает к выходу с более быстрой частотой кадров, чем вход. Например, рассмотрите этот рисунок скалярного выхода.
Блок координирует выходной формат кадра и частоту кадров неналожения буферов, таким образом, что период расчета сигнала является тем же самым в обоих ввод и вывод: Tso = Tsi.
Этот блок поддерживает инициированные подсистемы, когда уровни ввода и вывода блока являются тем же самым.
Port_1
— Входной сигналЧтобы буферизовать одноканальные сигналы, введите скаляр или вектор-столбец. Чтобы буферизовать многоканальные сигналы, введите вектор-строку или матрицу. Чтобы буферизовать одноканальные сигналы, введите скаляр или вектор-столбец размера Mi-by-1, где Mi является размером входного кадра.
Типы данных: single
| double
| int8
| int16
| int32
| uint8
| uint16
| uint32
| Boolean
| fixed point
Поддержка комплексного числа: Да
Port_1
— Выходной сигналБуферизированный входной сигнал, возвращенный как вектор или матрица.
Когда вход является одноканальным сигналом:
1 на 1 (скаляр) — Выходом является Mo-by-1 вектор.
Mi-by-1 (вектор-столбец) — Выход является Mo-by-1 вектор.
где
Mi — Размер входного кадра
Mo — Значение параметра Output buffer size
Периодом входного кадра является Mi · Tsi, где Tsi является входным периодом расчета. Выходной период системы координат , где L является значением параметра Buffer overlap, и СИ T является входным периодом расчета. Когда вы устанавливаете параметр Buffer overlap на M o – 1, выходной период системы координат равняется входному периоду расчета.
Когда вход является многоканальным сигналом:
1 N — Выходом является Mo-by-N матрица.
Mi-by-N — Выходом является Mo-by-N матрица.
где
N Количество каналов в сигнале
Mi — Период входного кадра
M o является значением параметра Output buffer size и может быть больше или меньше, чем размер входного кадра, Mi. Буфера блоков каждый вход N образовывают канал независимо.
Периодом входного кадра является Mi · Tsi. Выходной период системы координат , который равняется периоду расчета последовательности, когда Buffer overlap . Таким образом выходной период расчета Tso связан с входным периодом расчета Tsi
Выход имеет совпадающий тип данных и сложность как вход
Типы данных: single
| double
| int8
| int16
| int32
| uint8
| uint16
| uint32
| Boolean
| fixed point
Поддержка комплексного числа: Да
Output buffer size (per channel)
— Buffer size
(значение по умолчанию) | положительное целое числоЗадайте количество последовательных выборок, Mo, от каждого канала, чтобы буферизовать в выходную систему координат.
Типы данных: double |
int8
| int16
| int32
| uint8
| uint16
| uint32
Buffer overlap
— Буферное перекрытие
(значение по умолчанию) | целое числоЗадайте количество выборок, L, который задает сумму перекрытия или underlap в каждой последовательной выходной системе координат.
Чтобы перекрыть данные в буфере, задайте значение L в области значений , где Mo является значением параметра Output buffer size. Блок берет выборки L (строки) из текущей производительности и повторяет их в следующем выходе. В случаях перекрытия блок получает новые входные выборки прежде, чем распространить буферизированные данные к выходу.
Когда , вы буферизуете сигнал с underlap. Блок отбрасывает выборки входа L после буферных заливок и выводит буфер с периодом , который более длинен, чем в случае нулевого перекрытия.
Выходной период системы координат , который равняется входному периоду расчета последовательности, Tsi, когда Buffer overlap .
Типы данных: double |
int8
| int16
| int32
| uint8
| uint16
| uint32
Initial conditions
— Начальный выход
(значение по умолчанию) | скаляр | вектор | матрицаЗадайте значение начального выхода блока, в случаях ненулевой задержки, как скаляр, вектор или матрица.
Для всех случаев однозадачной операции (Simulink Coder) кроме перечисленных в Определяющей задачу для нуля Задержке, буфер блока Buffer инициализируется к значению (значениям), заданному параметром Initial conditions. Блок читает из этого буфера, чтобы сгенерировать первый D выборки выхода, где
Размерности параметра Initial conditions зависят от Buffer overlap, L, и является ли вход одноканальным или многоканальным:
Когда , параметр Initial conditions должен быть скаляром.
Когда , параметр Initial conditions может быть скаляром, или это может быть вектор с любым из этих ограничений:
Для одноканальных входных параметров параметр Initial conditions может быть вектором длины Mo, если Mi равняется 1 или вектору длины Mi, если Mo равняется 1.
Для многоканальных входных параметров параметр Initial conditions может быть вектором длины Mo * N, если Mi равняется 1 или вектору длины Mi * N, если Mo равняется 1.
Для всех многозадачных операций (Simulink Coder) используйте rebuffer_delay
функция, чтобы вычислить точную задержку выборок, которые блок Buffer вводит для данной комбинации buffer size и буферного перекрытия.
Для общей буферизации между произвольными форматами кадра параметр Initial conditions должен быть скаляром, который затем повторяется через все элементы начального выхода (выходов). Однако в особом случае, где вход является 1 N вектором-строкой, и выходом блока является Mo-by-N матрица, Initial conditions может быть:
Mo-by-N матрица
Вектор длины-Mo, который будет повторен через все столбцы начального выхода (выходов)
Скаляр, который будет повторен через все элементы начального выхода (выходов)
В особом случае, где выход является 1 N вектором-строкой, который является результатом освобождения буфера Mi-by-N матрица, Initial conditions может быть:
Вектор, содержащий выборки Mi, чтобы вывести последовательно для каждого канала во время первых шагов расчета Mi
Скаляр, который будет повторен через все элементы начального выхода (выходов)
Для получения дополнительной информации о задержке и режимах управления задачами Simulink®, смотрите Избыточную Алгоритмическую Задержку (Определяющий задачу для Задержки) и Основанное на времени Планирование и Генерация кода (Simulink Coder).
Типы данных: single
| double
| int8
| int16
| int32
| uint8
| uint16
| uint32
| Boolean
| fixed point
Поддержка комплексного числа: Да
Типы данных |
|
Прямое сквозное соединение |
|
Многомерные сигналы |
|
Сигналы переменного размера |
|
Обнаружение пересечения нулем |
|
Определяющая задачу для нуля задержка означает, что первая входная выборка, полученная в t = 0, появляется как первая выходная выборка. В однозадачном режиме Simulink (Simulink Coder) блок Buffer имеет определяющую задачу для нуля задержку для этих особых случаев:
Скалярный ввод и вывод () с нулевым или отрицательным Buffer overlap ()
Размер входного кадра является целочисленным кратным выходной формат кадра
где k является целым числом с нулевым Buffer overlap (); известные случаи этого включают:
Любой размер входного кадра Mi со скалярным выходом () и обнулите Buffer overlap ()
Равные форматы кадра ввода и вывода () с нулевым Buffer overlap ()
Блок Buffer не может использоваться в активированной подсистеме при следующих условиях:
В многоскоростной, многозадачной среде
Когда параметр Buffer overlap устанавливается на отрицательную величину
Блок Buffer имеет внутренний резервуар, который временно хранит данные. Когда блок Buffer используется в активированной подсистеме, существует возможность, что резервуар может переполниться или недогрузка. Блок реализует гарантии против этих случаев.
Переполнитесь происходит, когда больше данных вводит буфер, чем, что это может содержать. Например, рассмотрите буферизацию скалярного входа к системе координат размера три с буфером, который принимает вход каждую секунду и выходные параметры каждые три секунды. Если вы помещаете этот буфер в активированной подсистеме, которая отключается каждые три секунды в t = 3 с, t = 6 с, и так далее, буфер накапливает данные в своем внутреннем резервуаре не имея возможности, чтобы опорожнить его. Это условие приводит к переполнению.
Недогрузка происходит, когда буфер исчерпывает данные, чтобы вывести. Например, снова рассмотрите буферизацию скалярного входа к формату кадра три с буфером, который принимает вход каждую секунду и выходные параметры каждые три секунды. Если вы помещаете этот буфер в активированной подсистеме, которая отключена в t = 10-е, t = 11, t = 13, t = 14, t = 16 и t = 17, его внутренний резервуар становится истощенным, и нет никаких данных, чтобы вывести в t = 18. Это условие приводит к недогрузке.
Чтобы защитить от переполнения или недогрузки, блок Buffer ведет учет объема данных в его внутреннем резервуаре. Когда блок Buffer считывает данные, объем данных в его резервуаре повышается. Когда блок Buffer выводит данные, объем данных в его резервуаре понижается. Чтобы защитить от переполнения, самые старые выборки в резервуаре отбрасываются каждый раз, когда объем данных в резервуаре больше, чем фактический buffer size. Чтобы защитить от недогрузки, новые выборки повторяются каждый раз, когда выход должен и в резервуаре нет никаких данных.
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.