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.

### Cite As

G. Levin (2020). Circular Cross Correlation (https://www.mathworks.com/matlabcentral/fileexchange/4810-circular-cross-correlation), MATLAB Central File Exchange. Retrieved .

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