Calculadora de convolução
Resultado
Resultado da convolução
- Soma
- 90,000000
- Termos no resultado
- 5
Uma calculadora de convolução recebe duas sequências e as combina em uma terceira, multiplicando cada par que se alinha e somando cada conjunto de produtos. Esta é a convolução discreta de duas sequências finitas, e o deslizamento é literal: uma sequência anda uma casa por vez ao longo da outra, e cada posição do caminho contribui com um termo do resultado. O primeiro termo é o primeiro número de uma sequência vezes o primeiro da outra; o segundo é a soma dos dois produtos que se sobrepõem ali, e assim por diante até a outra ponta. Duas sequências de três termos dão um resultado de cinco termos, já que o comprimento de uma convolução completa é a soma dos dois comprimentos menos um. O resultado sai em ordem, então a posição carrega o índice, e a soma de todos os termos é relatada ao lado — uma quantidade que se confere de relance, porque ela é sempre igual ao produto das somas das duas sequências. Valores decimais e negativos são aceitos, e uma sequência de um único número é permitida: a convolução com ela é um simples escalonamento.
O par padrão, resolvido um índice por vez
| Índice k | Termos | Valor |
|---|---|---|
| 0 | 1 × 4 | 4 |
| 1 | 1 × 5 + 2 × 4 | 13 |
| 2 | 1 × 6 + 2 × 5 + 3 × 4 | 28 |
| 3 | 2 × 6 + 3 × 5 | 27 |
| 4 | 3 × 6 | 18 |
Esta é a derivação por trás da leitura do painel, com o índice escrito para cada termo — o painel omite os índices porque uma linha separada por vírgulas já tem uma ordem, mas a correspondência entre posição e índice é exatamente o que a tabela mostra. Lendo a coluna do meio de cima para baixo, o deslizamento fica visível: os produtos crescem em número na direção do meio e encolhem de novo na outra ponta, e cada linha usa apenas os termos que de fato se sobrepõem ali. Os valores são números inteiros porque as duas sequências padrão são inteiras; uma entrada decimal produziria uma coluna decimal, e a célula de uma tabela não é localizada — o separador decimal continuaria sendo um ponto.
Fórmula
(a * b)[k] = Σᵢ a[i] × b[k − i] comprimento = m + n − 1
- a, b
- As duas sequências, digitadas como números separados por ponto e vírgula. A ordem delas não importa — a convolução é comutativa, então trocar as duas caixas devolve um resultado idêntico. Elas não precisam ter o mesmo comprimento, e qualquer uma das duas pode conter decimais ou valores negativos. Cada caixa aceita até duzentos termos.
- k
- O índice do termo que está sendo produzido, indo de 0 até o comprimento do resultado menos um. Ele não é impresso ao lado de cada valor, porque uma linha separada por vírgulas já tem uma ordem: o primeiro número é k = 0, o segundo é k = 1. A tabela de referência abaixo escreve os índices por extenso para o par padrão, uma linha para cada, e é lá que se olha quando a conferência é das posições.
- a[i] × b[k − i]
- Um produto da soma. Para cada k o índice i percorre todas as posições em que as duas sequências têm um termo, então a quantidade de produtos somados sobe de um nas pontas até o comprimento da sequência mais curta no meio. O padrão de sobreposição é a ideia inteira: uma sequência desliza ao longo da outra e os produtos são recolhidos coluna por coluna.
- Σᵢ
- A soma sobre esses produtos, que é um termo do resultado. Cada termo é arredondado em seis casas decimais, e a soma relatada ao lado da sequência é a soma desses termos já arredondados, e não dos não arredondados — por isso somar os números impressos no painel dá exatamente o total impresso.
- m + n − 1
- O comprimento do resultado, relatado como uma leitura própria. Duas sequências de três dão cinco termos; um único número convoluído com uma sequência de três termos dá três. Os termos extras além da mais longa das duas são o que fazem desta a convolução completa, e não daquele tipo que guarda apenas a parte em que as sequências se sobrepõem por inteiro.
Use esta página quando duas sequências precisarem ser combinadas em uma distribuição: o número de maneiras de dois dados somarem cada total, o efeito de uma janela deslizante de média móvel sobre uma série, os coeficientes do produto de dois polinômios. Quando a pergunta for sobre uma sequência sozinha — os termos dela, a soma dela, o padrão dela —, a calculadora de sequências cobre isso, e quando o que você está escolhendo é a janela de uma média móvel, a calculadora de média é a página que dá nome a ela.
Exemplos resolvidos
Um, dois, três contra quatro, cinco, seis
- k = 0: só os primeiros termos se sobrepõem, então 1 × 4 = 4
- k = 1: 1 × 5 + 2 × 4 = 5 + 8 = 13
- k = 2: 1 × 6 + 2 × 5 + 3 × 4 = 6 + 10 + 12 = 28
- k = 3: 2 × 6 + 3 × 5 = 12 + 15 = 27
- k = 4: só os últimos termos se sobrepõem, 3 × 6 = 18
- O resultado é 4, 13, 28, 27, 18 e o total dele é 90, que também é 6 × 15
A última linha é a conferência que torna esta página fácil de confiar: a soma de uma convolução é sempre o produto das somas das duas sequências, aqui 1 + 2 + 3 = 6 contra 4 + 5 + 6 = 15. Isso cai da própria álgebra, porque cada produto do resultado é o produto de um termo de cada sequência e cada par possível aparece exatamente uma vez.
Dois dados e o formato dos totais deles
- Um dado tem uma maneira de mostrar cada uma das seis faces, então cada sequência é seis uns
- Convoluí-las conta os pares que somam cada total: k = 0 dá 1 × 1 = 1 maneira de rolar uma soma 2
- k = 1 dá 1 + 1 = 2 maneiras de rolar uma soma 3, e a contagem segue subindo
- O pico é 6, no termo do meio, que é a soma 7
- O resultado é 1, 2, 3, 4, 5, 6, 5, 4, 3, 2, 1, e o total dele é 36
Esta é a ilustração padrão do teorema central do limite em miniatura: duas distribuições planas convoluídas dão uma triangular, e convoluir um terceiro dado arredondaria mais um pouco na direção de um sino. O total de 36 é também a conferência — o produto das duas somas é 6 × 6, que é todo par ordenado de faces, um resultado para cada.
Um único número escala a sequência inteira
- Uma sequência de um termo não tem com o que se sobrepor, então cada termo do resultado é esse termo vezes um termo da outra sequência
- k = 0: 2 × 1 = 2
- k = 1: 2 × 2 = 4
- k = 2: 2 × 3 = 6
- O resultado é 2, 4, 6 e o total é 12, que é 2 × 6
Vale rodar o caso degenerado uma vez, porque ele mostra que a imagem do deslizamento tem fim: com uma sequência de comprimento um nunca há mais de um produto para somar, e a convolução se reduz a uma multiplicação. É a mesma razão pela qual a fórmula do comprimento m + n − 1 dá 1 + 3 − 1 = 3, e não algo maior.
Limitações
Esta página calcula a convolução completa, e apenas a completa. As duas variantes que guardam só parte do resultado não são oferecidas: a que devolve uma sequência do comprimento da entrada mais longa e a que devolve apenas as posições em que as sequências se sobrepõem por inteiro. Nenhuma das duas está bem definida para duas sequências de comprimento par, e o resultado completo é o que contém as duas — as variantes mais curtas são fatias dele, e não cálculos diferentes. Cada sequência pode ter no máximo duzentos termos, e cada valor é limitado a 1.000.000 em módulo, o que é um limite de exibição: uma convolução multiplica e depois soma, então termos grandes estouram a faixa legível muito antes de estourarem um double. Todo termo do resultado é arredondado em seis casas decimais, e o total relatado é a soma dos termos arredondados, de modo que somar os números impressos à mão reproduz o total impresso, e não um total ligeiramente diferente. O resultado é uma linha de números separada por vírgulas e não é localizado: o separador entre um termo e o seguinte é uma vírgula, o separador decimal continua sendo um ponto e não há separador de milhar nenhum, então um termo de quatro dígitos é impresso como 1000 enquanto a soma logo ao lado, essa sim formatada para o português, aparece como 1.000,000000. As posições carregam os índices e não são rotuladas uma a uma; a tabela de referência dá os índices explicitamente para o par padrão.
Perguntas frequentes
- Como convoluir duas sequências à mão?
- Deslize uma sequência ao longo da outra e some os produtos em cada posição. Com 1, 2, 3 e 4, 5, 6 o primeiro termo é 1 × 4 = 4, o segundo é 1 × 5 + 2 × 4 = 13, e assim por diante até 3 × 6 = 18 na outra ponta. O resultado tem cinco termos, já que duas sequências de três convoluem para um comprimento de 3 + 3 − 1.
- Como conferir se uma convolução está certa?
- Some o resultado e compare com o produto das somas das duas sequências. Para 1, 2, 3 contra 4, 5, 6 isso é 90 contra 6 × 15, e os dois têm de coincidir. A razão é que cada termo do resultado é uma soma de produtos aos pares, e todo par possível das duas sequências aparece em exatamente uma dessas somas.
- Por que o resultado tem mais termos do que qualquer uma das sequências?
- Porque a convolução completa guarda as posições em que as sequências se sobrepõem apenas em parte. Com 1, 2, 3 contra 4, 5, 6 são cinco posições assim: uma em cada ponta, onde um único par se encontra, e três no meio, onde vários se encontram. As duas variantes mais curtas da operação — a que tem o comprimento da entrada mais longa e a que guarda só as sobreposições completas — são ambas fatias deste resultado.
- O que convoluir dois dados tem a ver com probabilidade?
- Ela conta os resultados. Um dado é uma sequência de seis uns, um para cada face, e convoluir essa sequência com ela mesma conta os pares ordenados que somam cada total: uma maneira de fazer 2, duas de fazer 3, subindo até seis maneiras de fazer 7 e caindo de novo. O total do resultado, 36, é o número de pares ordenados, e é por isso que dividir cada termo por ele dá a probabilidade.
- Uma média móvel é uma convolução?
- É. Uma média móvel pega uma janela de pesos iguais — cinco dias valendo um quinto cada, por exemplo — e a desliza ao longo da série, o que é exatamente uma convolução com essa janela como uma das duas sequências. É por isso que a operação aparece em suavização, em filtros e em processamento de imagem: o que desliza é um conjunto de pesos, e o que é suavizado é a sequência.
Referências
- Convolution — the definition, the sum over overlapping products, and the length of the result — Wolfram MathWorld (United States)
- Cauchy Product — the same rule applied to the coefficients of two power series, which is what convolving two polynomial coefficient lists computes — Wolfram MathWorld (United States)
- Convolution Theorem — why the transform of a convolution is the product of the transforms, and where the operation is met in signal processing — Wolfram MathWorld (United States)