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