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

Mean

Среднее значение входных данных или последовательности входных данных.

mean 1

Описание

Блок Mean вычисляет среднее значение каждой строки, столбца или вектора заданной размерности входных данных. Он также может вычислить среднее значение всего входного сигнала. Размерность можно задать с помощью параметра Find the mean value over. Блок Mean также может отслеживать среднее значение в последовательности значений входного сигнала за определенный период времени. Чтобы отследить среднее значение в последовательности значений входного сигнала, выберите параметр Running mean.

Порты

Вход

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

Блок принимает вещественные или комплексные многоканальные и многомерные входные данные, то есть входные данные размерностью на , где и .

Этот порт не имеет названия, пока вы не установите флажок для параметра Running mean и не выберете для параметра Reset port любое значение, отличное от None.

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

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

Выход

Port_1 — среднее значение по указанному измерению
скаляр | вектор | матрица | многомерный массив

Тип данных на выходе совпадает с типом данных на входе.

Если не выбран параметр Running mean, блок вычисляет среднее значение в каждой строке или столбце входных данных или по векторам указанной размерности входных данных. Он также может вычислять среднее значение по всему входу в каждый отдельный момент времени выборки. Каждый элемент выходного массива — это среднее значение соответствующего столбца, строки или всего входа. Выходной массив y зависит от настройки параметра Find the mean value over.

Рассмотрим трехмерный входной сигнал размером M на N на P. Если установить параметр Find the mean value over в значение:

  • Entire input — выходным сигналом в каждый момент времени выборки является скаляр, содержащий среднее значение входной матрицы M на N на P.

  • Each row — выходной сигнал в каждый момент времени выборки состоит из массива M на 1 на P, где каждый элемент содержит среднее значение каждого вектора по второй размерности входа. Для входной матрицы M на N выход в каждый момент времени выборки представляет собой вектор-столбец M на 1.

  • Each column — выход в каждый момент времени выборки состоит из массива 1 на N на P, где каждый элемент содержит среднее значение каждого вектора по первой размерности входа. Для матричного входа M на N выходной сигнал в каждый момент времени выборки — вектор 1 на N строк. В этом режиме блок рассматривает неориентированные векторные входы длины M как векторы M на 1 столбцов.

  • Specified dimension — выход в каждый момент времени выборки зависит от значения параметра Dimension. Если вы установите значение параметра Dimension равным 1, выход будет таким же, как при выборе параметра Each column. Если задать параметру Dimension значение 2, вывод будет таким же, как при выборе параметра Each row. Если установить параметру Dimension значение 3, то на выходе в каждый момент времени выборки будет матрица M на N, содержащая среднее значение каждого вектора по третьему измерению входных данных.

При установленном флажке Running mean блок отслеживает среднее значение каждого канала во временной последовательности входов. В этом режиме необходимо также указать значение параметра Input processing:

  • Elements as channels (sample based) — блок рассматривает каждый элемент входного сигнала как отдельный канал. Для трехмерного входного сигнала размером M на N на P блок выводит массив M на N на P. Каждый элемент на выходе содержит среднее значение элемента для всех входов с момента последнего сброса. Когда происходит событие сброса, текущее среднее значение в текущем кадре сбрасывается на элемент .

  • Columns as channels (frame based) — блок рассматривает каждый столбец входа как отдельный канал. Эта опция не поддерживает N-мерный входной сигнал, где N > 2. Для двумерного входного сигнала размером M на N блок выводит матрицу M на N. Каждый элемент выходного сигнала содержит среднее значение значений в j-м столбце всех входов с момента последнего сброса, до элемента текущего входа включительно.

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

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

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

Параметры

Main

Find the mean value over — размерность, по которой блок вычисляет среднее значение
Each column (по умолчанию) | Entire input | Each row | Specified dimension
  • Each column — блок выводит среднее значение по каждому столбцу.

  • Entire input — блок выводит среднее значение по каждой строке.

  • Each row — блок выводит среднее значение по всему входу.

  • Specified dimension — блок выводит среднее значение по размерности, указанной в параметре Dimension.

Dimension — размерность
1 (по умолчанию) | скаляр

