File Exchange

Circular Cross Correlation

version 1.0.0.0 (1.62 KB) by G. Levin

G. Levin (view profile)

Circular Cross Correlation function estimate.

Updated 16 Aug 2004

CXCORR Circular Cross Correlation function estimates.
CXCORR(a,b), where a and b represent samples taken over time interval T which is assumed to be a common period of two corresponding periodic signals.

a and b are supposed to be length M row vectors, either real or complex.

[x,c]=CXCORR(a,b) returns the length M-1 circular cross correlation sequence c with corresponding lags x.

The circular cross correlation is:
c(k) = sum[a(n)*conj(b(n+k))]/[norm(a)*norm(b)];
where vector b is shifted CIRCULARLY by k samples.

The function doesn't check the format of input vectors a and b!

For circular covariance between a and b look for CXCOV(a,b) in

Reference:
A. V. Oppenheim, R. W. Schafer and J. R. Buck, Discrete-Time Signal Processing, Upper Saddler River, NJ : Prentice Hall, 1999.

Author: G. Levin, April 2004.

Evenor

Evenor (view profile)

Notice that you cycle b backwards, b(2) becomes b(1), while in cross-correlation the shift should be forwards - b(1) become b(1+1)=b(2). This might be because different conventions of definitions of cross-correlation. I use the one in Wikipedia:
(a star b)[n] = sum_k( a*[k] b[k+n] ).
Otherwise, nice code.

Alexandre

Very nice!

Stanislav

xn Ruan

Andrew Bazyk

Andrew Bazyk (view profile)

I'm also wondering why the mean of a and b are not subtracted. Please let me know if you can explain.

Abbas Ahmed

Abbas Ahmed (view profile)

If i want to use zadoff chu sequence is anyone knows how i can make it. if i donot want to use ltezadoffchu command

priya p

priya p (view profile)

why are you take the values (25,29,34) in zadoff sequenc(lte)

Irine

Irine (view profile)

I'm sorry, but I don't understand how it works too (about the means of a and b) can you give an example, please..

julien

julien (view profile)

my mistake ! ignore the preceding comment !
(row vectors..)

julien

julien (view profile)

I'm surprised it is not working only for me.. I get that :

??? In an assignment A(I) = B, the number of elements in B and
I must be the same.

Error in ==> cxcorr at 30
c(k)=a*b';

.. what's is happening ?

Paul Lin

Paul Lin (view profile)

How come the mean of a and b are not subtracted before divided by norm? I'm assuming the result is a normalized norm , please corect me if I'm wrong.

Steffen B.

Very useful for my term project, thanks.

try it

m g

Neil King

Excellent, this is exactly what i was looking for!!! Ive been trying to correlate optical field profiles and this is the best tool that ive found