Совокупное произведение элементов канала, столбца или строки
Математические функции/математические операции
dspmathops
Блок Cumulative Product вычисляет совокупное произведение по заданному измерению входов или по времени (текущий продукт).
Входной вход может быть вектором или матрицей.
Блок Совокупное произведение принимает векторные или матричные входы, содержащие вещественные или комплексные числа.
Опциональный порт сброса, Rst
, принимает скалярные значения, которые могут быть любым встроенным Simulink® тип данных, включая boolean
. Скорость входа к порту Rst должна быть такой же или меньшей, чем скорость сигнала входных данных. Значение шага расчета входа к порту Rst должно быть положительным целым числом, кратным входом шага расчета.
Когда вы устанавливаете параметр Multiply input along равным Channels (running product)
блок вычисляет совокупное произведение элементов в каждом входном канале. Текущий продукт текущего входа учитывает текущий продукт всех предыдущих входов. В этом режиме вы также должны задать значение для параметра Input processing. Когда вы устанавливаете параметр Input processing равным Columns as channels (frame based)
блок вычисляет текущий продукт вдоль каждого столбца текущего входа. Когда вы устанавливаете параметр Input processing равным Elements as channels (sample based)
блок вычисляет текущий продукт для каждого элемента входа в течение времени. Для получения дополнительной информации см. следующие разделы:
Когда вы устанавливаете параметр Input processing равным Columns as channels (frame based)
блок обрабатывает каждый входной столбец как независимый канал. Как иллюстрируют следующие рисунок и уравнение, выход имеет следующие характеристики:
Первая строка первого выхода совпадает с первой строкой первого входа.
Первая строка каждого последующего выхода является поэлементным произведением первой строки текущего входа (time t) и последней строкой предыдущего выхода (time t - Tf, где Tf является периодом системы координат).
Выход имеет тот же размер, размерность, тип данных и сложность, что и вход.
Учитывая M -by- N матричный вход, u, выход, y, является M -by- N матрицей, чья первая строка имеет элементы
Когда вы устанавливаете параметр Input processing равным Elements as channels (sample based)
блок обрабатывает каждый элемент матрицы входа как независимый канал. Как иллюстрируют следующие рисунок и уравнение, выход имеет следующие характеристики:
Первый выход аналогичен первому входу.
Каждый последующий выход является поэлементным произведением токового входа (время t) и предыдущего выхода (время t - Ts, где Ts является периодом дискретизации).
Выход имеет тот же размер, размерность, тип данных и сложность, что и вход.
Учитывая M -by- N матричный вход, u, выход, y, является M -by- N матрицей с элементами
Для удобства блок обрабатывает длинно- M неориентированные векторные входы как векторы M на 1 столбца при умножении по каналам. В таких случаях выход является длинно M неориентированным вектором.
Когда вы вычисляете текущий продукт, можно сконфигурировать блок, чтобы сбросить текущий продукт каждый раз, когда он обнаруживает событие сброса в необязательном Rst
порт. Скорость входа к порту Rst должна быть такой же или меньшей, чем скорость сигнала входных данных. Значение шага расчета входа к порту Rst должно быть положительным целым числом, кратным входом шага расчета. Вход в Rst
порт может относиться к логическому типу данных.
Если событие сброса происходит во время выполнения блоком обработки на основе выборки, блок инициализирует текущий выход со значениями текущего входа. Если событие сброса происходит во время выполнения блоком обработки на основе фрейма, блок инициализирует первую строку текущего выхода со значениями в первой строке текущего входа.
Параметр Reset port задает событие сброса, которое может быть одним из следующих:
None
отключает Rst
порт.
Rising edge
- Запускает операцию сброса, когда Rst
вводится одно из следующих значений:
Повышается с отрицательного значения до положительного значения или нуля
Поднимается с нуля до положительного значения, где подъем не является продолжением подъёма с отрицательного значения до нуля (см. следующий рисунок)
Falling edge
- Запускает операцию сброса, когда Rst
вводится одно из следующих значений:
Падает от положительного значения до отрицательного значения или нуля
Падает с нуля до отрицательного значения, где падение не является продолжением падения с положительного значения до нуля (см. следующий рисунок)
Either edge
- Запускает операцию сброса, когда Rst
вход является Rising edge
или Falling edge
(как описано выше)
Non-zero sample
- Запускает операцию сброса в каждый раз, когда Rst
вход не равен нулю
Примечание
Когда вы запускаете симуляции в Simulink MultiTasking
mode, сигналы сброса имеют задержку с одной выборкой. Когда блок обнаруживает событие сброса, задержка с одной выборкой происходит со скоростью порта сброса, прежде чем блок применяет сброс. Для получения дополнительной информации о задержках и режимах задачи Simulink, смотрите Избыточную алгоритмическую задержку (Задержка Задачи) и Основанное на времени Планирование и Генерация кода (Simulink Coder).
Когда вы устанавливаете параметр Multiply input along равным Columns
блок вычисляет совокупное произведение каждого столбца входа. В этом режиме совокупное произведение тока не зависит от совокупных произведений предыдущих входов.
y = cumprod(u) % Equivalent MATLAB code
Выход имеет тот же размер, размерность, тип данных и сложность, что и вход. m выходная строка является поэлементным произведением первых m входных строк.
Учитывая M -by - N вход, u, выход, y, является M -by - N матрицей, j-й столбец которой имеет элементы
При умножении на столбцы блок обрабатывает длинно- M неориентированный вектор входов как M -на-1 векторы-столбцы.
Когда вы устанавливаете параметр Multiply input along равным Rows
блок вычисляет совокупное произведение элементов строки. В этом режиме совокупное произведение тока не зависит от совокупных произведений предыдущих входов.
y = cumprod(u,2) % Equivalent MATLAB code
Выходы имеют тот же размер, размерность и тип данных, что и входы. n-й выходной столбец является поэлементным произведением первых n входных столбцов.
Учитывая M -by N матричный вход, u, выход, y, является M -by - N матрицей, i-я строка которой имеет элементы
Когда вы умножаете вдоль строк, блок обрабатывает длинно- N неориентированные векторные входы как 1-байт- N векторы-строки.
Следующая схема показывает типы данных, используемые в блоке Совокупное произведение для сигналов с фиксированной точкой.
Выход умножителя находится в типе выходных данных продукта, когда, по меньшей мере, один из входов в умножитель является вещественным. Когда оба входов в умножитель являются комплексными, результат умножения находится в типе данных аккумулятора. Для получения дополнительной информации о выполненном комплексном умножении смотрите Типы данных умножения. Можно задать типы данных аккумулятора, выхода продукта, промежуточного продукта и вывода в диалоговом окне блока, как обсуждается в параметры.
Main Tab
Задайте размерность, по которому будет вычисляться совокупное произведение. Можно принять решение умножить Channels (running product)
, Columns
, или Rows
. Для получения дополнительной информации см. следующие разделы:
Укажите, как блок должен обрабатывать вход при вычислении текущего продукта по каналам входа. Можно задать для этого параметра одну из следующих опций:
Columns as channels (frame based)
- Когда вы выбираете эту опцию, блок обрабатывает каждый столбец входа как отдельный канал.
Elements as channels (sample based)
- Когда вы выбираете эту опцию, блок обрабатывает каждый элемент входа как отдельный канал.
Этот параметр доступен только, когда вы устанавливаете параметр Multiply input along равным Channels (running product)
.
Определяет событие сброса, которое заставляет блок сбрасывать продукт по каналам. Скорость входа к порту Rst должна быть такой же или меньшей, чем скорость сигнала входных данных. Значение шага расчета входа к порту Rst должно быть положительным целым числом, кратным входом шага расчета. Этот параметр появляется только, когда вы устанавливаете параметр Multiply input along равным Channels (running product)
. Для получения дополнительной информации смотрите Сброс выполняемого продукта.
Data Types Tab
Примечание
Наследование с плавающей точкой имеет приоритет над параметрами типа данных, заданными на этой панели. Когда входы являются плавающими точками, блок игнорирует эти настройки, и все внутренние типы данных являются плавающими точками.
Задайте режим округления для операций с фиксированной точкой как один из следующих:
Floor
Ceiling
Convergent
Nearest
Round
Simplest
Zero
Для получения дополнительной информации смотрите режим округления.
Когда вы выбираете этот параметр, блок насыщает результат своей операции с фиксированной точкой. Когда вы очищаете этот параметр, блок переносит результат своей операции с фиксированной точкой. Для получения дополнительной информации о saturate
и wrap
, см. Режим переполнения для операций с фиксированной точкой.
Укажите промежуточный тип данных о продукте. Как показано в Типах данных с Фиксированной Точкой, выход умножителя переводится в промежуточный тип данных продукта, прежде чем следующий элемент входа умножается на него. Вы можете установить его на:
Правило, которое наследует тип данных, например Inherit: Same as input
Выражение, которое вычисляет допустимый тип данных, например fixdt([],16,0)
Нажмите кнопку Show data type assistant, чтобы отобразить Data Type Assistant, которая помогает вам задать параметр Product output.
Дополнительные сведения см. в разделе «Установка типов данных с использованием помощника по типам данных» (Simulink).
Укажите тип выходных данных продукта. Смотрите Типы данных с фиксированной точкой и Типы данных умножения для рисунков, описывающих использование типа выходных данных продукта в этом блоке. Вы можете установить его на:
Правило, которое наследует тип данных, например Inherit: Same as input
Выражение, которое вычисляет допустимый тип данных, например fixdt([],16,0)
Нажмите кнопку Show data type assistant, чтобы отобразить Data Type Assistant, которая помогает вам задать параметр Product output.
Дополнительные сведения см. в разделе «Установка типов данных с использованием помощника по типам данных» (Simulink).
Задайте тип данных аккумулятора. См. типы данных с фиксированной точкой для рисунков, описывающих использование типа данных аккумулятора в этом блоке. Можно задать этот параметр как:
Правило, которое наследует тип данных, например Inherit: Same as input
Правило, которое наследует тип данных, например Inherit: Same as product output
Выражение, которое вычисляет допустимый тип данных, например fixdt([],16,0)
Нажмите кнопку Show data type assistant, чтобы отобразить Data Type Assistant, которая помогает вам задать параметр Accumulator.
Дополнительные сведения см. в разделе «Установка типов данных с использованием помощника по типам данных» (Simulink).
Задайте тип выходных данных. См. типы данных с фиксированной точкой для рисунков, описывающих использование типа выходных данных в этом блоке. Вы можете установить его на:
Правило, которое наследует тип данных, например Inherit: Same as input
Правило, которое наследует тип данных, например Inherit: Same as product output
Выражение, которое вычисляет допустимый тип данных, например fixdt([],16,0)
Если оба входа являются беззнаковыми, все типы данных, включая тип выходных данных, являются беззнаковыми. Если один из входов подписан, внутренние и выходные типы данных подписываются.
Нажмите кнопку Show data type assistant, чтобы отобразить Data Type Assistant, которая помогает вам задать параметр Output.
Смотрите Типы Данных Управляющего Сигнала (Simulink) для получения дополнительной информации.
Задайте минимальное значение, которое должен выдать блок. Значение по умолчанию []
(не определено). Simulink использует это значение для выполнения:
Проверка области значений симуляции (см. «Задание диапазонов сигнала» (Simulink))
Автоматическое масштабирование типов данных с фиксированной точкой
Задайте максимальное значение, которое должен выдать блок. Значение по умолчанию []
(не определено). Simulink использует это значение для выполнения:
Проверка области значений симуляции (см. «Задание диапазонов сигнала» (Simulink))
Автоматическое масштабирование типов данных с фиксированной точкой
Выберите этот параметр, чтобы инструменты с фиксированной точкой не переопределяли типы данных, заданные в маске блока.
Входные и выходные порты | Поддерживаемые типы данных |
---|---|
Входной порт данных, |
|
Сбросьте входной порт, | Все встроенные типы данных Simulink:
|
Выходной порт |
|