Exemplos de cálculo de convoluções

Origem: Wikipédia, a enciclopédia livre.

Encontram-se aqui alguns exemplos de cálculo de convoluções. O cálculo pode ser direto, isto é, ser feito a partir das expressões de definição, ou indireto, isto é, feito a partir de uma transformada integral e do teorema da convolução.

Cálculo direto[editar | editar código-fonte]

Convolução contínua[editar | editar código-fonte]

Funções retangulares[editar | editar código-fonte]

Sejam f(x) = g(x) = rect(x). A convolução linear contínua de f e g será dada pela expressão (1a)



Como a função retangular rect(u) é nula para |u| > ½ e igual á unidade quando |u| < ½, podemos escrever



Fazendo v = x - u, dv = - du, teremos que v = x + ½ quando u = -½ e v = x - ½ quando u = ½. Assim,



Para x = -1, o intervalo de integração será . Como rect(v) é nula para |v| > ½, a integral será nula. Coisa similar acontece para qualquer valor de x que não esteja no intervalo [-1, 1].

Para x = 0, o intervalo de integração será . rect(v) será não-nula em todo o intervalo. Para -1 < x < 0, o limite de integração superior crescerá de até chegar a , mas rect(v) será não nula apenas para v > -½. Assim, podemos reescrever o intervalo como . Similarmente, para 0 < x < 1, o limite de integração inferior crescerá de até chegar a , mas rect(v) será não nula apenas para v < ½. O intervalo de integração será . Por isso,





que é a definição da função triangular tri(x).

Esse exemplo mostra que o cálculo da convolução a partir da fórmula de definição é complicada quando as funções envolvidas são descontínuas ou nulas em partes do domínio, mesmo quando bastante simples, pois é preciso analisar cuidadosamente os limites de integração.

Função exponencial e função retangular[editar | editar código-fonte]

Seja f(x) = rect(x) e g(x) = e-x·H(x), onde H(x) é a função degrau unitário. Partindo da expressão (1a) e executando as mesmas operações do exemplo acima, teremos



Para x = -½, o intervalo de integração será [-1, 0]. Como H(v) é nula para v < 0, a integral será nula. Coisa similar acontece para qualquer valor de x < -½.

Para x = ½, o intervalo de integração será [0, 1]. Para qualquer valor superior, H(v) é não-nula em todo o intervalo.

Para -½ < x < ½, H(v) será nula em uma parte do intervalo de integração, correspondente a v < 0. A medida que x cresce, o limite superior desse subintervalo cresce, mas o limite inferior será sempre v=0. Assim,





Função seno integral[editar | editar código-fonte]

Seja f(x) e g(x) a Função sinc sinc(x) = . A convolução será dada por





Como a função é ímpar, o valor da integral em um intervalo simétrico se anula. Assim:







Convolução discreta[editar | editar código-fonte]

Funções retangulares[editar | editar código-fonte]

Sejam f(x) = g(x) = rect(x). Podemos escolher, a princípio, um período de amostragem de 0.5, um número de 5 amostras e um intervalo centrado na origem, [-1, 1]. Assim, f(k) = g(k) = {0, 1, 1, 1, 0}. Aplicamos a expressão (2a), e obtemos h(k), que será uma sequência de 9 valores, abrangendo, portanto, o intervalo de cálculo [-2, 2]: {0, 0, 1, 2, 3, 2, 1, 0, 0}. É evidente que o resultado é a função triangular, e que ele deve ser normalizado dividindo-se os valores por 3, que é o tamanho efetivo (isto é, não-nulo) da amostra, o que resulta em h(k) = {0.000, 0.000, 0.333, 0.667, 1.000, 0.667, 0.333, 0.000, 0.000}.

Esse exemplo mostra como o cálculo numérico é mais simples que os procedimentos analíticos.

Função exponencial e função retangular[editar | editar código-fonte]

Seja f(x) = rect(x) e g(x) = e-x·H(x). Procedendo como no exemplo acima, escolhemos a princípio o mesmo período de amostragem e o mesmo número de amostras, e obtemos f(k) = {0, 1, 1, 1, 0}, g(k) = {0.00, 0.00, 1.00, 0.61, 0.37} e h(k) = {0.000, 0.000, 0.000, 1.000, 1.607, 1.974, 0.974, 0.368, 0.000}. Novamente, o fator de escalamento é 3, o que resulta em h(k) = {0.000, 0.000, 0.000, 0.333, 0.536, 0.658, 0.325, 0.123, 0.000}.

Mesmo com esse reduzido número de amostras, é possível identificar uma subida rápida e uma descida lenta como características da resposta.

Aumentando-se o número de amostras para 10 e reduzindo-se o período de amostragem para 0.25, o intervalo de integração passa a ser [-1, 1.25], f(k) = {0, 0, 1, 1, 1, 1, 1, 0, 0, 0 }, g(k) = {0.00, 0.00, 0.00, 0.00, 1,00, 0.78, 0.61, 0.47, 0.37, 0.29} e h(k) = {0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 1.000, 1.779, 2.385, 2.858, 3.226, 2.512, 1.733, 1.127, 0.654, 0.287, 0.000, 0.000, 0.000}, abrangendo o intervalo [-2, 2.5]. Observe-se que o mero aumento do número de amostras afeta a amplitude dos valores não normalizados h(k).

Cálculo indireto[editar | editar código-fonte]

Convolução contínua[editar | editar código-fonte]

Funções retangulares[editar | editar código-fonte]

Sejam f(x) = g(x) = rect(x). A convolução linear contínua de f e g pode ser calculada através da transformação de Fourier e do teorema da convolução:

A transformada de Fourier de rect(x) pode ser obtida em qualquer tabela. Temos que

Assim,

Esse exemplo mostra que o cálculo indireto da convolução evita a necessidade de analisar os limites de integração que aparece quando se calcula a convolução diretamente. É preciso apenas alguma manipulação para colocar as expressões numa forma padrão que permita consultar tabelas prontas.

Função exponencial e função retangular[editar | editar código-fonte]

Seja f(x) = rect(x) e g(x) = e-x·H(x). Procedendo como no exemplo acima, teremos


Perceba-se que aqui se escolheu, para a transformada da função retangular, uma forma diferente da adotada no exemplo de cálculo direto. Com alguma manipulação algébrica, teremos