Буферизуйте входную последовательность к меньшему или большему формату кадра
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 si - входной период дискретизации. Когда вы устанавливаете параметр Buffer overlap на M o - 1, период выходной системы координат равен периоду входной выборки.
Когда вход является многоканальным сигналом:
1-by- 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 size64
(по умолчанию) | положительное целое числоЗадайте количество последовательных выборок, Mo, из каждого канала, чтобы буферизировать в выход системы координат.
Типы данных: double
| int8
| int16
| int32
| uint8
| uint16
| uint32
Buffer overlap
- Перекрытие буфера0
(по умолчанию) | целое числоЗадайте количество выборок, L, которое задает количество перекрытия или подстановки в каждой последующей выходной системе координат.
Чтобы перекрыть данные в буфере, задайте значение L в области значений , где Mo - значение параметра Output buffer size. Блок берёт L выборки (строки) из токового вывода и повторяет их в следующем выходе. В случаях перекрытия блок приобретает новые входные выборки перед распространением буферизованных данных на выход.
Когда , вы буферизуете сигнал с помощью подстановки. Блок отбрасывает L входных выборок после того, как буфер заполняет и выводит буфер с периодом , что больше, чем в случае с нулевым перекрытием.
Период выходной системы координат , который равен периоду дискретизации входной последовательности, Tsi, когда Buffer overlap .
Типы данных: double
| int8
| int16
| int32
| uint8
| uint16
| uint32
Initial conditions
- Начальный выход0
(по умолчанию) | скалярный вектор | | матрицаЗадайте значение начального выхода блока, в случаях ненулевой задержки, как скаляр, вектор или матрица.
Для всех случаев однозадачной операции (Simulink Coder), отличных от перечисленных в Zero-Tasking Latency, буфер блока 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 должен быть скаляр, который затем повторяется для всех элементов исходных выходов (выходов ) (ов). Однако в частном случае, когда вход является вектором-строкой N 1 байт, а выход блока является матрицей Mo -by N, Initial conditions могут быть:
Матрица Mo -by N
Вектор с Mo длиной, который будет повторен во всех столбцах начальных выходов (выходов ) (ов)
Скаляр, который будет повторен во всех элементах начальных выходов (выходов ) (ов)
В частном случае, когда выход является вектором-строкой N 1 байт, что является результатом распаковки матрицы Mi -by N, Initial conditions может быть:
Вектор, содержащий Mi выборок для последовательного вывода для каждого канала во время первых < reservedrangesplaceholder0 > шагов расчета
Скаляр, который будет повторен во всех элементах начальных выходов (выходов ) (ов)
Для получения дополнительной информации о задержках и 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с и так далее, буфер накапливает данные в своем внутреннем резервуаре, не имея возможности опустошить его. Это условие приводит к переполнению.
Underrun происходит, когда у буфера заканчиваются данные для вывода. Для примера снова рассмотрите буферизацию скаляра входа в формат кадра трех раз с помощью буфера, который принимает вход каждые секунду и выходы каждые три секунды. Если поместить этот буфер в активированную подсистему, которая отключена в t = 10с, t = 11с, t = 13с, t = 14с, t = 16с и t = 17с, его внутренний резервуар станет дренированным, и нет данных для вывода в t = 18с. Это условие приводит к недооценке.
Чтобы защитить от переполнения или недокрута, блок Buffer хранит запись объема данных во внутреннем резервуаре. Когда блок Buffer считывает данные, объем данных в его резервуаре увеличивается. Когда блок Buffer выводит данные, объем данных в его резервуаре уменьшается. Для защиты от переполнения, самые старые выборки в резервуаре отбрасываются всякий раз, когда объем данных в резервуаре больше фактического buffer size. Для защиты от недоля самые последние выборки повторяются всякий раз, когда должна быть получена продукция и нет данных в резервуаре.
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.