From: Brian Drummond on 3 Jun 2010 19:26 On Thu, 3 Jun 2010 13:19:18 -0700 (PDT), Vivek Menon wrote: >Alan: > >Thanks for these tips. >> 2. Look for being off by an output stride permutation or transpose. >I am not sure how to check this. Can you elaborate ? You started quite well, in your previous post. You observed: > �xk_re 117467 Matlab:f2_r 117467 and > But on closer observation, the 64th value obtained from Xilinx > simulation is same as the 2nd value, i.e. > xk_re 6002.34 = Matlab:f2_r 6002.34 Just take this further. Compare xk_re with Matlab:f2_r xk_re with Matlab:f2_r xk_re with Matlab:f2_r and so on. A pattern might become visible. The solution may turn out to be as simple as re-ordering address bits in one output array to match the other. - Brian From: Brian Drummond on 4 Jun 2010 09:28 On Thu, 3 Jun 2010 20:28:11 -0700 (PDT), Vivek Menon wrote: >Brian: > >Thanks for that info. As per your suggestion, I tried looking for a >pattern and I got > >xk_re = 117020.000000 out1 = 117020.000000 >xk_re = 6299.545898 out1 = 6299.546058 >xk_re = -480.795319 out1 = -480.795307 >xk_re = -2098.480957 out1 = -2098.480978 >But why did this happen?? I did setup the Xilinx FFT core as 4096 pt >natural order output with 32 bit floating point. Now I need to reorder >the data as per this logic, then do the complex multiplication and >then take an IFFT. Now I am not sure if my IFFT values will match >Matlab. At this point I think the next step is to read some introductory material about FFTs, paying attention to how FFTs can be decomposed into simpler ones. That should help you understand what is going on. - Brian