Różnica między splotem a korelacją krzyżową z punktu widzenia analizy sygnału

33

Próbuję zrozumieć różnicę między splotem a korelacją krzyżową. Przeczytałem zrozumiałą odpowiedź. Rozumiem również poniższy obrazek.

Ale jeśli chodzi o przetwarzanie sygnałów (pole, o którym niewiele wiem ...), Biorąc pod uwagę dwa sygnały (a może sygnał i filtr?), Kiedy użyjemy splotu, a kiedy wolimy zastosować korelację krzyżową, ja oznacza, że ​​kiedy w prawdziwym życiu analizujemy wolimy splot, a kiedy - korelację krzyżową.

Wygląda na to, że te dwa terminy mają wiele zastosowań, więc do czego to służy?

Covolution

* Korelacja krzyżowa tutaj powinna brzmieć g*fzamiastf*g

MathBgu
źródło

Odpowiedzi:

24

W przetwarzaniu sygnału powszechne są dwa problemy:

  • Jaka jest wydajność tego filtra, gdy jego wejściem jest ? Odpowiedzi udziela , gdzie jest sygnałem zwanym „odpowiedzią impulsową” filtra, a jest operacją splotu.x ( t ) h ( t ) h ( t ) x(t)x(t)h(t)h(t)

  • Biorąc pod uwagę zaszumiony sygnał , czy sygnał jakiś sposób obecny w ? Innymi słowy, czy w postaci , gdzie oznacza hałas? Odpowiedź można znaleźć przez korelację i . Jeśli korelacja jest duża dla danego opóźnienia czasowego , możemy być pewni, że odpowiedź brzmi tak.x ( t ) y ( t ) y ( t ) x ( t ) + n ( t ) n ( t ) y ( t ) x ( t ) τy(t)x(t)y(t)y(t)x(t)+n(t)n(t)y(t)x(t)τ

Zauważ, że gdy sygnały są symetryczne, splot i korelacja krzyżowa stają się tą samą operacją; ten przypadek jest również bardzo powszechny w niektórych obszarach DSP.

MBaz
źródło
Rozumiem. Wielkie dzięki za jasną i jasną odpowiedź!
MathBgu,
3
w wyjaśnieniu odpowiedzi impulsowej podoba mi się to, że naprawdę rozumiesz, dlaczego splot jest „odwrócony”. W ujęciu dyskretnym, prąd wyjściowy to prąd wejściowy x odpowiedź impulsowa w czasie 0 + rezystancja wyjściowa z poprzednich sygnałów wejściowych odpowiedzi impulsowych (wejście n-1 * impuls 1 + wejście n-2 * impuls 2 i tak dalej).
Jean-Frederic PLANTE
@ Jean-FredericPLANTE tak, to dobry sposób na wyjaśnienie tego.
MBaz
Ta odpowiedź z komentarzem @ Jean-FredericPLANTE czyni ją bardziej sensowną.
tpk
12

Dwa terminy splot i korelacja krzyżowa są implementowane w bardzo podobny sposób w DSP.

To, którego używasz, zależy od aplikacji.

Jeśli wykonujesz liniową, niezmienną czasowo operację filtrowania, splot sygnału z odpowiedzią impulsową systemu.

Jeśli „mierzysz podobieństwo” między dwoma sygnałami, to korelujesz je krzyżowo .

Te dwa warunki łączą się, gdy próbujesz stworzyć dopasowany filtr .

Tutaj próbujesz zdecydować, czy dany sygnał zawiera znany „puls” (sygnał), . Jednym ze sposobów na to jest do convolve dany sygnał, z czasu odwrócenia znanej impulsu, : Używasz teraz splot wykonywanie korelacji krzyżowej danego sygnału ze znanym impulsu.s[n]p[n]sp


Notatka dodatkowa

Termin „korelacja krzyżowa” jest (dla niektórych) niewłaściwie używany w dziedzinie DSP.

Dla statystyków korelacja to wartość mierząca, jak blisko dwie zmienne są i powinny wynosić od do .1+1

Jak widać z wpisu Wikipedii na temat korelacji krzyżowej , używana jest wersja DSP, która stwierdza:

korelacja krzyżowa jest miarą podobieństwa dwóch szeregów w funkcji opóźnienia jednego względem drugiego.

Problem z definicją DSP: polega na tym, że ta miara „podobieństwa” zależy od energii w każdym sygnale.

