Cumulative Product

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

Библиотека

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

dspmathops

Описание

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

Вход может быть вектором или матрицей.

Характеристики ввода и вывода

Допустимый вход

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

Допустимый сигнал сброса

Дополнительный порт сброса, 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), блок обрабатывает каждый входной столбец как независимый канал. Когда следующая фигура и уравнение иллюстрируют, выход имеет следующие характеристики:

  • Первая строка первого выхода совпадает с первой строкой первого входа.

  • Первая строка каждого последующего выхода является поэлементным произведением первой строки текущего входа (время t) и последней строки предыдущего выхода (время 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-by-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 режим, сигналы сброса имеют задержку с одной выборкой. Когда блок обнаруживает событие сброса, задержка с одной выборкой происходит при скорости порта сброса, прежде чем блок применит сброс. Для получения дополнительной информации о задержке и режимах управления задачами Simulink, смотрите Избыточную Алгоритмическую Задержку (Определяющий задачу для Задержки) и Основанное на времени Планирование и Генерация кода (Simulink Coder).

Умножение вдоль столбцов

Когда вы устанавливаете параметр Multiply input along на Columns, блок вычисляет совокупное произведение каждого столбца входа. В этом режиме текущее совокупное произведение независимо от совокупных произведений предыдущих входных параметров.

y = cumprod(u) % Equivalent MATLAB code

Выход имеет тот же размер, размерность, тип данных и сложность как вход. m th выходная строка является поэлементным произведением первых строк входа m.

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

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

При умножении вдоль столбцов блок обрабатывает длину-M, неориентированную на векторные входные параметры как M-by-1 вектор-столбцы.

Умножение вдоль строк

Когда вы устанавливаете параметр Multiply input along на Rows, блок вычисляет совокупное произведение элементов строки. В этом режиме текущее совокупное произведение независимо от совокупных произведений предыдущих входных параметров.

y = cumprod(u,2)						% Equivalent MATLAB code

Выход имеет тот же размер, размерность и тип данных как вход. n th выходной столбец является поэлементным произведением первых столбцов входа n.

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

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 использует это значение, чтобы выполнить:

Maximum

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

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

Выберите этот параметр, чтобы препятствовать тому, чтобы Fixed-Point Tool заменили типы данных, которые вы задаете на маске блока.

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

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

Порт ввода данных, 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