There are three bugs we know of in the FFT.

The first one (the biggest one) involves the twiddle coefficients and matlab's understanding of "i" and "j" as sqrt(-1) for complex numbers. This one's been fixed and should be checked-in. See earlier emails for details.

The second bug is a little more subtle and is probably the one you're describing here. It comes about when you use a 3-multiplier twiddle coef block and a portion of the data path performs a rounding on the number but the other part of the path doesn't. This results in crosstalk like you describe. You can temporarily sidestep this problem by choosing "optimise for logic" in the FFT mask parameter which will then use the 4-multiplier twiddle cores. Of course this assumes you have multipliers to spare.

The third bug involves rounding of the coefficients in the ROMs where -1 can be represented in a Fix_18_17 number but +1 can't. We haven't yet done simulations to figure out exactly how this affects the data. But we have noticed that it affects the imaginary part and the real part differently.

Andrew Martens is working on bugs 2 and 3 at the moment. He'll hopefully have fixes and some other mods to the FFTs available next week.

Jason


On 23 Jun 2010, at 23:36, Jonathan Landon wrote:

Jason --

Dave MacMahon tells me he's been working with you to get your updated FFT blocks into the git repository and that there were a couple bugs still to be fixed in blocks relating to the FFT. I'm excited to try out the new FFT because its brokenness could explain why my PAPER crosstalk tests are so puzzling (crosstalk seems to be independent of physical distance between ADC inputs so I'm suspicious of a digital bug). Is the most up-to-date version now in the CASPER library?

Jonathan


Reply via email to