The numpy.correlate documentation says:
correlate(a, v) = z[k] = sum_n a[n] * conj(v[n+k])
In [1]: a = [1, 2]
In [2]: v = [2, 1j]
In [3]: z = correlate(a, v, 'full')
In [4]: z
Out[4]: array([ 0.-1.j, 2.-2.j, 4.+0.j])
However, according to the documentation, z should be
z[-1] = a[1] * conj(v[0]) = 4.+0.j
z[0] = a[0] * conj(v[0]) + a[1] * conj(v[1]) = 2.-2.j
z[1] = a[0] * conj(v[1]) = 0.-1.j
which is the time reversed version of what correlate() calculates.
IMHO, the correlate() code is correct. The correct formula in the docs (which
is also the correlation formula in standard text books) should be
z[k] = sum_n a[n+k] * conj(v[n])
Cheers,
Bernhard
_______________________________________________
NumPy-Discussion mailing list
[email protected]
http://mail.scipy.org/mailman/listinfo/numpy-discussion