FPGA Intellectual Property
PCI Express*, Networking and Connectivity, Memory Interfaces, DSP IP, and Video IP
6356 Discussions

How to implement correlation

Altera_Forum
Honored Contributor II
1,230 Views

Hi, 

 

I want to perform a crosscorrelation of 2 datavectors within a FPGA. I am working with the dsp developmentboard from altera, with an EP2C70 on it. With the onboard adc I acquire data with 12bit/120MSPS. The incoming data should be correlated with a dynamic data set of about 2400 values with a precision of 12bit (length can change from measurement to measurement). 

Does anybody know if there is an ip-core for convolution available, or has anybody a suggestion for me, how to program it myself with VHDL? Or is it perhaps better to do this operation as an multiplication in the frequency domain instead of the convolution in the time domain? What has the better performance? 

 

Thanks in advance 

Klausf
0 Kudos
1 Reply
Altera_Forum
Honored Contributor II
562 Views

Provided you have it all in hardware, the time approach will be faster. it is a rather trivial operation, have linear storage with the 2400 values and a shift register with the 2400 last samples. Then multiply the values with the same index and integrate. New sample - shift and repeat. Basically a multiply and accumulate (MAC) over 2400 samples.  

 

Rene
0 Kudos
Reply