Подключиться через MCP →

Введите расчет

Математическая формула

Реклама

Результатов

Круговая свёртка

31, 31, 28

Первая последовательность 1,2,3
Вторая последовательность 4,5,6
Максимальное значение 31
Минимальное значение 28

Что делает этот калькулятор

Калькулятор круговой свёртки вычисляет круговую (циклическую) свёртку двух дискретных последовательностей — одну из базовых операций в цифровой обработке сигналов (ЦОС). В отличие от линейной свёртки, круговая «замыкает» последовательности в кольцо с фиксированным периодом N. Именно это происходит, когда вы перемножаете дискретные преобразования Фурье (ДПФ) двух сигналов и выполняете обратное преобразование. Введите свои последовательности — и инструмент сразу выдаст результирующую последовательность, а заодно её максимальное и минимальное значения для быстрого анализа.

Исходные данные

  • Первая последовательность: входной сигнал x, числа через запятую (например, 1, 2, 3, 4).
  • Вторая последовательность: второй сигнал h, тоже через запятую (например, 1, 1, 1).

Если последовательности имеют разную длину, калькулятор дополняет более короткую нулями до N — длины более длинной последовательности. После этого обе считаются периодическими с периодом N.

Формула

Круговая свёртка определяется так:

$$y[n] = \sum_{k=0}^{N-1} x[k] \cdot h\big[(n - k)\bmod N\big]$$

Ключевое отличие от линейной свёртки — индекс по модулю N. Когда выражение (n − k) становится отрицательным, индекс «оборачивается» к концу последовательности, а не даёт ноль. Именно поэтому результат всегда содержит ровно N отсчётов — столько же, сколько в более длинном входном сигнале.

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

Разбор примера

Пусть x = [1, 2, 3, 4] и h = [1, 1, 1, 1] (обе длиной N = 4). Считаем каждый отсчёт результата:

  • \(y[0] = 1\cdot 1 + 2\cdot 1 + 3\cdot 1 + 4\cdot 1 = 10\)
  • \(y[1] = 1\cdot 1 + 2\cdot 1 + 3\cdot 1 + 4\cdot 1 = 10\)
  • \(y[2] = 10\), \(y[3] = 10\)

Результат: [10, 10, 10, 10], максимум 10 и минимум 10. Поскольку h состоит из одних единиц, каждый отсчёт равен сумме всех элементов x — удобная проверка на здравый смысл.

Пошаговая сетка, показывающая поотсчётное умножение и сложение для круговой свёртки
Каждый выход y[i] — это сумма произведений выровненных отсчётов, вычисляемая с циклической индексацией.

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

Чем это отличается от линейной свёртки? Линейная свёртка даёт последовательность длиной (len(x) + len(h) − 1) без «заворачивания». Круговая свёртка сохраняет длину N и возвращает «переполнение» в начало — именно так работает фильтрация на основе ДПФ.

Что делать, если последовательности разной длины? Более короткую дополняют нулями до длины N более длинной, поэтому перед свёрткой обе оказываются выровненными.

Можно ли использовать отрицательные или дробные числа? Да. Значения распознаются как десятичные дроби, поэтому записи вроде -1.5, 0.25, 3 работают без проблем.

Последнее обновление: