Документация Engee

Buffer

Буферизация входной последовательности до меньшего или большего размера кадра.

buffer

Описание

Блок Buffer осуществляет кадровую обработку. Блок перераспределяет данные в каждом столбце входного сигнала для получения выходного сигнала с другим размером кадра.

Буферизация сигнала до большего размера кадра приводит к тому, что на выходе получается сигнал с меньшей частотой кадров, чем на входе. Пример для скалярного входа на рисунке ниже:

buffer 1

Буферизация сигнала до меньшего размера кадра дает на выходе более высокую частоту кадров, чем на входе. Пример для скалярного выхода на рисунке ниже:

buffer 2

Порты

Вход

Port_1 — входной сигнал
скаляр | вектор | матрица

Для буферизации многоканальных сигналов вводится вектор-строка или матрица. Для буферизации одноканальных сигналов необходимо ввести скаляр или вектор-столбец размером на 1, где — размер входного кадра.

Типы данных: Float16, Float32, Float64, Int8, Int16, Int32, Int64, Int128, UInt8, UInt16, UInt32, UInt64, UInt128, Bool

Поддержка комплексных чисел: Да

Выход

Port_1 — выходной сигнал
скаляр | вектор | матрица

Буферизованный входной сигнал, возвращаемый в виде скаляра, вектора или матрицы.

Если входной сигнал одноканальный:

  • скаляр — выходной сигнал представляет собой вектор размерности на 1.

  • вектор длины — выходной сигнал представляет собой вектор на 1.

    где

    • — размер входного кадра

    • — значение параметра размера выходного буфера, если — выходной сигнал представляет собой скаляр

    Период входного кадра равен , где — период входной выборки. Период выходного кадра равен , где — значение параметра Buffer overlap. При установке параметра Buffer overlap в значение период выходного кадра равен периоду входной выборки.

Если на вход подается многоканальный сигнал:

  • матрица 1 на — выходной сигнал представляет собой матрицу размерностью на .

  • матрица на — выходной сигнал представляет собой матрицу на .

    где

    • — количество каналов в сигнале

    • — период входного кадра

    • — значение параметра Output buffer size, которое может быть больше или меньше размера входного кадра . Блок буферизует каждый из входных каналов независимо.

    Период входного кадра равен . Период выходного кадра равен , что равно периоду выборки последовательности, когда параметр Buffer overlap установлен в значение . Таким образом, период выходной выборки связан с периодом входной выборки следующим образом:

Выходные данные имеют тот же тип и сложность, что и входные.

Типы данных: Float16, Float32, Float64, Int8, Int16, Int32, Int64, Int128, UInt8, UInt16, UInt32, UInt64, UInt128, Bool

Поддержка комплексных чисел: Да

Параметры

Output buffer size (per channel) — размер буфера
64 (по умолчанию) | целое положительное число

Укажите количество последовательных выборок, , из каждого канала для буферизации в выходной кадр.

Buffer overlap — перекрытие буфера
0 (по умолчанию) | целое число

Укажите количество выборок, , которое определяет величину перекрытия или неполного перекрытия в каждом последующем выходном кадре.

Чтобы перекрыть данные в буфере, укажите значение в диапазоне , где — значение параметра Output buffer size.

Блок берет выборок (строк) из текущего выходного кадра и повторяет их в следующем выходном кадре. В случае перекрытия блок получает новых входных выборок перед распространением буферизованных данных на выход.

Когда , происходит буферизация сигнала с неполным перекрытием. Блок отбрасывает входных выборок после заполнения буфера и выводит буфер с периодом , что больше, чем в случае нулевого перекрытия.

Период выходного кадра составляет , что равно периоду выборки входной последовательности , когда значение параметра Buffer overlap равно .

Initial conditions — начальное значение
0.0 (по умолчанию) | скаляр | вектор | матрица

Укажите значение, которым инициализируется блок для случаев ненулевого времени ожидания в виде скаляра, вектора или матрицы.

Для всех случаев однозадачных операций блок Buffer инициализируется значением (значениями), указанным в параметре Initial conditions. Блок считывает данные из этого буфера для генерации первых выходных выборок, где

Размерность параметра Initial conditions зависит от Buffer overlap, , и от того, является ли вход одноканальным или многоканальным:

  • Если , то параметр Initial conditions должен быть скаляром.

  • Если , то параметр Initial conditions может быть скаляром или вектором с одним из этих ограничений:

    • Для одноканальных входов параметр начальных условий может быть вектором длины , если равно 1, или вектором длины , если равно 1.

    • Для многоканальных входов параметр Initial conditions может быть вектором длины , если равно 1, или вектором длины , если равно 1.

Для общей буферизации между кадрами произвольного размера параметр Initial conditions должен быть скаляром, который затем повторяется по всем элементам начального вывода(ов). Но, в частном случае, когда входной сигнал представляет собой вектор строк 1 на , а выход блока — матрицу на , начальными условиями могут быть:

  • Матрица на .

  • Вектор длины , повторяющийся по всем столбцам исходного выхода (выходов).

  • Скаляр, повторяющийся во всех элементах исходного вывода (выводов).

В частном случае, когда на выходе получается вектор-строка 1 на , являющийся результатом разбуферизации матрицы на , начальными условиями могут быть:

  • Вектор, содержащий выборок для последовательного вывода по каждому каналу в течение первых выборок.

  • Скаляр, который будет повторяться для всех элементов начального вывода (выводов).

Подробнее

Нулевая задержка

Нулевая задержка означает, что первая входная выборка, полученная в момент , появляется в качестве первой выходной выборки. В однозадачном режиме блок Buffer имеет нулевую задержку для этих случаев:

  • Скалярный вход и выход ( ) с нулевым или отрицательным значением параметра Buffer overlap ( ).

  • Размер входного кадра целочисленно кратен размеру выходного кадра (при нулевом значении параметра Buffer overlap ( )).

    где

    • - целое число.

      Примечательные случаи этого включают:

      • Любой размер входного кадра со скалярным выходом ( ) и нулевым значением параметра Buffer overlap ( );

      • Равные размеры входного и выходного кадра ( ) с нулевым значением параметра Buffer overlap ( ).