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

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

Шаблон:Інші значення Зго́ртка (Шаблон:Lang-en) — математична операція двох функцій f(t) та g(t), що дозволяє отримати третю функцію:

(f*g)(t)=f(tτ)g(τ)dτ

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

Згортка на групах

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

f*g(x)=Gf(y)g(xy1)m(dy),xG.

Властивості

f*g=g*f.
f*(g*h)=(f*g)*h.
(f1+f2)*g=f1*g+f2*g,
f*(g1+g2)=f*g1+f*g2,
(af)*g=a(f*g)=f*(ag),a.
  • Правило диференціювання:
D(f*g)=Df*g=f*Dg,

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

{f(x)*g(x)}={f(x)}{g(x)}.
𝔉[f*g]=𝔉[f]𝔉[g],

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

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

𝒲(C(1)xC(2)y)=(𝒲C(1)𝒲C(2))(xy)=𝒲C(1)x𝒲C(2)y,

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

Застосування

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

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

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

Шаблон:Section-stub

Приклад програми

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

/*
 * Розмір вихідної послідовності рівний 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;
}

Див. також

Примітки

Шаблон:Reflist

Література

Шаблон:Перекласти

Шаблон:Диференційовні обчислення


Шаблон:Математика-доробити Шаблон:Інформатика-доробити Шаблон:Комп'ютерна графіка-доробити