octave-maintainers
[Top][All Lists]

## Fwd: Potential serious problem with xcorr

 From: JuanPi Subject: Fwd: Potential serious problem with xcorr Date: Tue, 2 Apr 2019 00:42:56 +0200

```Hi Mike,

Just wanted to ask you something regarding xcorr in signal.
First of all, I get the same apparent mistake with matlab online, so
nothing to worry on that level.
However, have a look at the output of this code:
N    = 256;
t    = linspace (0, 1, N).' * 2 * pi;
dt   = t(2) - t(1);
freq = 3;
x    = sin (freq * t);
y    = x.^2;

[C lag] = xcorr (x, y);
Cw      = arrayfun (@(i)sum (x .* circshift (y, i)), lag.');

plot(lag, C, lag, Cw)

indeed the equivalence is obtained with

plot(lag, C, lag, cumtrapz(lag, Cw.*sign(lag.')))

So the C obtained with xcorr is sort of the integral of the actual
result for periodic signals.

I find this gross difference whenever I use periodic signals (both x and y).
I think the issue comes from the fact that xcorr is padding with
zeros, but here the signals are actually periodic.

doc (which needs some fixing, will send patch), and maybe offer
xcorr_periodic or something like that for the case in which the
signals are periodic?

Regards,

--
JuanPi Carbajal
https://goo.gl/ayiJzi

-----
scholarship. The actual scholarship is the full software environment,
code and data, that produced  the  result.”
- Buckheit and Donoho

--
JuanPi Carbajal
https://goo.gl/ayiJzi

-----