Задайте размерность (отсчитываемое от единицы значение) входного сигнала, по которому вычисляется среднее значение. Значение этого параметра должно быть больше 0 и меньше количества размерностей во входном сигнале.

Зависимости

Чтобы использовать этот параметр, задайте для параметра Find the mean value over значение Specified dimension.

Signal Attributes

Rounding mode — режим округления
Floor (по умолчанию) | Ceiling | Convergent | Nearest | Round | Simplest | Zero

Выберите режим округления для операций с фиксированной точкой. Вы можете выбрать:

  • Floor — округляет как положительные, так и отрицательные числа до отрицательной бесконечности.

  • Ceiling — округляет как положительные, так и отрицательные числа до положительной бесконечности.

  • Convergent — округляет число до ближайшего представимого значения. В случае, если дробная часть числа оканчивается на 5, число округляется до ближайшего четного целого числа.

  • Nearest — округляет число до ближайшего представимого значения. В случае, если дробная часть числа оканчивается на 5, число округляется до ближайшего четного целого числа.

  • Round — округляет число до ближайшего представимого значения. В случае, если дробная часть числа оканчивается на 5, положительные числа округляются до положительной бесконечности и отрицательные числа до отрицательной бесконечности.

  • Simplest — автоматически выбирает между округлением Floor и округлением Zero, чтобы сгенерировать код округления, который является максимально эффективным.

  • Zero — округляет число к нулю.

Параметры блока всегда округляют до ближайшего представимого значения.

Настройки Rounding mode и Saturate on integer overflow не влияют на числовые результаты, если выполняются условия:

  • Для параметра Product output установлено значение Inherit: Inherit via internal rule.

  • Для параметра Accumulator установлено значение Inherit: Inherit via internal rule.

  • Для параметра Output установлено значение Inherit: Same as accumulator.

С этими настройками типа данных блок работает в режиме полной точности.

Saturate on integer overflow — насыщение до целого при переполнении
выключено (по умолчанию) | включено

Флажок, при установке которого используется арифметика насыщения для целых чисел и чисел с фиксированной точкой: при переполнении результат автоматически заменяется максимально возможным (по модулю) для типа данных значением.

Действие Обоснование Влияние на переполнение Пример

Флажок Saturate on integer overflow установлен (включен).

Для вашей модели возможно переполнение, и вы хотите, чтобы в сгенерированном коде была явная защита от переполнения.

При переполнении результат автоматически заменяется максимально возможным (по модулю) для типа данных значением.

Максимальное значение, которое может представлять тип данных Int8 (знаковое, 8-битное целое), равно 127.

Любой результат операции с блоком, превышающий это максимальное значение, приводит к переполнению 8-битного целого числа. При установленном флажке выходной сигнал блока насыщается до 127. Аналогично, выходной сигнал блока насыщается при минимальном выходном значении -128.

Флажок Saturate on integer overflow не установлен (выключен).

Вы хотите оптимизировать эффективность вашего сгенерированного кода.

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

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

Максимальное значение, которое может представлять тип данных Int8 (знаковое, 8-битное целое), равно 127.

Любой результат операции с блоком, превышающий это максимальное значение, приводит к переполнению 8-битного целого числа. Если флажок снят, программное обеспечение интерпретирует значение, вызывающее переполнение, как Int8, что может привести к непреднамеренному результату. Например, результат блока 130 (двоичный код 1000 0010), выраженный как Int8, равен -126.

Когда вы устанавливаете этот флажок, насыщение применяется ко всем внутренним операциям в блоке, а не только к входным/выходным данным или результату.

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

Программное использование

Параметр блока

SaturateOnIntegerOverflow

Значения

выключено | включено

По умолчанию

выключено

Accumulator — тип данных аккумулятора
Inherit: Inherit via internal rule (по умолчанию) | Inherit: Same as input | fixdt([],16,0)

Accumulator задает тип данных вывода операции накопления в блоке. Вы можете установить этот параметр в следующие значения:

  • Inherit: Inherit via internal rule — блок наследует тип выходных данных произведения на основе внутреннего правила.

  • Inherit: Same as input — блок задает тип данных аккумулятора, такой же как тип входных данных.

  • fixdt(1,16,0) — блок задает автознаковый, двоичный, масштабированный тип данных с фиксированной точкой с длиной слова 16 бит и дробной длиной 0.

