mj

Cross Correlation

20260124

Paul Bourke has some useful notes here.

This is a useful test sequence to confirm cross correlation is working. It is from the numpy.correlate function documentation.

{ 0, 1, 0.5 } { 1, 2, 3 } = { 0.5, 2, 3.5, 3, 0 }

    
for(int nDelay = -nNumSamp + 1; nDelay < nNumSamp; nDelay++)
{
    float fSum = 0;

    for(int i = 0; i < nNumSamp; i++)
    {
        int j = nDelay + i;

        if(j < 0 || j >= nNumSamp)
        {
            continue;
        }

        fSum += pfIn0[i] * pfIn1[j];
    }

    pfOut[nDelay + nNumSamp] = fSum;
}