Cumulative Product

Совокупное произведение элементов канала, столбца или строки

Библиотека

Математические функции/математические операции

dspmathops

  • Cumulative Product block

Описание

Блок 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 матрицей, чья первая строка имеет элементы

y1,j(t)=u1,j(t)yM,j(tTf)

Вычисление рабочего продукта для каждого элемента входа

Когда вы устанавливаете параметр Input processing равным Elements as channels (sample based)блок обрабатывает каждый элемент матрицы входа как независимый канал. Как иллюстрируют следующие рисунок и уравнение, выход имеет следующие характеристики:

  • Первый выход аналогичен первому входу.

  • Каждый последующий выход является поэлементным произведением токового входа (время t) и предыдущего выхода (время t - Ts, где Ts является периодом дискретизации).

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

Учитывая M -by- N матричный вход, u, выход, y, является M -by- N матрицей с элементами

yi,j(t)=ui,j(t)yi,j(tTs)1iM1jN

Для удобства блок обрабатывает длинно- 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-й столбец которой имеет элементы

yi,j=k=1iuk,j     1iM

При умножении на столбцы блок обрабатывает длинно- 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-я строка которой имеет элементы

yi,j=k=1jui,k     1jN

Когда вы умножаете вдоль строк, блок обрабатывает длинно- N неориентированные векторные входы как 1-байт- N векторы-строки.

Типы данных с фиксированной точкой

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

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

Параметры

Main Tab

Multiply input along

Задайте размерность, по которому будет вычисляться совокупное произведение. Можно принять решение умножить Channels (running product), Columns, или Rows. Для получения дополнительной информации см. следующие разделы:

Input processing

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

  • Columns as channels (frame based) - Когда вы выбираете эту опцию, блок обрабатывает каждый столбец входа как отдельный канал.

  • Elements as channels (sample based) - Когда вы выбираете эту опцию, блок обрабатывает каждый элемент входа как отдельный канал.

Этот параметр доступен только, когда вы устанавливаете параметр Multiply input along равным Channels (running product).

Reset port

Определяет событие сброса, которое заставляет блок сбрасывать продукт по каналам. Скорость входа к порту Rst должна быть такой же или меньшей, чем скорость сигнала входных данных. Значение шага расчета входа к порту Rst должно быть положительным целым числом, кратным входом шага расчета. Этот параметр появляется только, когда вы устанавливаете параметр Multiply input along равным Channels (running product). Для получения дополнительной информации смотрите Сброс выполняемого продукта.

Data Types Tab

Примечание

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

Rounding mode

Задайте режим округления для операций с фиксированной точкой как один из следующих:

  • Floor

  • Ceiling

  • Convergent

  • Nearest

  • Round

  • Simplest

  • Zero

Для получения дополнительной информации смотрите режим округления.

Saturate on integer overflow

Когда вы выбираете этот параметр, блок насыщает результат своей операции с фиксированной точкой. Когда вы очищаете этот параметр, блок переносит результат своей операции с фиксированной точкой. Для получения дополнительной информации о saturate и wrap, см. Режим переполнения для операций с фиксированной точкой.

Intermediate product

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

  • Правило, которое наследует тип данных, например Inherit: Same as input

  • Выражение, которое вычисляет допустимый тип данных, например fixdt([],16,0)

Нажмите кнопку Show data type assistant, чтобы отобразить Data Type Assistant, которая помогает вам задать параметр Product output.

Дополнительные сведения см. в разделе «Установка типов данных с использованием помощника по типам данных» (Simulink).

Product output

Укажите тип выходных данных продукта. Смотрите Типы данных с фиксированной точкой и Типы данных умножения для рисунков, описывающих использование типа выходных данных продукта в этом блоке. Вы можете установить его на:

  • Правило, которое наследует тип данных, например Inherit: Same as input

  • Выражение, которое вычисляет допустимый тип данных, например fixdt([],16,0)

Нажмите кнопку Show data type assistant, чтобы отобразить Data Type Assistant, которая помогает вам задать параметр Product output.

Дополнительные сведения см. в разделе «Установка типов данных с использованием помощника по типам данных» (Simulink).

Accumulator

Задайте тип данных аккумулятора. См. типы данных с фиксированной точкой для рисунков, описывающих использование типа данных аккумулятора в этом блоке. Можно задать этот параметр как:

  • Правило, которое наследует тип данных, например Inherit: Same as input

  • Правило, которое наследует тип данных, например Inherit: Same as product output

  • Выражение, которое вычисляет допустимый тип данных, например fixdt([],16,0)

Нажмите кнопку Show data type assistant, чтобы отобразить Data Type Assistant, которая помогает вам задать параметр Accumulator.

Дополнительные сведения см. в разделе «Установка типов данных с использованием помощника по типам данных» (Simulink).

Output

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

  • Правило, которое наследует тип данных, например Inherit: Same as input

  • Правило, которое наследует тип данных, например Inherit: Same as product output

  • Выражение, которое вычисляет допустимый тип данных, например fixdt([],16,0)

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

Нажмите кнопку Show data type assistant, чтобы отобразить Data Type Assistant, которая помогает вам задать параметр Output.

Смотрите Типы Данных Управляющего Сигнала (Simulink) для получения дополнительной информации.

Minimum

Задайте минимальное значение, которое должен выдать блок. Значение по умолчанию [] (не определено). Simulink использует это значение для выполнения:

  • Проверка области значений симуляции (см. «Задание диапазонов сигнала» (Simulink))

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

Maximum

Задайте максимальное значение, которое должен выдать блок. Значение по умолчанию [] (не определено). Simulink использует это значение для выполнения:

  • Проверка области значений симуляции (см. «Задание диапазонов сигнала» (Simulink))

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

Lock data type settings against changes by the fixed-point tools

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

Поддерживаемые типы данных

Входные и выходные портыПоддерживаемые типы данных

Входной порт данных, In

  • Плавающая точка двойной точности

  • Плавающая точка с одной точностью

  • Фиксированная точка

  • 8-, 16- и 32-битные целые числа со знаком

  • 8-, 16- и 32-битные беззнаковые целые числа

Сбросьте входной порт, Rst

Все встроенные типы данных Simulink:

  • Плавающая точка двойной точности

  • Плавающая точка с одной точностью

  • Булев

  • 8-, 16- и 32-битные целые числа со знаком

  • 8-, 16- и 32-битные беззнаковые целые числа

Выходной порт

  • Плавающая точка двойной точности

  • Плавающая точка с одной точностью

  • Фиксированная точка

  • 8-, 16- и 32-битные целые числа со знаком

  • 8-, 16- и 32-битные беззнаковые целые числа

Расширенные возможности

.

Преобразование с фиксированной точкой
Разрабатывайте и моделируйте системы с фиксированной точкой с помощью Fixed-Point Designer™.

См. также

Функции

Блоки

Представлено до R2006a