The MATLAB function xcorr() can be implemented in the time domain as a
convolution (or similarly an FIR filter) or in the frequency domain as a
multiplication. So, if the function is "z = xcorr(x,y)", then you can
implement this as "z = ifft(X.*conj(Y))" where X and Y are the FFTs of x
and y but with the FFT zero-padded to have length (Lx + Ly).  You also need
to apply a circular shift.  Here is MATLAB code that shows the equivalence.
For long sequences, it might consume less FPGA resources to implement in
the frequency domain using FFT/IFFT pairs.

>> L = 500;
>> x = randn(L,1) + 1i*randn(L,1);
>> y = randn(L,1) + 1i*randn(L,1);
>> z = xcorr(x,y);
>> Lfft = 2^nextpow2(2*L-1);
>> z2 = circshift(ifft(fft(x,Lfft).*conj(fft(y,Lfft)),Lfft),L-1);
>> plot(abs(z-z2(1:2*L-1)))

On Fri, Feb 25, 2022 at 2:30 AM sp h <[email protected]> wrote:

> Thanks, I know that I can use FFT but I want to implement Xcorrelate like
> xcorr Matlab directly...as an independent RFNOC blocks
>
>
> On Wed, Feb 23, 2022 at 10:56 AM sp h <[email protected]> wrote:
>
>> Thanks, I know that I can use FFT but I want to implement Xcorrelate like
>> xcorr matlab directly...as a  independent RFNOC blocks
>>
>>
>> On Mon, Feb 21, 2022 at 7:40 PM Rob Kossler <[email protected]> wrote:
>>
>>> is there a specific function (such as MATLAB 'xcorr') you want to
>>> implement?  You can implement 'cconv' with a pair of FFT/IFFT and complex
>>> multiplication.  If you zero-pad and use 2x length FFTs, you can
>>> alternatively obtain linear convolution using an overlap-and-add
>>> configuration.  I haven't looked at 'xcorr' specifically, but my guess is
>>> that you could do what you want with an FFT/IFFT pair.
>>> Rob
>>>
>>> On Mon, Feb 21, 2022 at 6:36 AM sp h <[email protected]> wrote:
>>>
>>>> How can create an RFNOC correlate block for USRP?
>>>> This thread is created to share results on searching how we can
>>>> correlate RFNOC blocks...
>>>> Anyone that had an idea, I'm glad to hear it...
>>>> thanks in advance
>>>>
>>>> _______________________________________________
>>>> USRP-users mailing list -- [email protected]
>>>> To unsubscribe send an email to [email protected]
>>>>
>>>
_______________________________________________
USRP-users mailing list -- [email protected]
To unsubscribe send an email to [email protected]

Reply via email to