mx[n]y[n+m]
Peter K.
źródło
1
Jest to dla mnie niezwykle pomocne. Dziękuję Ci!
MathBgu,
3

W przetwarzaniu sygnału splot jest wykonywany w celu uzyskania sygnału wyjściowego systemu LTI. Korelacja (automatyczna lub korelacja krzyżowa) jest zwykle obliczana do późniejszego wykorzystania do innych obliczeń

Musisz uważać, aby nie pomylić korelacji, kowariancji i współczynnika korelacji. Korelacja niekoniecznie musi wynosić od -1 do 1. Współczynnik korelacji ( https://en.wikipedia.org/wiki/Pearson_product-moment_correlation_coefficient ) mieści się w zakresie od -1 do 1, ponieważ jest skalowany przez dwie wariancje zmiennych losowych . Należy pamiętać, że prawdziwą operacją, jaką należy wykonać w statystycznym przetwarzaniu sygnałów w celu analizy powiązania dwóch zmiennych losowych, jest „kowariancja”, a nie korelacja. Ale w większości zastosowań, w których sygnał jest wychwytywany przez czujnik i przetwarzany na napięcie, a następnie przetwarzany na postać cyfrową za pomocą ADC, można założyć, że sygnał ma średnią zerową, stąd korelacja jest równa kowariancji.

kość
źródło
Zajrzę do tego linku. Dziękuję Ci!
MathBgu,
3

@MathBgu Przeczytałem wszystkie powyższe odpowiedzi, wszystkie są bardzo pouczające, jedną rzecz, którą chcę dodać dla lepszego zrozumienia, biorąc pod uwagę formułę splotu w następujący sposób

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

i dla korelacji krzyżowej

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

dowiadujemy się, że pod względem równania jedyną różnicą jest to, że w splotach przed wykonaniem iloczynu przesuwanego, odwracamy sygnał wzdłuż osi y, tzn. zmieniamy na , podczas gdy korelacja krzyżowa jest tylko przesuwana iloczyn iloczynu dwóch sygnałów.(t)(t)

Używamy splotu, aby uzyskać wynik / wynik systemu, który ma dwa bloki / sygnały i są one bezpośrednio obok siebie (szeregowo) w dziedzinie czasu.

RM Faheem
źródło
Dziękujemy za wzmiankę o tym punkcie wyjaśniającym!
MathBgu,
Czy * in f * oznacza złożony koniugat? Zamiast „w poprzek osi y” rozważ „odwróć oś czasu”, ponieważ flip ma wrażenie, że dzieje się coś pionowego, szczególnie. gdy wspomina się o osi y.
Petrus Theron
2

Istnieje wiele subtelności między znaczeniem splotu i korelacji. Oba należą do szerszej idei produktów wewnętrznych i rzutów w algebrze liniowej, tj. Rzutują jeden wektor na drugi, aby określić, jak „silny” jest w kierunku tego drugiego.

Pomysł ten rozciąga się na dziedzinę sieci neuronowych, gdzie rzutujemy próbkę danych na każdy wiersz matrycy, aby określić, jak dobrze „pasuje” do tego rzędu. Każdy wiersz reprezentuje określoną klasę obiektów. Na przykład każdy wiersz może klasyfikować literę w alfabecie do rozpoznawania pisma ręcznego. Powszechnie określa się każdy wiersz jako neuron, ale można go również nazwać dopasowanym filtrem.

Zasadniczo mierzymy, jak podobne są dwie rzeczy, lub próbujemy znaleźć określoną cechę w czymś, np. Sygnał lub obraz. Na przykład, gdy zwołujesz sygnał z filtrem pasmowoprzepustowym, próbujesz dowiedzieć się, jakie treści ma w tym paśmie. Kiedy korelujesz sygnał z sinusoidą, np. DFT, szukasz siły częstotliwości sinusoidy w sygnale. Zauważ, że w tym drugim przypadku korelacja nie przesuwa się, ale nadal „korelujesz” dwie rzeczy. Używasz produktu wewnętrznego do projekcji sygnału na sinusoidę.

Więc jaka jest różnica? Cóż, weź pod uwagę, że w przypadku splotu sygnał jest odwrócony względem filtra. W przypadku sygnału zmieniającego się w czasie powoduje to, że dane są skorelowane w kolejności, w jakiej wchodzą do filtra. Przez chwilę zdefiniujmy korelację jako iloczyn kropkowy, tj. Rzutując jedną rzecz na drugą. Tak więc na początku korelujemy pierwszą część sygnału z pierwszą częścią filtra. Gdy sygnał przepływa przez filtr, korelacja staje się bardziej kompletna. Zauważ, że każdy element w sygnale jest mnożony tylko przez element filtra, który „dotyka” w tym momencie.

Tak więc, dzięki splotowi, korelujemy w pewnym sensie, ale staramy się również zachować porządek w czasie, w którym zachodzą zmiany, gdy sygnał wchodzi w interakcje z systemem. Jeśli jednak filtr jest symetryczny, jak to często bywa, to tak naprawdę nie ma to znaczenia. Konwolucja i korelacja przyniosą takie same wyniki.

Dzięki korelacji porównujemy tylko dwa sygnały, a nie staramy się zachować porządek zdarzeń. Aby je porównać, chcemy, aby były skierowane w tym samym kierunku, tj. Ustawiły się w jednej linii. Przesuwamy jeden sygnał nad drugim, abyśmy mogli przetestować ich podobieństwo w każdym oknie czasowym, na wypadek, gdyby nie byli ze sobą w fazie lub szukamy mniejszego sygnału w większym.

W przetwarzaniu obrazu sprawy wyglądają nieco inaczej. Nie dbamy o czas. Konwolucja wciąż ma jednak pewne przydatne właściwości matematyczne . Jeśli jednak próbujesz dopasować części większego obrazu do mniejszego (tj. Dopasowane filtrowanie), nie będziesz chciał go odwracać, ponieważ wtedy funkcje nie będą się zgadzać. O ile oczywiście filtr nie jest symetryczny. W przetwarzaniu obrazu korelacja i splot są czasami stosowane zamiennie, szczególnie w sieciach neuronowych . Oczywiście czas ma nadal znaczenie, jeśli obraz jest abstrakcyjną reprezentacją danych dwuwymiarowych, gdzie jednym wymiarem jest czas - np. Spektrogram.

Podsumowując, zarówno korelacja, jak i splot są przesuwanymi produktami wewnętrznymi, używanymi do rzutowania jednej rzeczy na drugą, ponieważ różnią się one w czasie lub przestrzeni. Konwolucja jest używana, gdy ważna jest kolejność, i zwykle jest używana do transformacji danych. Korelacja jest zwykle stosowana do znajdowania mniejszej rzeczy wewnątrz większej rzeczy, tj. Do dopasowania. Jeśli co najmniej jedna z dwóch „rzeczy” jest symetryczna, nie ma znaczenia, której używasz.

orodbhen
źródło
0

Odłóż na bok Przetwarzanie Sygnału, jeśli tylko spróbujesz zrozumieć, co dzieje się w Konwolucji i Korelacji, oba są bardzo podobnymi operacjami. Jedyną różnicą jest konwekcja, jedna ze zmiennych jest odwrócona (odwrócona) przed wykonaniem akumulacji produktu. Zobacz, że nigdzie powyżej nie używam słowa sygnał . Mówię tylko o wykonanych operacjach.

Przejdźmy teraz do przetwarzania sygnałów.

Operacja konwolucji służy do obliczenia mocy wyjściowej systemu niezmiennika czasu liniowego (system LTI), biorąc pod uwagę singal wejściowy ( x ) i odpowiedź impulsową systemu ( h ). Aby zrozumieć, dlaczego do uzyskania danych wyjściowych systemu LTI używana jest tylko operacja Konwolucja, istnieje duża pochodna. Proszę znaleźć pochodną tutaj.

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

Operacja korelacji służy do znalezienia podobieństwa między dwoma sygnałami x i y. Im większa wartość korelacji, tym większe podobieństwo między dwoma sygnałami.

Zrozum różnicę tutaj

  • Konwolucja -> między sygnałem a systemem (filtr)

  • Korelacja -> między dwoma sygnałami

Z punktu widzenia analizy sygnału operacja konwolucji nie jest używana. Z punktu widzenia analizy sygnału używana jest tylko korelacja. Natomiast splot jest stosowany z punktu widzenia analizy systemu.

Najlepszym sposobem na zrozumienie operacji splotu i korelacji jest zrozumienie tego, co dzieje się, gdy dwa splot i korelacja są wykonywane między dwiema ciągłymi zmiennymi, jak pokazano na diagramach w pytaniu.

Kartik Podugu
źródło