Hi All,
I am trying to calculate the cross correlation of two time series
using FFT. The effective part of the code is:
z = gsl_fft_real_radix2_transform(&x[0], 1, x.size());
z = gsl_fft_real_radix2_transform(&y[0], 1, y.size());
vector<double> c(n);
c[0] = x[0]*y[0];
c[n/2] = x[n/2]*y[n/2];
for (int i=1; i<n/2; ++i) {
c[i] = x[i]*y[i] + x[n-i]*y[n-i];
c[n-i] = x[n-i]*y[i] - x[i]*y[n-i];
}
z = gsl_fft_halfcomplex_radix2_inverse(&c[0], 1, c.size());
All is well, and I seem to be getting there except that the
correlations are not normalized properly. For example, c[0] =
111.899 when x and y are identical series of random numbers
with a stadard normal distribution. It should be 1.0.
I have checked the result against ccf in R.
What am I missing here? Thank you for your tips and comments
in advance.
--
saurav
_______________________________________________
Help-gsl mailing list
[email protected]
http://lists.gnu.org/mailman/listinfo/help-gsl