Згортка (математичний аналіз)

Матеріал з Вікіпедії — вільної енциклопедії.
Перейти до навігації Перейти до пошуку
Згортка двох квадратних імпульсів: результатом є імпульс трикутної форми. Одна з функцій (в даному випадку g) спочатку відображається черезз і тоді зсувається на t, результатом є . Площа під кривою, що є добутком цих фунцій і є згорткою по t. Горизонтальна вісь це для f і g, і t для
Згортка квадратного імпульсу (вхідний сигнал) з імпульсом відповіді в RC колі для отримання кривої вихідного сигналу. Інтеграл добутку — це площа жовтої ділянки.

Згортка (англ. convolution) — математична операція двох функцій та , що дозволяє отримати третю функцію:

Основною властивістю згортки є те, що фур'є-образ згортки пропорційний добутку фур'є-образів функцій.

Згортка на групах[ред. | ред. код]

Нехай група Лі, оснащена мірою Хаара , і — дві функції, визначенні на . Тоді їх згорткою називається функція

.

Властивості[ред. | ред. код]

  • Правило диференціювання:

де означає похідну функції .

де означає перетворення Фур'є функції.

Якщо є матрицею дискретного перетворення Фур'є, то

,

де - символ торцевого добутку матриць[1][2][3][4][5], означає добуток Кронекера, - символ добутку Адамара (тотожність є розвитком властивості відлікового скетча[6] ).

Застосування[ред. | ред. код]

Гаусове розмиття може використовуватись щоб отримати гладке монохромне зображення з півтонового друку

Згортки та пов'язані операції знаходять багато застосувань в науці, інженерії та математиці.

  • В обробці зображень:
Згортка в обробці зображень використовується в багатьох фільтрах, наприклад для розмиття, чи виявлення контурів.
В фотографії, несфокусована фотографія є згорткою чіткого зображення з функцією лінзи. Фотографічний термін для цього поняття - Боке.

Приклад програми[ред. | ред. код]

Нижче наведено приклад згортки, написаний на С++ :

/*
 * Розмір вихідної послідовності рівний M + N - 1 
 */
double * conv(double * x, int N, double * h, int M)
{
    double * result = new double[N + M - 1];
    memset(result, 0, sizeof(double) * (N + M - 1));

    for (int i = 0; i < N; ++i)
    {
        for (int j = 0; j < M; ++j)
        {
            result[i + j] += x[i] * h[j];
        }
    }

    return result;
}

Див. також[ред. | ред. код]

Примітки[ред. | ред. код]

  1. Slyusar, V. I. (December 27, 1996). End products in matrices in radar applications.. Radioelectronics and Communications Systems.– 1998, Vol. 41; Number 3: 50–53. 
  2. Slyusar, V. I. (1997-05-20). Analytical model of the digital antenna array on a basis of face-splitting matrix products.. Proc. ICATT-97, Kyiv: 108–109. 
  3. Slyusar, V. I. (1997-09-15). New operations of matrices product for applications of radars. Proc. Direct and Inverse Problems of Electromagnetic and Acoustic Wave Theory (DIPED-97), Lviv.: 73–74. 
  4. Slyusar, V. I. (March 13, 1998). A Family of Face Products of Matrices and its Properties. Cybernetics and Systems Analysis C/C of Kibernetika I Sistemnyi Analiz.- 1999. 35 (3): 379–384. doi:10.1007/BF02733426. 
  5. Slyusar, V. I. (2003). Generalized face-products of matrices in models of digital antenna arrays with nonidentical channels. Radioelectronics and Communications Systems 46 (10): 9–17. 
  6. Ninh, Pham; Rasmus, Pagh (2013). Fast and scalable polynomial kernels via explicit feature maps SIGKDD international conference on Knowledge discovery and data mining. Association for Computing Machinery. doi:10.1145/2487575.2487591. 

Література[ред. | ред. код]