Springen naar inhoud

Correlatie tussen twee functies.


  • Log in om te kunnen reageren

#1

Bert F

    Bert F


  • >1k berichten
  • 2588 berichten
  • Ervaren gebruiker

Geplaatst op 25 april 2013 - 18:52

Stel dat ik wil weten hoe zeer twee functie op mekaar gelijken dan kan ik ze correleren. om volgende site staat er een formule hiervoor:
http://www.bores.com.../time/2_ave.htm die is

LaTeX

ik vermoed dus in woorden dat als n = aan nul de correlatie het grootst zal zijn. echter als ik met matlab de correlatie uitreken met de ingebouwde functie dan bekom ik gelijkaardig figuren aan die men op de site geeft:
Geplaatste afbeelding
maw in het begin een nulpunt en naarmate de waardes toenemen een maximum.
reken ik met de hand de forumle uit of met een zelf geschreven functie nameijk
sum(y.*y)
dan bekom ik wel wat ik verwacht een maximum in de oorsprong.
Waar zit het verschil?
Groeten.

Dit forum kan gratis blijven vanwege banners als deze. Door te registeren zal de onderstaande banner overigens verdwijnen.

#2

Xenion

    Xenion


  • >1k berichten
  • 2606 berichten
  • Moderator

Geplaatst op 25 april 2013 - 19:24

Er is een verschil tussen autocorrelatie en kruiscorrelatie.

De tweede volgt de formule die jij geeft en bepaalt de correlatie tussen 2 signalen. De autocorrelatie is eigenlijk de kruiscorrelatie van een signaal met zichzelf. Bij de autocorrelatie heb je dus inderdaad een maximum voor n=0, wat overigens de energie van het signaal voorstelt. Voor de kruiscorrelatie hoeft het maximum niet op n=0 te liggen. (De eens aan de kruiscorrelatie tussen een sin en een cos functie met gelijke amplitude, frequentie en fase=0.)

#3

Bert F

    Bert F


  • >1k berichten
  • 2588 berichten
  • Ervaren gebruiker

Geplaatst op 26 april 2013 - 18:14

maar als de auto correlatie een speciaal geval is van de kruis correlatie waarom bekom ik dan voor volgende namelijk xcorr(y,y) geen maximum in de oorsprong?

Voor de kruiscorrelatie hoeft het maximum niet op n=0 te liggen.



waarom niet wat verschilt er dan in die formule en waarom heeft men dan dat mathematisch verschil?

#4

Xenion

    Xenion


  • >1k berichten
  • 2606 berichten
  • Moderator

Geplaatst op 26 april 2013 - 18:52

De MATLAB implementatie berekent de kruiscorrelatie ook voor negatieve lags. Het eerste punt in de teruggegeven vector is dus niet lag=0.

Als je volgende code gebruikt, dan zou je in de plot moeten zien dat het maximum wel degelijk bij lag=0 ligt.
[c lags] = xcorr(y,y);
plot(lags,c)

De kruiscorrelatie kan je interpreteren als een schatting voor hoe sterk 2 signalen met elkaar overeenkomen op verschillende posities van elkaar. En sinus en cosinus zijn dezelfde functie maar verschillen 90° in fase. Op lag 0 zijn ze dus wel gecorreleerd, maar niet maximaal: er zijn immers punten waar ze niet hetzelfde teken hebben en dus een negatieve bijdrage leveren aan de som. Als je 1 van de 2 een beetje opschuift zodat ze in fase komen, dan hebben ze steeds hetzelfde teken en dan zal de correlatie maximaal zijn, maar dat is dan niet in lag=0.

#5

Bert F

    Bert F


  • >1k berichten
  • 2588 berichten
  • Ervaren gebruiker

Geplaatst op 26 april 2013 - 19:51

dat maakt veel duidelijk.
bedankt voor de hulp.





0 gebruiker(s) lezen dit onderwerp

0 leden, 0 bezoekers, 0 anonieme gebruikers

Ook adverteren op onze website? Lees hier meer!

Gesponsorde vacatures

Vacatures