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

Convolution

Свертка двух входных данных.

Тип: Convolution

Путь в библиотеке:

/Signal Operations/Signal Operations/Convolution

Описание

Блок Convolution выполняет свертку первой размерности многомерного входного массива с первой размерностью многомерного входного массива . Блок также может выполнять свертку вектора-столбца с первой размерностью многомерного входного массива.

Общее уравнение для свертки имеет вид:

Для выполнения свертки двух входных сигналов подходят два блока:

Блок Convolution предполагает, что все элементы и доступны на каждом временном шаге, и вычисляет всю свертку на каждом шаге.

Блок Discrete FIR Filter можно использовать для свертки сигналов в ситуациях, когда все элементы доступны на каждом временном шаге, но — это последовательность, которая поступает в течение всего времени моделирования. При использовании блока Discrete FIR Filter свертка вычисляется только один раз.

Порты

Вход

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

Details

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

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

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

Типы данных

Float16, Float32, Float64, Int8, Int16, Int32, Int64, UInt8, UInt16, UInt32, UInt64, Bool

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

Да

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

Details

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

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

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

Типы данных

Float16, Float32, Float64, Int8, Int16, Int32, Int64, UInt8, UInt16, UInt32, UInt64, Bool

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

Да

Выход

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

Details

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

Если оба входных сигнала вещественные, то выходной сигнал вещественный. Если один или оба входных сигнала комплексные, то выходной сигнал комплексный.

Типы данных

Float64

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

Да

Параметры

Основные

# Computation domain — область вычисления
Time

Details

Установите область вычисления свертки:

Time — блок вычисляет во временной области, что минимизирует использование памяти.

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

Значения

Time

Значение по умолчанию

Time

Имя для программного использования

ComputationDomain

Настраиваемый

Нет

Вычисляемый

Нет

Дополнительно

Выбор подходящего блока свертки

Details
Вопрос Ответ Рекомендуемый блок

Сколько сверток вы собираетесь выполнить

Много сверток, по одной на каждом временном шаге

  • Блок Convolution

Одна свертка за весь период моделирования

Какова длина входных последовательностей

Обе последовательности имеют конечную длину

Одна последовательность имеет бесконечную (не предопределенную) длину

Сколько входов являются скалярными потоками

Ни одного

Один или оба

Свертка двух многомерных массивов

Details

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

Если — матрица размера на , а — матрица размера на , то результатом будет матрица размера на , -й столбец которой состоит из следующих элементов:

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

Свертка вектора-столбца с многомерным массивом

Details

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

Свертка двух векторов-столбцов

Details

Блок Convolution также принимает на вход два вектора-столбца. Если и — векторы-столбцы с длинами и соответственно, блок Convolution выполняет свертку векторов с длинами и так, что:

На выходе получается вектор-столбец длиной .