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

Convolution

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

convolution

Описание

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

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

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

  • Convolution

  • Discrete FIR Filter

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

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

Порты

Вход

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

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

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

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

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

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

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

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

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

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

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

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

Выход

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

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

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

Типы данных: Float64

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

Параметры

Main

Computation domain — область вычислений
Time (по умолчанию) | Frequency | Fastest

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

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

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

Подробнее

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

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

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

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

  • Блок Convolution

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

  • Блок Convolution

  • Блок Discrete FIR Filter

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

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

  • Блок Convolution

  • Блок Discrete FIR Filter

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

  • Блок Discrete FIR Filter

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

Ни одного

  • Блок Convolution

  • Блок Discrete FIR Filter

Один или оба

  • Блок Buffer, за которым следует блок Convolution

  • Блок Discrete FIR Filter

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

Блок Convolution всегда вычисляет свертку двух многомерных входных массивов по первому измерению. Когда оба входных массива являются многомерными массивами, размер их первого измерения может отличаться, но размеры всех остальных измерений должны быть одинаковыми. Например, если — массив Mu на N на P, а — массив Mv на N на P, то на выходе получается массив (Mu+Mv−1) на N на P.

Если — матрица Mu на N, а — матрица Mv на N, то результатом будет матрица (Mu+Mv−1) на N, j-й столбец которой состоит из таких элементов

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

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

Если один вход — вектор-столбец, а другой — многомерный массив, блок независимо свертывает вектор с первой размерностью многомерного массива. Например, если — вектор-столбец Mu на 1, а — матрица Mv на N, то на выходе получается матрица (Mu+Mv−1) на N, j-й столбец которой состоит из этих элементов:

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

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

На выходе получается вектор-столбец (Mu+Mv−1) на 1.