Artigos

6.3: Convolução


Dissemos que a transformação Laplace de um produto não é o produto das transformadas. No entanto, nem toda a esperança está perdida. Simplesmente temos que usar um tipo diferente de "produto". Pegue duas funções (f (t) ) e (g (t) ) definidas para (t geq 0 ) e defina a convolução3 de (f (t) ) e (g (t) ) como

[(f ast g) (t) overset { rm {def}} {=} int_0 ^ t f ( tau) g (t- tau) d tau. ]

Como você pode ver, a convolução de duas funções de (t ) é outra função de (t ).

Exemplo ( PageIndex {1} )

Tome (f (t) = e ^ t ) e (g (t) = t ) para (t geq 0 ). Então

[(f ast g) (t) = int_0 ^ t e ^ { tau} (t- tau) d tau = e ^ t-t-1. ]

Para resolver a integral fizemos uma integração por partes.

Exemplo ( PageIndex {2} )

Pegue (f (t) = sin ( omega t) ) e (g (t) = cos ( omega t) ) para (t geq 0 ). Então

[(f ast g) (t) = int_0 ^ t sin ( omega tau) cos ( omega (t- tau)) d tau. ]

Nós aplicamos a identidade

[ cos ( theta) sin ( psi) = dfrac {1} {2} ( sin ( theta + psi) - sin ( theta - psi)) ]

Por isso,

[ begin {align} (f ast g) (t) & = int_0 ^ t dfrac {1} {2} ( sin ( omega t) - sin ( omega t-2 omega tau)) d tau & = left [ dfrac {1} {2} tau sin ( omega t) + dfrac {1} {4 omega} cos (2 omega tau - omega t) right] _ { tau = 0} ^ t & = dfrac {1} {2} t sin ( omega t). end {align} ]

A fórmula é válida apenas para (t geq 0 ). Assumimos que (f ) e (g ) são zero (ou simplesmente não definidos) para (t ) negativo.

A convolução possui muitas propriedades que a fazem se comportar como um produto. Sejam (c ) uma constante e (f ), (g ) e (h ) sejam funções, então

[ begin {align} f * g & = g * f (c , f) * g & = f * (c , g) = c , (f * g) (f * g ) * h & = f * (g * h) end {align} ]

A propriedade mais interessante para nós, e o principal resultado desta seção, é o seguinte teorema.

Teorema 6.3.1:

Sejam (f (t) ) e (g (t) ) do tipo exponencial, então

[ mathcal {(f ast g) (t) } = mathcal {L} left { int_0 ^ tf ( tau) g (t- tau) d tau right } = mathcal {L} {f (t) } mathcal {L} {g (t) }. ]

Em outras palavras, a transformada de Laplace de uma convolução é o produto das transformadas de Laplace. A maneira mais simples de usar esse resultado é ao contrário.

Exemplo ( PageIndex {3} )

Suponha que temos a função de (s ) definida por

[ dfrac {1} {(s + 1) s ^ 2} = dfrac {1} {s + 1} dfrac {1} {s ^ 2}. ]

Reconhecemos as duas entradas da Tabela 6.2. Isso é

[ mathcal {L} ^ {- 1} left { dfrac {1} {s + 1} right } = e ^ {- t} ~~~~~~ { rm {e}} ~~~~~~~ mathcal {L} ^ {- 1} left { dfrac {1} {s ^ 2} right } = t. ]

Portanto,

[ mathcal {L} ^ {- 1} left { dfrac {1} {s + 1} dfrac {1} {s ^ 2} right } = int_0 ^ t tau e ^ { - (t- tau)} d tau = e ^ {- t} + t-1. ]

O cálculo da integral envolveu uma integração por partes.

Resolvendo EDOs

O próximo exemplo demonstra todo o poder da convolução e da transformada de Laplace. Podemos dar a solução para o problema da oscilação forçada para qualquer função forçante como uma integral definida.

Exemplo ( PageIndex {4} )

Encontre a solução para

