Калькулятор свёртки

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

Дискретная свёртка
Введите каждую конечную последовательность числами через запятую.

О свёртке

Свёртка объединяет две последовательности и описывает, как один шаблон изменяет, фильтрует или перекрывает другой. Для конечных дискретных последовательностей каждый выходной отсчёт равен сумме произведений, получаемых при сдвиге одной последовательности относительно другой. Если длина первой равна m, а второй n, длина полной линейной свёртки составляет m + n - 1. Калькулятор выполняет всю операцию и показывает отсчёты от первого до последнего перекрытия. Эта операция широко применяется в цифровой обработке сигналов. Для линейной стационарной системы свёртка дискретизированного входного сигнала с импульсной характеристикой даёт выход системы. На этом основаны аудиоэквалайзеры, сглаживающие фильтры, модели эха, ядра обработки изображений и каналы связи. В теории вероятностей свёртка также даёт распределение суммы независимых случайных величин, а умножение многочленов использует тот же принцип работы с коэффициентами. Чтобы вычислить выходной отсчёт, составьте пары значений, сумма индексов которых равна его индексу, перемножьте каждую пару и сложите произведения. У краёв перекрываются лишь несколько значений, в середине участвует больше. Поддерживаются целые, дробные и отрицательные числа, что позволяет моделировать многие конечные сигналы без специальной записи. Вычисляется линейная, а не циклическая свёртка: циклическая возвращает индексы в пределы фиксированного периода и может давать другой результат. Свёртка коммутативна, поэтому перестановка входных последовательностей не меняет выход. Она также ассоциативна и дистрибутивна, что облегчает анализ каскадов фильтров и разложенных систем. Импульс из одного отсчёта со значением один служит нейтральным элементом: свёртка с ним возвращает исходную последовательность. Умножение любого входа на коэффициент умножает все выходные значения на тот же коэффициент. Используйте результат как точный список отсчётов для учебных задач, быстрой проверки фильтров или сверки ручных вычислений. Очень длинные последовательности часто обрабатывают быстрым преобразованием Фурье, но для типичных здесь коротких последовательностей прямое суммирование понятно и надёжно. Соблюдайте порядок отсчётов и явно вводите нули, если они обозначают значимые задержки.

Примеры свёртки

Входные последовательностиВыходная последовательностьИнтерпретация
[1, 2, 3] и [1, 1][1, 3, 5, 3]Скользящая сумма двух отсчётов
[1, 0, 2] и [2, 1][2, 1, 4, 2]Последовательность с нулевым отсчётом
[2, -1] и [3, 4][6, 5, -4]Поддерживаются значения со знаком

Как вычислить свёртку

  1. Введите первую последовательность в порядке отсчётов, разделяя числа запятыми.
  2. Введите вторую последовательность в том же формате.
  3. Нажмите «Вычислить свёртку», чтобы перемножить и просуммировать все допустимые перекрытия.
  4. Прочитайте полную выходную последовательность слева направо.

Частые вопросы

Какой тип свёртки вычисляет калькулятор?

Он выполняет полную дискретную линейную свёртку двух конечных последовательностей. Отсчёты не переносятся по кругу, как при циклической свёртке.

Почему выход длиннее каждого входа?

Свёртка последовательности длины m с последовательностью длины n даёт m + n - 1 отсчётов. Дополнительные отсчёты соответствуют частичным перекрытиям на обоих концах.

Можно ли вводить отрицательные и дробные числа?

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

Важен ли порядок входов?

Нет. Свёртка коммутативна, поэтому перестановка первой и второй последовательностей даёт тот же результат. Меняется трактовка сдвига, но не числовой выход.

Свёртка и корреляция — одно и то же?

Нет. Корреляция измеряет сходство при разных сдвигах и обычно иначе применяет разворот или комплексное сопряжение последовательности. Свёртка прежде всего объединяет вход с откликом системы или ядром.