A diferença entre convolução e correlação cruzada do ponto de vista da análise de sinal

33

Estou tentando entender a diferença entre convolução e correlação cruzada. Eu li um entendido Esta resposta. Eu também entendo a imagem abaixo.

Mas, em termos de processamento de sinal (um campo sobre o qual sei pouco ...), dados dois sinais (ou talvez um sinal e um filtro?), Quando usaremos a convolução e quando preferiremos usar a correlação cruzada? Quer dizer, quando analisarmos na vida real, preferimos a convolução e quando, a correlação cruzada.

Parece que esses dois termos têm muito uso, então, qual é esse uso?

Covolution

* A correlação cruzada aqui deve ser lida em g*fvez def*g

MathBgu
fonte

Respostas:

24

No processamento de sinal, dois problemas são comuns:

  • Qual é a saída desse filtro quando sua entrada é ? A resposta é dada por x ( t ) h ( t ) , onde h ( t ) é um sinal chamado "resposta ao impulso" do filtro e é a operação de convolução.x(t)x(t)h(t)h(t)

  • Dado um sinal ruidoso , o sinal x ( t ) está de alguma forma presente em y ( t ) ? Em outras palavras, y ( t ) tem a forma x ( t ) + n ( t ) , onde n ( t ) é ruído? A resposta pode ser encontrada pela correlação de y ( t ) e x ( t ) . Se a correlação for grande por um determinado atrasoy(t)x(t)y(t)y(t)x(t)+n(t)n(t)y(t)x(t) , então podemos ter certeza de que a resposta é sim.τ

Observe que quando os sinais envolvidos são simétricos, convolução e correlação cruzada se tornam a mesma operação; esse caso também é muito comum em algumas áreas do DSP.

MBaz
fonte
Consegui. Muito obrigado pela sua resposta clara e brilhante!
MathBgu
3
O que eu gosto na explicação da resposta ao impulso é que você realmente tem uma intuição de por que a convolução é "revertida". Em termos discretos, a saída atual é a resposta atual da entrada x impulso no tempo 0 + saída residual das respostas anteriores dos impulsos das entradas (entrada a n-1 * impulso 1 + entrada n-2 * impulso 2 e assim por diante).
Jean-Frederic PLANTE
@ Jean-FredericPLANTE sim, é uma boa maneira de explicar isso.
MBaz 21/08/19
Esta resposta com o comentário de Jean-FredericPLANTE a torna mais sensata.
tpk
12

Os dois termos convolução e correlação cruzada são implementados de maneira muito semelhante no DSP.

Qual você usa depende do aplicativo.

Se você estiver executando uma operação de filtragem linear e invariante no tempo, convolve o sinal com a resposta de impulso do sistema.

Se você está "medindo a semelhança" entre dois sinais, correlaciona- os.

Os dois termos se reúnem quando você tenta produzir um filtro correspondente .

Aqui, você está tentando decidir se um determinado sinal, contém um "pulso" (sinal) conhecido, p [ n ] . Uma maneira de fazer isso é convencer o sinal dado, s com a inversão do tempo do pulso conhecido, p : você está usando a convolução para executar a correlação cruzada do sinal fornecido com o pulso conhecido.s[n]p[n]sp


Uma nota lateral

O termo "correlação cruzada" é (para alguns) mal utilizado no campo do DSP.

Para estatísticos, uma correlação é um valor que mede a proximidade de duas variáveis ​​e deve estar entre e + 1 .1+1

Como você pode ver na entrada da Wikipedia sobre correlação cruzada , a versão DSP é usada e eles declaram:

a correlação cruzada é uma medida de similaridade de duas séries em função do atraso de uma em relação à outra.

mx[n]y[n+m]
Peter K.
fonte
1
Isso é extremamente útil para mim. Obrigado!
MathBgu
3

No processamento do sinal, a convolução é realizada para obter a saída de um sistema LTI. A correlação (correlação automática ou cruzada) geralmente é calculada para ser usada posteriormente para outros cálculos.