Output data type — тип выходных данных
Float16 | Float32 | Float64 | Int8 | Int16 | Int32 | Int64 | Int128 | UInt8 | UInt16 | UInt32 | UInt64 | UInt128 | Inherit: auto | Fixed point

Укажите тип выходных данных.

Тип может быть унаследован, указан напрямую или выражен как объект типа данных.

Программное использование

Параметр блока:

OutDataTypeStr

Значение:

Float16 | Float32 | Float64 | Int8 | Int16 | Int32 | Int64 | Int128 | UInt8 | UInt16 | UInt32 | UInt64 | UInt128 | Fixed

По умолчанию:

Float64

Output minimum — минимальное значение данных на выходе
[] (по умолчанию) | скаляр

Минимальное значение данных на выходе, по умолчанию равно [], что эквивалентно -Inf.

Это число должно быть конечным действительным двойным скалярным значением.

Если в качестве типа данных для этого блока указан объект с типом шина, не задавайте минимальное значение для данных в этом блоке. Engee игнорирует эту настройку. Вместо этого задайте минимальные значения для элементов объекта, указанного в качестве типа данных.

Engee использует это значение для выполнения:

  • Проверки диапазона моделирования.

  • Автоматического масштабирования типов данных с фиксированной точкой.

  • Оптимизации кода, который вы генерируете на основе модели. Эта оптимизация может удалить алгоритмический код и повлиять на результаты некоторых режимов моделирования.

Параметр не насыщает и не обрезает фактический выходной сигнал. Вместо этого используйте блок Saturation.

Программное использование

Параметр блока

OutMin

Значения

[ ] | скаляр

По умолчанию

[ ]

Output maximum — максимальное значение данных на выходе
[] (по умолчанию) | скаляр

Максимальное значение данных на выходе, по умолчанию равно [], что эквивалентно Inf.

Это число должно быть конечным действительным двойным скалярным значением.

Если в качестве типа данных для этого блока указан объект с типом шина, не задавайте максимальное значение для данных в этом блоке. Engee игнорирует эту настройку. Вместо этого задайте максимальные значения для элементов объекта, указанного в качестве типа данных.

Engee использует это значение для выполнения:

  • Проверки диапазона моделирования.

  • Автоматического масштабирования типов данных с фиксированной точкой.

  • Оптимизации кода, который вы генерируете на основе модели. Эта оптимизация может удалить алгоритмический код и повлиять на результаты некоторых режимов моделирования.

Параметр не насыщает и не обрезает фактический выходной сигнал. Вместо этого используйте блок Saturation.

Программное использование

Параметр блока

OutMax

Значения

[ ] | скаляр

По умолчанию

[ ]

Output data type — тип выходных данных
Float16 | Float32 | Float64 | Int8 | Int16 | Int32 | Int64 | Int128 | UInt8 | UInt16 | UInt32 | UInt64 | UInt128 | Inherit: auto | Fixed point

Укажите тип выходных данных.

Тип может быть унаследован, указан напрямую или выражен как объект типа данных.

Программное использование

Параметр блока:

OutDataTypeStr

Значение:

Float16 | Float32 | Float64 | Int8 | Int16 | Int32 | Int64 | Int128 | UInt8 | UInt16 | UInt32 | UInt64 | UInt128 | Fixed

По умолчанию:

Float64

Lock data type settings against changes by the fixed-point tools — заблокировать автоматическое масштабирование типов данных
выключено (по умолчанию) | включено

Флажок, при установке которого блокируется автоматическое масштабирование типов данных с фиксированной точкой.

Программное использование

Параметр блока

LockScale

Значения

выключено | включено

По умолчанию

выключено

Алгоритмы

Среднее

Если убрать флажок параметра Running mean и указать размерность, блок выдает результаты, идентичные функции mean, когда она вызывается как

y = mean(u,D).
  • u – входные данные.

  • D – размерность.

  • y – среднее значение.

Среднее значение по всему входу идентично вызову функции mean в виде

y = mean(u(:)).

Среднее значение комплексного входного сигнала вычисляется независимо для вещественной и мнимой компонент.

mean i1