How do you calculate a correlation function in MATLAB?

3 Ansichten (letzte 30 Tage)
L'O.G.
L'O.G. am 31 Mai 2022
Kommentiert: Hiro Yoshino am 2 Jun. 2022
I am trying to calculate the correlation function given by
where I sum over all i ("part" in the following). Do I just choose time zero arbitrarily as t1 like in the following? I am not sure how to do this. vbar is calculated separately and is just a constant here..
for t1 = 1:tmax
for t2 = t1:tmax
for part = 1:tot_part
a0(t2-t1,part) = a0(t2-t1,part) + (v(t1,part)+vbar)*(v(t2,part)+vbar)
n0(t1,part) = (v(t1,part)+vbar) + 1
end
end
end
for t = 0:tmax-1
for part = 1:tot_part
corr0(t) = corr0(t) + a0(t,part)/n0(t,part)
end
end

Antworten (1)

Hiro Yoshino
Hiro Yoshino am 1 Jun. 2022
If you want to calculate "auto correlation", see xcorr.
You may need to devide the result by var.
  6 Kommentare
L'O.G.
L'O.G. am 1 Jun. 2022
Thanks, yes, it would nice though if it would be possible to understand this without resorting first things first to the xcorr function, which is why I had the clunky for loops in my post.
Hiro Yoshino
Hiro Yoshino am 2 Jun. 2022
Totally understood. When I was in school, I didn't realize there had been this function for ages and crafted my own from scratch but good thing about MATLAB is that you can avoid "re-inventing wheels".

Melden Sie sich an, um zu kommentieren.

Produkte


Version

R2021b

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by