Você deve ter cuidado para não confundir correlação, covariância e coeficiente de correlação. A correlação não precisa necessariamente estar entre -1 e 1. O coeficiente de correlação ( https://en.wikipedia.org/wiki/Pearson_product-moment_correlation_coefficient ) cai entre -1 e 1 porque é dimensionado pelas duas variáveis ​​aleatórias . O que devemos lembrar é que a operação real a ser realizada no processamento estatístico de sinais para analisar o quão relacionadas são duas variáveis ​​aleatórias é a "Covariância", não a correlação. Mas para a maioria das aplicações em que um sinal é capturado por um sensor e transformado em tensão e digitalizado com um ADC, você pode assumir que o sinal tem média zero, portanto a correlação é igual à covariância.

osso
fonte
Vou dar uma olhada nesse link. Obrigado!
MathBgu #
3

@MathBgu Eu li todas as respostas acima, todas são uma coisa muito informativa que gostaria de acrescentar para sua melhor compreensão, considerando a fórmula da convolução da seguinte maneira

f(x)g(x)=f(τ)g(xτ)dτ

e para a correlação cruzada

(fg)(t)=deff(τ)g(t+τ)dτ,

(t)(t)

Usamos a convolução para obter a saída / resultado de um sistema que possui dois blocos / sinais e eles estão diretamente próximos um do outro (em série) no domínio do tempo.

RM Faheem
fonte
Obrigado por mencionar este ponto de esclarecimento adicional!
MathBgu
O * em f * implica conjugado complexo? Em vez de "atravessar o eixo y", considere "inverter o eixo do tempo", porque o flip parece que algo vertical está acontecendo, esp. ao mencionar o eixo y.
Petrus Theron
2

Há muita sutileza entre os significados de convolução e correlação. Ambos pertencem à idéia mais ampla de produtos internos e projeções na álgebra linear, ou seja, projetando um vetor sobre o outro para determinar o quão "forte" é na direção do último.

Essa idéia se estende ao campo das redes neurais, onde projetamos uma amostra de dados em cada linha de uma matriz, para determinar quão bem "se encaixa" nessa linha. Cada linha representa uma certa classe de objetos. Por exemplo, cada linha pode classificar uma letra no alfabeto para reconhecimento de manuscrito. É comum se referir a cada linha como um neurônio, mas também pode ser chamado de filtro correspondente.

Em essência, estamos medindo como duas coisas são semelhantes ou tentando encontrar um recurso específico em algo, por exemplo, um sinal ou imagem. Por exemplo, quando você envolve um sinal com um filtro passa-banda, está tentando descobrir qual conteúdo ele tem nessa banda. Quando você correlaciona um sinal com um sinusóide, por exemplo, a DFT, procura a força da frequência do sinusóide no sinal. Observe que, no último caso, a correlação não desliza, mas você ainda está "correlacionando" duas coisas. Você está usando um produto interno para projetar o sinal no sinusóide.

Então, qual é a diferença? Bem, considere que, com a convolução, o sinal é inverso em relação ao filtro. Com um sinal variável no tempo, isso faz com que os dados sejam correlacionados na ordem em que entram no filtro. Por um momento, vamos definir a correlação simplesmente como um produto escalar, ou seja, projetando uma coisa na outra. Portanto, no início, estamos correlacionando a primeira parte do sinal com a primeira parte do filtro. À medida que o sinal continua através do filtro, a correlação se torna mais completa. Observe que cada elemento no sinal é multiplicado apenas pelo elemento do filtro que está "tocando" naquele momento.

Então, com a convolução, estamos nos correlacionando em certo sentido, mas também estamos tentando preservar a ordem no tempo em que as mudanças ocorrem à medida que o sinal interage com o sistema. Se o filtro for simétrico, no entanto, como costuma ser, não importa. Convolução e correlação produzirão os mesmos resultados.

Com a correlação, estamos apenas comparando dois sinais, e não tentando preservar uma ordem de eventos. Para compará-los, queremos que eles estejam na mesma direção, ou seja, alinhados. Deslizamos um sinal sobre o outro para testar sua semelhança em cada janela de tempo, caso estejam fora de fase um com o outro ou procuremos um sinal menor em um maior.

No processamento de imagens, as coisas são um pouco diferentes. Nós não nos importamos com o tempo. A convolução ainda possui algumas propriedades matemáticas úteis . No entanto, se você estiver tentando combinar partes de uma imagem maior com uma menor (por exemplo, filtragem correspondente), não será necessário invertê-la, pois os recursos não serão alinhados. A menos, é claro, que o filtro seja simétrico. No processamento de imagens, a correlação e a convolução são às vezes usadas de forma intercambiável, particularmente com redes neurais . Obviamente, o tempo ainda é relevante se a imagem for uma representação abstrata de dados bidimensionais, onde uma dimensão é o tempo - por exemplo, espectrograma.

Portanto, em resumo, tanto a correlação quanto a convolução são produtos internos deslizantes, usados ​​para projetar uma coisa na outra, pois variam ao longo do espaço ou do tempo. A convolução é usada quando a ordem é importante e geralmente é usada para transformar os dados. A correlação é normalmente usada para encontrar uma coisa menor dentro de uma coisa maior, ou seja, para combinar. Se pelo menos uma das duas "coisas" for simétrica, não importa qual você use.

orodbhen
fonte
0

Mantenha o Processamento de Sinais de lado, se você apenas tentar entender o que está acontecendo em Convolução e Correlação, ambas são operações muito semelhantes. A única diferença está na convolução, uma das variáveis ​​é invertida (invertida) antes de realizar o acúmulo do produto. Veja que não estou usando a palavra sinal em nenhum lugar acima. Estou falando apenas em termos das operações realizadas.

Agora, vamos ao processamento de sinais.

A operação de convolução é usada para calcular a saída de um sistema linear invariante no tempo (sistema LTI), dada uma entrada de entrada ( x ) e resposta de impulso do sistema ( h ). Para entender por que apenas a operação Convolution é usada para obter a saída de um sistema LTI, existe uma grande derivação. Por favor, encontre a derivação aqui.

http://www.rctn.org/bruno/npb163/lti-conv/lti-convolution.html

A operação de correlação é usada para encontrar a semelhança entre os dois sinais x e y. Mais o valor da correlação, mais é a semelhança entre os dois sinais.

Entenda a diferença aqui,

  • Convolução -> entre sinal e um sistema (filtro)

  • Correlação -> entre dois sinais

Portanto, do ponto de vista da análise de sinal, a operação de convolução não é usada. Somente a correlação é usada do ponto de vista da análise de sinal. Enquanto a convolução é usada do ponto de vista da análise do sistema.

A melhor maneira de entender as operações de convolução e correlação é entender o que acontece quando duas convoluções e correlações são feitas entre duas variáveis ​​contínuas, como mostrado nos diagramas da pergunta.

Kartik Podugu
fonte