Het verschil tussen convolutie en kruiscorrelatie vanuit het oogpunt van signaalanalyse
Geplaatst op februari 12, 2021 door adminIk probeer het verschil te begrijpen tussen convolutie en kruiscorrelatie. Ik heb een begrepen Dit antwoord gelezen. Ik begrijp ook de onderstaande afbeelding.
Maar, in termen van signaalverwerking, (een veld waar ik weinig van weet …), gegeven twee signalen (of misschien een signaal en een filter?), wanneer zullen we convolutie gebruiken en wanneer zullen we liever kruiscorrelatie gebruiken, ik bedoel, wanneer we in het echte leven de voorkeur geven aan convolutie, en wanneer, kruiscorrelatie.
Het lijkt erop dat deze twee termen veel worden gebruikt, dus, wat is dat use?
* De kruiscorrelatie hier zou g*f
moeten staan in plaats van f*g
Antwoord
Bij signaalverwerking komen twee problemen vaak voor:
-
Wat is de output van dit filter als de input $ x (t) $ is? Het antwoord wordt gegeven door $ x (t) \ ast h (t) $, waarbij $ h (t) $ een signaal is dat de “impulsresponsie” van het filter wordt genoemd, en $ \ ast $ de convolutiebewerking.
-
Gegeven een luidruchtig signaal $ y (t) $, is het signaal $ x (t) $ op de een of andere manier aanwezig in $ y (t) $? Met andere woorden, is $ y (t) $ van de vorm $ x (t) + n (t) $, waarbij $ n (t) $ ruis is? Het antwoord kan worden gevonden door de correlatie van $ y (t) $ en $ x (t) $. Als de correlatie groot is voor een bepaalde vertraging $ \ tau $, dan kunnen we erop vertrouwen dat het antwoord ja is.
Merk op dat wanneer de betrokken signalen zijn symmetrisch, convolutie en kruiscorrelatie worden dezelfde operatie; dit geval is ook heel gebruikelijk in sommige gebieden van DSP.
Reacties
- Begrepen. Heel erg bedankt voor je duidelijke en heldere antwoord!
- wat ik leuk vind aan de uitleg van de impulsrespons, is dat je echt een intuïtie krijgt waarom convolutie ” omgekeerd “. In discrete termen is de huidige output de huidige input x impulsresponsie op tijdstip 0 + restoutput van eerdere inputs impulsresponsen (input a n-1 * impuls 1 + input n-2 * impuls 2 enzovoort).
- @ Jean-FredericPLANTE ja, dat ‘ is een goede manier om het uit te leggen.
- Dit antwoord met @ Jean-FredericPLANTE commentaar maakt het logischer.
Antwoord
De twee termen convolutie en kruiscorrelatie worden op een vergelijkbare manier geïmplementeerd in DSP.
Welke u gebruikt, hangt af van de toepassing.
Als u een lineaire, tijdinvariante filterbewerking uitvoert, convolueert het signaal met de impuls van het systeem antwoord.
Als u “de overeenkomst meet” tussen twee signalen, dan kruiscorreleert ze.
De twee termen komen samen wanneer u probeert produceren een overeenkomend filter .
Hier probeert u te beslissen of een bepaald signaal $ s [n] $ een bekende “puls” (signaal) $ p [n] $ bevat. Een manier om dat te doen is door het gegeven signaal te convolueren, $ s $ met de tijdomkering van de bekende puls, $ p $: je gebruikt nu convolutie om de kruiscorrelatie van het gegeven signaal met de bekende puls uit te voeren. / p>
Een kanttekening
De term “kruiscorrelatie” wordt (voor sommigen) misbruikt op het gebied van DSP.
Voor statistici is een correlatie een waarde die meet hoe dicht twee variabelen zijn en tussen $ -1 $ en $ + 1 $ zou moeten liggen.
Zoals je kunt zien in Wikipedia over kruiscorrelatie , wordt de DSP-versie gebruikt en staat er:
kruiscorrelatie is een maatstaf voor de overeenkomst tussen twee reeksen als een functie van de vertraging van de ene ten opzichte van de andere.
Het probleem met de DSP-definitie: $$ \ sum _ {\ forall m} x [n] y [n + m] $$ is dat deze “gelijkenis” -maatstaf afhangt van de energie in elk signaal.
Reacties
- Dit is buitengewoon nuttig voor mij. Dank je!
Antwoord
@MathBgu Ik heb alle bovenstaande gegeven antwoorden gelezen, ze zijn allemaal erg informatief een ding Ik wil toevoegen voor een beter begrip, door de formule van convolutie als volgt te beschouwen
$$ f (x) * g (x) = \ int \ limieten_ {- \ infty} ^ {\ infty} f (\ tau) g (x- \ tau) \, d \ tau $$
en voor de kruiscorrelatie
$$ (f \ star g) (t) \ stackrel {\ text {def}} {=} \ int \ limieten _ {- \ infty} ^ {\ infty} f ^ * (\ tau) g (t + \ tau) \, d \ tau, $$
we komen erachter dat vergelijkingsgewijs het enige verschil is dat, in convolutie, alvorens te doen glijdend puntproduct draaien we het signaal over de y-as i.e veranderen we $ (t) $ in $ (- t) $ , terwijl de kruiscorrelatie slechts het glijdende puntproduct van twee signalen.
We gebruiken de convolutie om output / resultaat te krijgen van een systeem dat twee blokken / signalen heeft en die direct naast elkaar staan (in serie) in het tijdsdomein.
Opmerkingen
- Bedankt voor het noemen van deze aanvullingenl verhelderende punt!
- Betekent de * in f * een complexe vervoeging? In plaats van ” over de y-as “, kunt u overwegen ” de tijdas om te keren “, omdat flip voelt alsof er iets verticaal gebeurt, vooral. wanneer de y-as wordt genoemd.
Answer
Bij signaalverwerking wordt de convolutie uitgevoerd om de uitvoer te verkrijgen van een LTI-systeem. De correlatie (auto- of kruiscorrelatie) wordt meestal berekend om later te worden gebruikt om een aantal andere berekeningen uit te voeren.
Je moet oppassen dat je correlatie, covariantie en correlatiecoëfficiënt niet door elkaar haalt. De correlatie hoeft niet noodzakelijk tussen -1 en 1 te liggen. De correlatiecoëfficiënt ( https://en.wikipedia.org/wiki/Pearson_product-moment_correlation_coefficient ) valt tussen – 1 en 1 omdat het wordt geschaald door de twee willekeurige variabelenvariaties. Wat we moeten onthouden, is dat de echte operatie die moet worden uitgevoerd bij statistische signaalverwerking om te analyseren hoe verwant twee willekeurige variabelen zijn, de “covariantie” is, niet de correlatie. Maar voor de meeste toepassingen waarbij een signaal wordt opgevangen door een sensor en omgezet in een spanning en wordt gedigitaliseerd met een ADC, kun je aannemen dat het signaal nul is, dus de correlatie is gelijk aan de covariantie.
Opmerkingen
- Ik zal die link bekijken. Bedankt!
Antwoord
Er is veel subtiliteit tussen de betekenissen van convolutie en correlatie. Beide behoren tot het bredere idee van inproducten en projecties in lineaire algebra, d.w.z. het projecteren van de ene vector op de andere om te bepalen hoe “sterk” deze is in de richting van de laatste.
Dit idee strekt zich uit tot het gebied van neurale netwerken, waar we een gegevensmonster op elke rij van een matrix projecteren om te bepalen hoe goed het in die rij “past”. Elke rij vertegenwoordigt een bepaalde klasse objecten. Elke rij kan bijvoorbeeld een letter in het alfabet classificeren voor handschriftherkenning. Het is gebruikelijk om naar elke rij te verwijzen als een neuron, maar het kan ook een overeenkomend filter worden genoemd.
In wezen meten we hoe vergelijkbaar twee dingen zijn, of proberen we een specifiek kenmerk te vinden in iets, bijv een signaal of afbeelding. Als u bijvoorbeeld een signaal convolueert met een banddoorlaatfilter, probeert u erachter te komen welke inhoud het in die band heeft. Als u een signaal correleert met een sinusoïde, bijvoorbeeld de DFT, zoekt u naar de sterkte van de sinusoïde “s frequentie in het signaal. Merk op dat in het laatste geval de correlatie niet” verschuift “, maar je” correleert “nog steeds twee dingen. Je gebruikt een inproduct om het signaal op de sinusoïde te projecteren.
Wat is dan het verschil? Bedenk dat bij convolutie het signaal achterwaarts is ten opzichte van het filter. Met een in de tijd variërend signaal heeft dit het effect dat de gegevens worden gecorreleerd in de volgorde het gaat het filter binnen. Laten we even de correlatie definiëren als een puntproduct, dwz het ene ding op het andere projecteren. Dus aan het begin correleren we het eerste deel van het signaal met het eerste deel van het filter. Naarmate het signaal door het filter gaat, wordt de correlatie vollediger. Merk op dat elk element in het signaal alleen wordt vermenigvuldigd met de element van het filter dat het op dat moment “raakt”.
Dus met convolutie correleren we in zekere zin, maar we proberen ook de volgorde in de tijd te behouden waarin veranderingen optreden als het signaal interageert met het systeem. Als het filter echter symmetrisch is, zoals het vaak is, doet het er eigenlijk niet toe. Convolutie en correlatie zullen dezelfde resultaten opleveren.
Met correlatie vergelijken we slechts twee signalen, en proberen we niet om de volgorde van de gebeurtenissen te bewaren. Om ze te vergelijken, willen we dat ze in dezelfde richting wijzen, d.w.z. op één lijn staan. We schuiven het ene signaal over het andere zodat we hun gelijkenis in elk tijdvenster kunnen testen, voor het geval ze “uit fase met elkaar zijn of we” op zoek zijn naar een kleiner signaal in een groter tijdvenster.
Bij beeldverwerking liggen de zaken een beetje anders. We geven niet om tijd. Convolution heeft echter nog steeds een aantal nuttige wiskundige eigenschappen . Als u echter probeert om delen van een grotere afbeelding te matchen met een kleinere (dat wil zeggen matched filtering), je wilt het niet omdraaien, want dan komen de features niet overeen. Tenzij het filter natuurlijk symmetrisch is.Bij beeldverwerking worden correlatie en convolutie soms door elkaar gebruikt, in het bijzonder met neurale netten . Het is duidelijk dat tijd nog steeds relevant is als het beeld een abstracte weergave is van tweedimensionale gegevens, waarbij één dimensie tijd is – bijv. spectrogram.
Samenvattend zijn zowel correlatie als convolutie verschuivende innerlijke producten die worden gebruikt om het ene ding op het andere te projecteren terwijl ze variëren in ruimte of tijd. Convolutie wordt gebruikt wanneer volgorde belangrijk is en wordt meestal gebruikt om de gegevens te transformeren. Correlatie wordt meestal gebruikt om een kleiner ding in een groter ding te vinden, dat wil zeggen om overeen te komen. Als tenminste een van de twee “dingen” symmetrisch is, dan maakt het niet “uit welke je gebruikt.
Antwoord
Houd signaalverwerking buiten beschouwing, als u gewoon probeert te begrijpen wat er gebeurt in convolutie en correlatie, beide zijn zeer vergelijkbare bewerkingen. Het enige verschil is dat in convolutie een van de variabelen wordt omgekeerd (omgedraaid) voordat de accumulatie van het product wordt uitgevoerd. Zie dat ik het woord signal nergens hierboven gebruik. Ik heb het alleen over de uitgevoerde bewerkingen.
Laten we nu naar signaalverwerking gaan.
Convolutie-operatie wordt gebruikt om de output van een Linear Time Invariant System (LTI-systeem) te berekenen, gegeven een input singal ( x ) en impulsresponsie van het systeem ( h ) Om te begrijpen waarom alleen de Convolution-bewerking wordt gebruikt om de uitvoer van een LTI-systeem te krijgen , er is een grote afleiding. Vind de afleiding hier.
http://www.rctn.org/bruno/npb163/lti-conv/lti-convolution.html
Correlatiebewerking wordt gebruikt om de overeenkomst te vinden tussen de twee signalen x en y. Meer de waarde van correlatie, des te groter is de overeenkomst tussen de twee signalen.
Begrijp hier het verschil,
-
Convolution -> tussen signaal en een systeem (filter)
-
Correlatie -> tussen twee signalen
Dus vanuit het oogpunt van signaalanalyse wordt Convolution-bewerking niet gebruikt . Alleen correlatie wordt gebruikt vanuit het oogpunt van signaalanalyse. Terwijl convolutie wordt gebruikt vanuit het oogpunt van systeemanalyse.
De beste manier om de bewerkingen van convolutie en correlatie te begrijpen, is te begrijpen wat er gebeurt als er twee convolutie en correlaties worden uitgevoerd tussen twee continue variabelen, zoals weergegeven in de diagrammen in de vraag.
Geef een reactie