[x '' + omega_0 ^ 2x = f (t), ~~~~~ x (0) = 0, ~~~~~ x '(0) = 0, ]

para uma função arbitrária (f (t) ).

Primeiro aplicamos a transformada de Laplace à equação. Denote a transformação de (x (t) ) por (X (s) ) e a transformação de (f (t) ) por (F (s) ) como de costume.

[s ^ 2X (s) + omega_0 ^ 2X (s) = F (s), ]

ou em outras palavras

[X (s) = F (s) dfrac {1} {s ^ 2 + omega_0 ^ 2}. ]

Nós sabemos

[ mathcal {L} ^ {- 1} left { dfrac {1} {s ^ 2 + omega_0 ^ 2} right } = dfrac { sin ( omega_0 t)} { omega_0 }. ]

Portanto,

[x (t) = int_0 ^ tf ( tau) dfrac { sin ( omega_0 (t- tau))} { omega_0} d tau, ]

ou se invertermos a ordem

[x (t) = int_0 ^ t dfrac { sin ( omega_0 tau)} { omega_0} f (t- tau) d tau. ]

Notemos mais uma característica deste exemplo. Agora podemos ver como a transformação de Laplace lida com a ressonância. Suponha que (f (t) = cos ( omega_0t) ). Então

[x (t) = int_0 ^ t dfrac { sin ( omega_0 tau)} { omega_0} cos ( omega_0 (t- tau)) d tau = dfrac {1} { omega_0} int_0 ^ t sin ( omega_0 tau) cos ( omega_0 (t- tau)) d tau. ]

Calculamos a convolução de seno e cosseno no Exemplo 6.3.2. Por isso

[x (t) = left ( dfrac {1} { omega_0} right) left ( dfrac {1} {2} t sin ( omega_0t) right) = dfrac {1} { 2 omega_0} sin ( omega_0t). ]

Observe o (t ) na frente do seno. A solução, portanto, cresce sem limites conforme (t ) fica grande, o que significa que obtemos ressonância.

Da mesma forma, podemos resolver qualquer equação de coeficiente constante com uma função de força arbitrária (f (t) ) como uma integral definida usando convolução. Uma integral definida, em vez de uma solução de forma fechada, é geralmente suficiente para a maioria dos propósitos práticos. Não é difícil avaliar numericamente uma integral definida.

A Equação Integral de Volterra

Uma equação integral comum é a equação integral de Volterra4

[x (t) = f (t) + int_0 ^ t g (t- tau) x ( tau) , d tau ]

onde (f (t) ) e (g (t) ) são funções conhecidas e (x (t) ) é uma incógnita que desejamos resolver. Para encontrar (x (t) ), aplicamos a transformada de Laplace à equação para obter

[X (s) = F (s) + G (s) X (s), ]

onde (X (s) ), (F (s) ) e (G (s) ) são as transformadas de Laplace de (x (t) ), (f (t) ) , e (g (t) ), respectivamente. Nós achamos

[X (s) = dfrac {F (s)} {1-G (s)}. ]

Para encontrar (x (t) ), agora precisamos encontrar a transformada de Laplace inversa de (X (s) ).

Exemplo ( PageIndex {5} )

Resolver

[x (t) = e ^ {- t} + int _0 ^ t sinh (t- tau) x ( tau) , d tau ]

Aplicamos a transformada de Laplace para obter

[X (s) = dfrac {1} {s + 1} + dfrac {1} {s ^ 2-1} X (s), ]

ou

[X (s) = dfrac { dfrac {1} {s + 1}} {1- dfrac {1} {s ^ 2-1}} = dfrac {s-1} {s ^ 2- 2} = dfrac {s} {s ^ 2-2} - dfrac {1} {s ^ 2-2}. ]

Não é difícil aplicar a Tabela 6.1 para encontrar

[x (t) = cosh left ( sqrt {2} , t right) - dfrac {1} { sqrt {2}} sinh left ( sqrt {2} , t certo).]

3Para aqueles que viram a convolução definida antes, você pode ter visto definida como . Esta definição concorda com (6.2) se você definir e ser zero para . Ao discutir a transformada de Laplace, a definição que demos é suficiente. A convolução ocorre em muitos outros aplicativos, no entanto, onde você pode ter que usar a definição mais geral com infinitos.


6.3. Preenchimento e Stride¶

No exemplo anterior da Fig. 6.2.1, nossa entrada tinha altura e largura de 3 e nosso kernel de convolução tinha altura e largura de 2, produzindo uma representação de saída com dimensão (2 times2 ). Como generalizamos na Seção 6.2, assumindo que a forma de entrada é (n_h vezes n_w ) e a forma do kernel de convolução é (k_h vezes k_w ), então a forma de saída será ((n_h-k_h + 1 ) times (n_w-k_w + 1) ). Portanto, a forma de saída da camada convolucional é determinada pela forma da entrada e pela forma do núcleo de convolução.

Em vários casos, incorporamos técnicas, incluindo preenchimento e convoluções ampliadas, que afetam o tamanho da saída. Como motivação, observe que, como os kernels geralmente têm largura e altura maiores que (1 ), após aplicar muitas convoluções sucessivas, tendemos a obter resultados que são consideravelmente menores do que nossos dados de entrada. Se começarmos com uma imagem de (240 vezes 240 ) pixels, (10 ​​) camadas de (5 vezes 5 ) convoluções reduzem a imagem para (200 vezes 200 ) pixels, cortando ( 30 \% ) da imagem e com isso obliterando qualquer informação interessante sobre os limites da imagem original. Preenchimento é a ferramenta mais popular para lidar com esse problema.

Em outros casos, podemos querer reduzir a dimensionalidade drasticamente, por exemplo, se acharmos que a resolução de entrada original é difícil de controlar. Circunvoluções Strided são uma técnica popular que pode ajudar nesses casos.


6.3: Convolução

Um módulo python simples para calcular algoritmos de convolução Winograd mínimos para uso com redes neurais convolucionais conforme proposto em [1].

Para F (m, r), você deve selecionar os pontos de interpolação polinomial m + r-2.

Neste exemplo, calculamos as transformações para F (2,3) ou F (2x2,3x3) usando pontos de interpolação polinomial (0,1, -1).

A última matriz é a convolução 1D F (2,3) calculada usando as transformadas AT, G e BT, no sinal de 4 elementos d [0..3] e no filtro de 3 elementos g [0..2], e serve para verifique a exatidão das transformações. Este é um cálculo simbólico, então o resultado deve ser exato.

O exemplo a seguir calcula as transformações para F (4,3).

Se em vez de um filtro FIR você quiser o algoritmo de convolução linear, tudo o que você precisa fazer é trocar e transpor os dados e as matrizes de transformação inversa. Isso é conhecido como o princípio da transfomação.

Este exemplo calcula a transformação para F (6,3). Usaremos pontos de interpolação de fração 1/2 e -1/2, então usamos sympy.Rational para manter o cálculo simbólico exato (usar valores de ponto flutuante tornaria a derivação das transformadas sujeita a erro de arredondamento).


6.3: Convolução

Você está prestes a apague seu trabalho nesta atividade. Você tem certeza de que quer fazer isso?

Versão atualizada disponível

Há um versão atualizada desta atividade. Se você atualizar para a versão mais recente desta atividade, seu progresso atual nesta atividade será apagado. Independentemente disso, seu registro de conclusão permanecerá. Como você gostaria de proceder?

Editor de Expressão Matemática

Definimos a convolução de duas funções e discutimos sua aplicação para calcular a transformada de Laplace inversa de um produto.

Convolução

Nesta seção, consideramos o problema de encontrar a transformada de Laplace inversa de um produto, onde e são as transformadas de Laplace de funções conhecidas e. Para motivar nosso interesse neste problema, considere o problema do valor inicial, tomando as transformadas de Laplace,

Até agora não estive interessado na fatoração indicada em (eq: 8.6.1), uma vez que lidamos apenas com equações diferenciais com funções de forçante específicas. Portanto, poderíamos simplesmente fazer a multiplicação indicada em (eq: 8.6.1) e usar a tabela de transformadas de Laplace para encontrar. No entanto, isso não é possível se quisermos um Fórmula para em termos de, que pode não ser especificado.

Para motivar a fórmula para, considere o problema do valor inicial

que resolvemos primeiro sem usar a transformada de Laplace. A solução da equação diferencial em (eq: 8.6.2) é da forma em que Integrar isso de a e impor a condição inicial resulta em

Agora vamos usar a transformada de Laplace para resolver (eq: 8.6.2) e comparar o resultado com (eq: 8.6.3). Tomando as transformadas de Laplace em (eq: 8.6.2), os rendimentos, o que implica que

Se deixarmos agora, então (eq: 8.6.3) e (eq: 8.6.4) podem ser escritos como e respectivamente. Portanto, neste caso.

Isso motiva a próxima definição.

Pode-se mostrar que isto é,

Eqn. (eq: 8.6.5) mostra que no caso especial onde. Este próximo teorema afirma que isso é verdade em geral.

Uma prova completa do teorema da convolução está além do escopo deste livro. No entanto, vamos assumir que tem uma transformada de Laplace e verificar a conclusão do teorema de uma forma puramente computacional. Pela definição da transformada de Laplace, esta integral iterada é igual a uma integral dupla sobre a região mostrada na figura abaixo.

Inverter a ordem de integração resulta

No entanto, a substituição mostra que

Uma fórmula para a solução de um problema de valor inicial

O teorema da convolução fornece uma fórmula para a solução de um problema de valor inicial para uma equação de segunda ordem de coeficiente constante linear com um conjunto não especificado de condições iniciais. Os próximos três exemplos ilustram isso.

Avaliando Integrais de Convolução

Diremos que uma integral da forma é uma convolução integral. O teorema da convolução fornece uma maneira conveniente de avaliar integrais de convolução.

Volterra Integral Equations

é uma equação integral de Volterra. Aqui e são dadas funções e é desconhecido. Visto que a integral à direita é uma integral de convolução, o teorema da convolução fornece uma fórmula conveniente para resolver (eq: 8.6.11). Pegando as transformadas de Laplace em (eq: 8.6.11), obtemos e resolvendo isso para os rendimentos. Obtemos então a solução de (eq: 8.6.11) como.

Funções de transferência

O próximo teorema apresenta uma fórmula para a solução do problema geral do valor inicial, onde assumimos por simplicidade que é contínuo e que existe. Também pode ser mostrado que a fórmula é válida em condições muito mais fracas em.

As transformações de Laplace de exame de prova em (eq: 8.6.13) produzem onde Portanto, com e

Tomando as transformadas de Laplace em (eq: 8.6.15) e (eq: 8.6.16) mostra que Portanto e

Conseqüentemente, (eq: 8.6.20) pode ser reescrito como Substituindo isso em (eq: 8.6.18) resulta Tomando as transformadas inversas e invocando o teorema da convolução produz (eq: 8.6.14). Finalmente, (eq: 8.6.19) e (eq: 8.6.21) implicam (eq: 8.6.17).

É útil notar de (eq: 8.6.14) que é da forma em que depende das condições iniciais e é independente da função de força, enquanto depende da função de força e é independente das condições iniciais. Se os zeros do polinômio característico da equação complementar têm partes reais negativas, então e ambos se aproximam de zero como, portanto, para qualquer escolha de condições iniciais. Além disso, o valor de é essencialmente independente dos valores de for large, pois. Neste caso, dizemos que e são transitório e componentes de estado estacionário, respectivamente, da solução de (eq: 8.6.13). Essas definições se aplicam ao problema de valor inicial do exemplo de exemplo: 8.6.4, onde os zeros de são. De (eq: 8.6.10), vemos que a solução do problema geral de valor inicial do exemplo Exemplo: 8.6.4 é, onde é o componente transiente da solução e é o componente de estado estacionário. As definições não se aplicam aos problemas de valor inicial considerados no exemplo de Exemplos: 8.6.2 e exemplo: 8.6.3, uma vez que os zeros dos polinômios característicos nestes dois exemplos não têm partes reais negativas.

Em aplicações físicas onde a entrada e a saída de um dispositivo estão relacionadas por (eq: 8.6.13), os zeros do polinômio característico geralmente têm partes reais negativas. Então é chamado de função de transferência do dispositivo. Como vemos, essa é a razão entre a transformação da saída de estado estacionário e a transformação da entrada.

Por causa da forma de às vezes é chamado de função de ponderação do dispositivo, uma vez que atribui pesos aos valores anteriores da entrada. Também é chamado de Resposta de impulso do dispositivo, pelos motivos discutidos na próxima seção.

Fonte do Texto

Trench, William F., ”Elementary Differential Equations” (2013). Livros e CDs de autoria e edição do corpo docente. 8. (CC-BY-NC-SA)


Conteúdo

A convolução de f e g é escrita fg , denotando o operador com o símbolo ∗. [B] É definido como a integral do produto das duas funções depois que uma é revertida e deslocada. Como tal, é um tipo particular de transformação integral:

Uma definição equivalente é (ver comutatividade):

Embora o símbolo t seja usado acima, ele não precisa representar o domínio do tempo. Mas, nesse contexto, a fórmula de convolução pode ser descrita como a área sob a função f(τ) ponderado pela função g(–τ) deslocado pelo valor t. À medida que t muda, a função de ponderação g(tτ) enfatiza diferentes partes da função de entrada f(τ) .

Para funções f, g com suporte apenas em [0, ∞) (ou seja, zero para argumentos negativos), os limites de integração podem ser truncados, resultando em:

Para a formulação multidimensional da convolução, consulte domínio de definição (abaixo de).

Edição de Notação

Uma convenção comum de notação de engenharia é: [2]

que deve ser interpretado com cuidado para evitar confusão. Por exemplo, f(t)∗g(tt0) é equivalente a (fg)(tt0) , mas f(tt0)∗g(tt0) é de fato equivalente a (fg)(t − 2t0) . [3]

Edição de Derivações

A convolução descreve a saída (em termos de entrada) de uma importante classe de operações conhecida como linear invariante no tempo (LTI). Consulte a teoria do sistema LTI para obter uma derivação da convolução como resultado das restrições LTI. Em termos das transformadas de Fourier da entrada e saída de uma operação LTI, nenhum novo componente de frequência é criado. Os existentes são apenas modificados (amplitude e / ou fase). Em outras palavras, a transformação de saída é o produto pontual da transformação de entrada com uma terceira transformação (conhecida como função de transferência). Veja o teorema da convolução para uma derivação dessa propriedade de convolução. Por outro lado, a convolução pode ser derivada como a transformada de Fourier inversa do produto pontual de duas transformadas de Fourier.

Um dos primeiros usos da integral de convolução apareceu na derivação de D'Alembert do teorema de Taylor em Recherches sur différents points importants du système du monde, publicado em 1754. [4]

Além disso, uma expressão do tipo:

é usado por Sylvestre François Lacroix na página 505 de seu livro intitulado Tratado sobre diferenças e séries, que é o último dos 3 volumes da série enciclopédica: Traité du calcul différentiel et du calcul intégral, Chez Courcier, Paris, 1797-1800. [5] Logo depois disso, as operações de convolução aparecem nas obras de Pierre Simon Laplace, Jean-Baptiste Joseph Fourier, Siméon Denis Poisson e outros. O próprio termo não se tornou amplamente utilizado até os anos 1950 ou 1960. Antes disso, às vezes era conhecido como Faltung (que significa dobrando em alemão), produto de composição, superposição integral, e Integral de Carson. [6] No entanto, parece já em 1903, embora a definição seja bastante desconhecida em usos mais antigos. [7] [8]

é um caso particular de produtos de composição considerados pelo matemático italiano Vito Volterra em 1913. [9]

Quando uma função gT é periódico, com período T, então para funções, f, de modo que fgT existe, a convolução também é periódica e idêntica a:

Onde t0 é uma escolha arbitrária. O somatório é denominado somatório periódico da função f.

Quando gT é um somatório periódico de outra função, g, então fgT é conhecido como um circular ou cíclico convolução de f e g.

E se o somatório periódico acima for substituído por fT , a operação é chamada de periódico convolução de fT e gT .

Para funções de valor complexo f, g definido no set Z de inteiros, o convolução discreta de f e g é dado por: [10]

A convolução de duas sequências finitas é definida pela extensão das sequências para funções com suporte finito no conjunto de inteiros. Quando as sequências são os coeficientes de dois polinômios, então os coeficientes do produto comum dos dois polinômios são a convolução das duas sequências originais. Isso é conhecido como o produto de Cauchy dos coeficientes das sequências.

Edição de convolução discreta circular

Quando uma função gN é periódico, com ponto N , então para funções, f, de modo que fgN existe, a convolução também é periódica e idêntica a:

A soma em k é chamada de soma periódica da função f.

Se gN é um somatório periódico de outra função, g, então fgN é conhecido como uma convolução circular de f e g.

Quando as durações diferentes de zero de f e g são limitadas ao intervalo [0, N−1] , fgN se reduz a estas formas comuns:

A notação ( fN g ) para convolução cíclica denota convolução sobre o grupo cíclico de módulo de inteiros N .

A convolução circular surge mais frequentemente no contexto de convolução rápida com um algoritmo de transformada rápida de Fourier (FFT).

Algoritmos de convolução rápida Editar

Em muitas situações, convoluções discretas podem ser convertidas em circulares para que as transformações rápidas com uma propriedade de convolução possam ser usadas para implementar o cálculo. Por exemplo, a convolução de sequências de dígitos é a operação de kernel na multiplicação de números de vários dígitos, que pode, portanto, ser implementada de forma eficiente com técnicas de transformação (Knuth 1997, §4.3.3.C von zur Gathen & amp Gerhard 2003, §8.2).

Eq.1 requer N operações aritméticas por valor de saída e N 2 operações para N saídas. Isso pode ser reduzido significativamente com qualquer um dos vários algoritmos rápidos. O processamento digital de sinais e outras aplicações normalmente usam algoritmos de convolução rápida para reduzir o custo da convolução para a complexidade O (N log N).

Os algoritmos de convolução rápida mais comuns usam algoritmos de transformada rápida de Fourier (FFT) por meio do teorema da convolução circular. Especificamente, a convolução circular de duas sequências de comprimento finito é encontrada tomando uma FFT de cada sequência, multiplicando pontualmente e, em seguida, executando uma FFT inversa. As convoluções do tipo definido acima são então eficientemente implementadas usando essa técnica em conjunto com a extensão zero e / ou descartando porções da saída. Outros algoritmos de convolução rápida, como o algoritmo de Schönhage-Strassen ou a transformada de Mersenne, [12] usam transformadas rápidas de Fourier em outros anéis.

Se uma sequência for muito mais longa do que a outra, a extensão zero da sequência mais curta e a convolução circular rápida não é o método mais eficiente computacionalmente disponível. [13] Em vez disso, decompor a sequência mais longa em blocos e convolver cada bloco permite algoritmos mais rápidos, como o método Overlap-save e o método Overlap-add. [14] Um método de convolução híbrido que combina algoritmos de bloco e FIR permite uma latência de entrada-saída zero que é útil para cálculos de convolução em tempo real. [15]

A convolução de duas funções de valor complexo em R d é em si uma função de valor complexo em R d , definido por:

e é bem definido apenas se feg decaem suficientemente rápido no infinito para que a integral exista. As condições para a existência da convolução podem ser complicadas, uma vez que uma explosão em g no infinito pode ser facilmente compensada por um declínio suficientemente rápido em f. A questão da existência, portanto, pode envolver diferentes condições em f e g:

Funções com suporte compacto Editar

Se feg são funções contínuas compactamente suportadas, então sua convolução existe e também é compactamente suportada e contínua (Hörmander 1983, Capítulo 1). De forma mais geral, se qualquer uma das funções (digamos f) for compactamente suportada e a outra for localmente integrável, então a convolução fg é bem definido e contínuo.

A convolução de feg também é bem definida quando ambas as funções são integráveis ​​localmente quadradas em R e com suporte em um intervalo do formulário [uma, + ∞) (ou ambos suportados em [−∞, uma] ).

Funções integráveis ​​Editar

A convolução de f e g existe se f e g são ambas funções integráveis ​​de Lebesgue em eu 1 ( R d ), e neste caso fg também é integrável (Stein & amp Weiss 1971, Teorema 1.3). Isso é uma consequência do teorema de Tonelli. Isso também é verdadeiro para funções em eu 1, sob a convolução discreta, ou mais geralmente para a convolução em qualquer grupo.

Da mesma forma, se feu 1 ( R d ) e geu p ( R d ) onde 1 ≤ p ≤ ∞, então fgeu p ( R d ), e

No caso particular p = 1, isso mostra que eu 1 é uma álgebra de Banach sob a convolução (e a igualdade dos dois lados vale se feg forem não negativos em quase todos os lugares).

De forma mais geral, a desigualdade de Young implica que a convolução é um mapa bilinear contínuo entre eu p espaços. Especificamente, se 1 ≤ p, q, r ≤ ∞ satisfazer:

de modo que a convolução é um mapeamento bilinear contínuo de eu p ×eu q para eu r . A desigualdade de Young para convolução também é verdadeira em outros contextos (grupo de círculo, convolução em Z ) A desigualdade anterior não é nítida na linha real: quando 1 & lt p, q, r & lt ∞, existe uma constante Bp,q & lt 1 de modo que:

O valor ideal de Bp,q foi descoberto em 1975 [16] e independentemente em 1976, [17] ver a desigualdade de Brascamp-Lieb.

Uma estimativa mais forte é verdadeira, desde que 1 & lt p, q, r & lt ∞:

Funções de decomposição rápida Editar

Além de funções com suporte compacto e funções integráveis, funções que têm decaimento suficientemente rápido no infinito também podem ser convolvidas. Uma característica importante da convolução é que se f e g ambos decaem rapidamente, então fg também decai rapidamente. Em particular, se f e g são funções diminuindo rapidamente, então é a convolução fg. Combinado com o fato de que convolução comuta com diferenciação (ver #Properties), segue-se que a classe de funções de Schwartz é fechada sob convolução (Stein & amp Weiss 1971, Teorema 3.3).

Edição de distribuições

Em algumas circunstâncias, é possível definir a convolução de uma função com uma distribuição ou de duas distribuições. Se f é uma função com suporte compacto e g é uma distribuição, então fg é uma função suave definida por uma fórmula de distribuição análoga a

De forma mais geral, é possível estender a definição da convolução de uma maneira única para que a lei associativa

permanece válido no caso em que f é uma distribuição, e g uma distribuição com suporte compacto (Hörmander 1983, §4.2).

Edição de Medidas

A convolução de quaisquer duas medidas do Borel µ e ν da variação limitada é a medida μ ∗ ν < displaystyle mu * nu> definida por (Rudin 1962)

Isso está de acordo com a convolução definida acima quando μ e ν são considerados como distribuições, bem como a convolução das funções L 1 quando μ e ν são absolutamente contínuos em relação à medida de Lebesgue.

A convolução das medidas também satisfaz a seguinte versão da desigualdade de Young

onde a norma é a variação total de uma medida. Como o espaço de medidas de variação limitada é um espaço de Banach, a convolução de medidas pode ser tratada com métodos padrão de análise funcional que podem não se aplicar à convolução de distribuições.

Propriedades algébricas Editar

A convolução define um produto no espaço linear de funções integráveis. Este produto satisfaz as seguintes propriedades algébricas, que formalmente significam que o espaço de funções integráveis ​​com o produto dado pela convolução é uma álgebra associativa comutativa sem identidade (Strichartz 1994, §3.3). Outros espaços lineares de funções, como o espaço de funções contínuas de suporte compacto, são fechados sob a convolução e, portanto, também formam álgebras associativas comutativas.

Alterando a variável de integração para u = t - τ < displaystyle u = t- tau> o resultado segue.

Prova: Isso decorre do uso do teorema de Fubini (ou seja, integrais duplos podem ser avaliados como integrais iterados em qualquer ordem).

Prova: Isso decorre da linearidade da integral.

Associatividade com multiplicação escalar a (f ∗ g) = (a f) ∗ g

para qualquer número real (ou complexo) a < displaystyle a>.

Nenhuma álgebra de funções possui uma identidade para a convolução. A falta de identidade normalmente não é um grande inconveniente, uma vez que a maioria das coleções de funções nas quais a convolução é realizada podem ser convolvidas com uma distribuição delta (um impulso unitário, centrado em zero) ou, pelo menos (como é o caso de eu 1) admitir aproximações à identidade. O espaço linear de distribuições compactamente suportadas, entretanto, admite uma identidade sob a convolução. Especificamente,

Onde δ é a distribuição delta.

Algumas distribuições S tem um elemento inverso S -1 para a convolução que então deve satisfazer

a partir da qual uma fórmula explícita para S -1 pode ser obtido. O conjunto de distribuições invertíveis forma um grupo abeliano sob a convolução.

Edição de integração

Se f e g são funções integráveis, então a integral de sua convolução em todo o espaço é simplesmente obtida como o produto de suas integrais:

Isso decorre do teorema de Fubini. O mesmo resultado é válido se f e g são apenas consideradas funções mensuráveis ​​não negativas, pelo teorema de Tonelli.

Edição de Diferenciação

Onde d/dx é a derivada. De forma mais geral, no caso de funções de várias variáveis, uma fórmula análoga é válida para a derivada parcial:

Uma consequência particular disso é que a convolução pode ser vista como uma operação de "suavização": a convolução de f e g é diferenciável tantas vezes quanto f e g estão no total.

Essas identidades se mantêm sob a condição precisa de que f e g são absolutamente integráveis ​​e pelo menos um deles tem uma derivada fraca absolutamente integrável (L 1), como consequência da desigualdade de convolução de Young. Por exemplo, quando f é continuamente diferenciável com suporte compacto e g é uma função arbitrária localmente integrável,

Essas identidades também são muito mais abrangentes no sentido de distribuições moderadas, se uma das f ou g é uma distribuição temperada de decréscimo rápido, uma distribuição temperada com suporte compacto ou uma função de Schwartz e a outra é uma distribuição temperada. Por outro lado, duas funções integráveis ​​positivas e infinitamente diferenciáveis ​​podem ter uma convolução contínua em lugar nenhum.

No caso discreto, o operador de diferença D f(n) = f(n + 1) − f(n) satisfaz uma relação análoga:

D (f ∗ g) = (D f) ∗ g = f ∗ (D g).

Teorema de convolução Editar

Equivariância translacional Editar

A convolução comuta com traduções, o que significa que

onde τxf é a tradução da função f de x definido por

Se f é uma função de Schwartz, então τxf é a convolução com uma função delta de Dirac traduzida τxf = fτx δ. Portanto, a invariância de translação da convolução das funções de Schwartz é uma consequência da associatividade da convolução.

Além disso, sob certas condições, a convolução é a operação invariante de tradução mais geral. Falando informalmente, o seguinte é válido

  • Suponha que S é um operador linear limitado que atua em funções que comutam com traduções: S(τxf) = τx(Sf) para todos x. Então S é dado como convolução com uma função (ou distribuição) gS isso é Sf = gSf.

Assim, algumas operações invariantes de tradução podem ser representadas como convolução. As convoluções desempenham um papel importante no estudo de sistemas invariantes no tempo e, especialmente, na teoria do sistema LTI. A função de representação gS é a resposta ao impulso da transformação S.

Uma versão mais precisa do teorema citado acima requer a especificação da classe de funções em que a convolução é definida, e também requer a suposição de que S deve ser um operador linear contínuo em relação à topologia apropriada. Sabe-se, por exemplo, que todo operador linear contínuo invariante de translação contínua em eu 1 é a convolução com uma medida Borel finita. Mais geralmente, cada operador linear contínuo invariante de tradução contínua em eu p para 1 ≤ p & lt ∞ é a convolução com uma distribuição temperada cuja transformada de Fourier é limitada. A saber, todos eles são dados por multiplicadores de Fourier limitados.

Se G é um grupo adequado dotado de uma medida λ, e se f e g são funções integráveis ​​de valor real ou complexo em G, então podemos definir sua convolução por

Não é comutativo em geral. Em casos típicos de interesse G é um grupo topológico localmente compacto de Hausdorff e λ é uma medida de Haar (à esquerda). Nesse caso, a menos que G é unimodular, a convolução definida desta forma não é a mesma que ∫ f (xy - 1) g (y) d λ (y) < displaystyle textstyle < int f (xy ^ <-1>) g (y ) , d lambda (y) >>. A preferência de um sobre o outro é feita de modo que a convolução com uma função fixa g comuta com tradução à esquerda no grupo:

L h (f ∗ g) = (L h f) ∗ g. < displaystyle L_(f * g) = (L_f) * g.>

Além disso, a convenção também é necessária para que haja consistência com a definição de convolução de medidas apresentada a seguir. No entanto, com uma medida de Haar à direita em vez de à esquerda, a última integral tem preferência sobre a primeira.

Em grupos abelianos localmente compactos, uma versão do teorema da convolução é válida: a transformada de Fourier de uma convolução é o produto pontual das transformadas de Fourier. O grupo do círculo T com a medida de Lebesgue é um exemplo imediato. Para um fixo g dentro eu 1 (T), temos o seguinte operador familiar agindo no espaço de Hilbert eu 2 (T):

O operador T é compacto. Um cálculo direto mostra que seu adjunto T * é convolução com

Pela propriedade de comutatividade citada acima, T é normal: T* T = TT*. Além disso, T comuta com os operadores de tradução. Considere a família S de operadores que consistem em todas essas convoluções e os operadores de tradução. Então S é uma família de operadores normais que se deslocam diariamente. De acordo com a teoria espectral, existe uma base ortonormal <hk> que simultaneamente diagonaliza S. Isso caracteriza as convoluções no círculo. Especificamente, temos

que são precisamente os personagens de T. Cada convolução é um operador de multiplicação compacto nesta base. Isso pode ser visto como uma versão do teorema da convolução discutido acima.

Um exemplo discreto é um grupo cíclico finito de ordem n. Os operadores de convolução são aqui representados por matrizes circulantes e podem ser diagonalizados pela transformada discreta de Fourier.

Um resultado semelhante é válido para grupos compactos (não necessariamente abelianos): os coeficientes de matriz de representações unitárias de dimensão finita formam uma base ortonormal em eu 2 pelo teorema de Peter-Weyl, e um análogo do teorema da convolução continua a valer, junto com muitos outros aspectos da análise harmônica que dependem da transformada de Fourier.

Deixar G ser um grupo topológico (escrito multiplicativamente). Se μ e ν são medidas finitas do Borel sobre G, então sua convolução µν é definido como a medida pushforward da ação do grupo e pode ser escrito como

para cada subconjunto mensurável E de G. A convolução também é uma medida finita, cuja variação total satisfaz

No caso quando G is locally compact with (left-)Haar measure λ, and μ and ν are absolutely continuous with respect to a λ, so that each has a density function, then the convolution μ∗ν is also absolutely continuous, and its density function is just the convolution of the two separate density functions.

If μ and ν are probability measures on the topological group (R,+), then the convolution µν is the probability distribution of the sum X + Y of two independent random variables X e Y whose respective distributions are μ and ν.

Deixar (X, Δ, ∇, ε, η) be a bialgebra with comultiplication Δ, multiplication ∇, unit η, and counit ε. The convolution is a product defined on the endomorphism algebra End(X) as follows. Let φ, ψ ∈ End(X), that is, φ,ψ : XX are functions that respect all algebraic structure of X, then the convolution φψ is defined as the composition

The convolution appears notably in the definition of Hopf algebras (Kassel 1995, §III.3). A bialgebra is a Hopf algebra if and only if it has an antipode: an endomorphism S such that

Convolution and related operations are found in many applications in science, engineering and mathematics.


B-splines¶

A B-spline is an approximation of a continuous function over a finite- domain in terms of B-spline coefficients and knot points. If the knot- points are equally spaced with spacing (Delta x) , then the B-spline approximation to a 1-D function is the finite-basis expansion.

In two dimensions with knot-spacing (Delta x) and (Delta y) , the function representation is

In these expressions, (eta^left(cdot ight)) is the space-limited B-spline basis function of order (o) . The requirement of equally-spaced knot-points and equally-spaced data points, allows the development of fast (inverse-filtering) algorithms for determining the coefficients, (c_) , from sample-values, (y_). Unlike the general spline interpolation algorithms, these algorithms can quickly find the spline coefficients for large images.

The advantage of representing a set of samples via B-spline basis functions is that continuous-domain operators (derivatives, re- sampling, integral, etc.), which assume that the data samples are drawn from an underlying continuous function, can be computed with relative ease from the spline coefficients. For example, the second derivative of a spline is

Using the property of B-splines that

If (o=3) , then at the sample points:

Thus, the second-derivative signal can be easily calculated from the spline fit. If desired, smoothing splines can be found to make the second derivative less sensitive to random errors.

The savvy reader will have already noticed that the data samples are related to the knot coefficients via a convolution operator, so that simple convolution with the sampled B-spline function recovers the original data from the spline coefficients. The output of convolutions can change depending on how the boundaries are handled (this becomes increasingly more important as the number of dimensions in the dataset increases). The algorithms relating to B-splines in the signal-processing subpackage assume mirror-symmetric boundary conditions. Thus, spline coefficients are computed based on that assumption, and data-samples can be recovered exactly from the spline coefficients by assuming them to be mirror-symmetric also.

Currently the package provides functions for determining second- and third- order cubic spline coefficients from equally-spaced samples in one and two dimensions ( qspline1d , qspline2d , cspline1d , cspline2d ). The package also supplies a function ( bspline ) for evaluating the B-spline basis function, (eta^left(x ight)) for arbitrary order and (x.) For large (o) , the B-spline basis function can be approximated well by a zero-mean Gaussian function with standard-deviation equal to (sigma_=left(o+1 ight)/12) :

A function to compute this Gaussian for arbitrary (x) and (o) is also available ( gauss_spline ). The following code and figure use spline-filtering to compute an edge-image (the second derivative of a smoothed spline) of a raccoon’s face, which is an array returned by the command scipy.misc.face . The command sepfir2d was used to apply a separable 2-D FIR filter with mirror-symmetric boundary conditions to the spline coefficients. This function is ideally-suited for reconstructing samples from spline coefficients and is faster than convolve2d , which convolves arbitrary 2-D filters and allows for choosing mirror-symmetric boundary conditions.

Alternatively, we could have done:


Usage¶

Two convolution functions are provided. They are imported as:

convolve is implemented as a direct convolution algorithm, while convolve_fft uses an FFT. Thus, the former is better for small kernels, while the latter is much more efficient for larger kernels.

The input images and kernels should be lists or Numpy arrays with either both 1, 2, or 3 dimensions (and the number of dimensions should be the same for the image and kernel). The result is a Numpy array with the same dimensions as the input image.

O convolve function takes an optional boundary= argument describing how to perform the convolution at the edge of the array. The values for boundary can be:

  • None : set the result values to zero where the kernel extends beyond the edge of the array (default)
  • 'fill' : set values outside the array boundary to a constant. If this option is specified, the constant should be specified using the fill_value= argument, which defaults to zero.
  • 'wrap' : assume that the boundaries are periodic
  • 'extend' : set values outside the array to the nearest array value

By default, the kernel is not normalized. To normalize it prior to convolution, use:


3.6.1. Compute definition¶

In practice, we are not going to perform batch_norm of one value. Instead, the batch_norm will be executed on the output of a convolution, namely, 3-D data in (channel, height, weight). Data in different channels have different values of (mean) , (variance) , (gamma) , and (beta) . The calculation can be expressed as the following formula.

During model training, (mean) and (var) are computed from the input (data) . However, in model inference which we focus on here, (mean) and (var) are given therefore we don’t need to compute them from (data) .

We will define the compute of this formula. Essentially, batch_norm is a combination of a number of simple broadcasting and element-wise calculations. Note that in Section 3.1 we defined a limited broadcast_add to perform only broadcast addition for 2-D tensors. If we generalize it to more dimensions and more calculators, we can reuse them to compose the batch_norm operator. This is actually what TVM does.

Here, for simplicity, we use TVM basic operators for broadcast calculation. TVM operators are defined in TOPI , which stands for Tensor OPerator Inventory. It follows the NumPy convention to override the arithmetic operators (i.e. + , - , * , / ) for broadcast calculation. The element-wise square root can be found in TOPI , too.

The code snippet to define batch_norm is as follows.

We can then compile print the IR and compile it. The IR contains several stages but should be easy to follow.

To execute it, we will need to create data for batch_norm . Similar to the previous sections for getting conv and pooling data, we define a get_bn_data method to generate the data of batch_norm . One tricky thing is that the variance must be non-negative numbers. Therefore, we move the mean value of the random number generator’s normal distribution to 1 (by default mean 0 and standard deviation 1), and get the absolute numbers of generated results.

After getting the data, we can simply call the compiled module to execute.


6.3: Convolution

In convolution, the kernel specifies the weight and positions of the neighbors of each pixel. To find the convolved value of a pixel, the central pixel of the kernel is placed on that pixel. The values of each overlapping pixel in the kernel and image are multiplied by each other and summed for all the kernel pixels. To have one pixel in the center, the sides of the convolution kernel have to be an odd number. This process effectively mixes the pixel values of each pixel with its neighbors, resulting in a blurred image compared to the sharper input image.

Formally, convolution is one kind of linear &lsquospatial filtering&rsquo in image processing texts. If we assume that the kernel has (2a+1) and (2b+1) pixels on each side, the convolved value of a pixel placed at (x) and (y) ((C_)) can be calculated from the neighboring pixel values in the input image ((I)) and the kernel ((K)) from

Any pixel coordinate that is outside of the image in the equation above will be considered to be zero. When the kernel is symmetric about its center the blurred image has the same orientation as the original image. However, if the kernel is not symmetric, the image will be affected in the opposite manner, this is a natural consequence of the definition of spatial filtering. In order to avoid this we can rotate the kernel about its center by 180 degrees so the convolved output can have the same original orientation. Technically speaking, only if the kernel is flipped the process is known Convolution. If it isn&rsquot it is known as Correlação.

To be a weighted average, the sum of the weights (the pixels in the kernel) have to be unity. This will have the consequence that the convolved image of an object and unconvolved object will have the same brightness (see Brightness, Flux, Magnitude and Surface brightness), which is natural, because convolution should not eat up the object photons, it only disperses them.


6.3: Convolution

All the programs that need convolution will need to be given a convolution kernel file and extension. In most cases (other than Convolve, see Convolve) the kernel file name is optional. However, the extension is necessary and must be specified either on the command-line or at least one of the configuration files (see Configuration files). Within Gnuastro, there are two ways to create a kernel image:

  • MakeProfiles: You can use MakeProfiles to create a parametric (based on a radial function) kernel, see MakeProfiles. By default MakeProfiles will make the Gaussian and Moffat profiles in a separate file so you can feed it into any of the programs.
  • ConvertType: You can write your own desired kernel into a text file table and convert it to a FITS file with ConvertType, see ConvertType. Just be careful that the kernel has to have an odd number of pixels along its two axes, see Convolution process. All the programs that do convolution will normalize the kernel internally, so if you choose this option, you don&rsquot have to worry about normalizing the kernel. Only within Convolve, there is an option to disable normalization, see Invoking Convolve.

The two options to specify a kernel file name and its extension are shown below. These are common between all the programs that will do convolution.

The convolution kernel file name. The BITPIX (data type) value of this file can be any standard type and it does not necessarily have to be normalized. Several operations will be done on the kernel image prior to the program&rsquos processing:

  • It will be converted to floating point type.
  • All blank pixels (see Blank pixels) will be set to zero.
  • It will be normalized so the sum of its pixels equal unity.
  • It will be flipped so the convolved image has the same orientation. This is only relevant if the kernel is not circular. See Convolution process.

The convolution kernel HDU. Although the kernel file name is optional, before running any of the programs, they need to have a value for --khdu even if the default kernel is to be used. So be sure to keep its value in at least one of the configuration files (see Configuration files). By default, the system configuration file has a value.


Assista o vídeo: I Spit on Your Grave (Outubro 2021).