cancel
Showing results for 
Search instead for 
Did you mean: 
Highlighted
Visitor
Visitor
219 Views
Registered: ‎05-08-2018

cross correlation using FIR compiler 7.2

Hi,

 

I'm implementing cross-correlator using FIR compiler IP core in vivado 2017.4. I use integer coefficients and integer input data (random sequence of  1,-1). 

When testing project as simple fir filter it works fine, but when trying it as cross correlator at ouput i get very small correlation peak if comparing with theoretically received. Testing sequence consist of 32 bits and i send (using UDP) it to ZYNQ-Z1 using GNUradio. I attached results theoretically calculated (blue signal big peak) and calculated with FIR compiler (red signal peak near noise level). I tried to change lenght of sequence 64,128 etc but result doesnt change peak is very small. How can i get better results? I see posts on the forum that people uses FIR Compiler as cross correlator and it works. Maybe i missed some settings. Any ideas welcome

 

FIR compiler settings

filter options: Single rate, Integer coef

channel specification: Basic, input sampling freq 100 clock freq 100 MHz

implementation: coeff. type signed, integer coef. coef width 16, coeff. structure non-symmetric, input/output data type signed, width 32, rounding non-symmetric

rounding up

detailed implementation systolic multiply accumulate, optimization area

 

 

 

 

fir.jpg
fpga.jpg
theoretical.jpg
0 Kudos
2 Replies
Highlighted
Moderator
Moderator
110 Views
Registered: ‎08-16-2018

Re: cross correlation using FIR compiler 7.2

Hi @mknyva 

Can you check the output with "full precision" (instead of truncated output). 

May be fractional values are discarded due to rounding option. 


/ 7\7     Meher Krishna Patel, PhD
\ \        Senior Product Application Engineer, Xilinx
/ /        
\_\/\7   It is not so much that you are within the cosmos as that the cosmos is within you...
0 Kudos
Highlighted
Visitor
Visitor
102 Views
Registered: ‎05-08-2018

Re: cross correlation using FIR compiler 7.2

Hi after some diggingi found my stupid mistake. The problem was in coeff. generation. GRC uses python 2.x and I generated filter coeff. with pythin 3.x using same code. But in differend python versions random number generator works differently and produces different results. Everything works fine now whne using same version of python for data and coef generaration.

 

Thanks for you help