Hi Jason:

Thanks for your important information. 
But one point I could not understand is the shift bits of FFT.

I guess it is used to shift the output at every FFT stage. So why data only in 
top 10 bits? 10 bits data multiplies 8 bits coeff, the data should be in all 18 
bits? 

Wan

-----Original Message-----
From: Jason Manley [mailto:jasonman...@gmail.com] 
Sent: Thursday, 14 January 2010 5:46 PM
To: Cheng, Wan (CASS, Marsfield)
Cc: d...@ssl.berkeley.edu; casper@lists.berkeley.edu
Subject: Re: [casper] DC part of FFT output

We (KAT) use:

   * Round +-even in FFT and PFB.

   * Bitwidth at 18bits. Multipliers are 18x25 in V5, not 25x25.

   * Using lower bitwidths for lookup table in PFB does not have a  
major impact on performance (eg, PAPER is using 8 bit lookups).

   * There is support for different coeff bitwidths and signal  
bitwidths in the FFT and PFB. If you need more bits, consider 25 bits  
I/O and 18 bits ceoffs. While still needing more routing resources,  
you will not need more multipliers.

   * It is critical that you position your signal properly and set FFT  
shift pattern correctly. For most applications, you will position your  
input signal in the (top bit -1) of your FFT and downshift on every  
stage (all 1's in the fft_shift input). But for a 32k FFT, you would  
then have 15 bits of downshift. With your signal in the top 10 bits of  
an 18 bit number, you will shift out 18-10-15 = -7 and hence lose  
data. So in this case, you'd probably want to shift on every second  
stage or something. This would ensure that you're never shifting data  
out the bottom, but now you need to be careful that you're not  
overflowing on any FFT stage. Check the 'of' port; though not aligned  
with the data, it will report if an overflow did occur at some point.

Jason

On 14 Jan 2010, at 03:07, <wan.ch...@csiro.au> <wan.ch...@csiro.au>  
wrote:

> Hi Dan:
>
> Thanks for your suggestions.
>
> I believe we get enough SNR and dynamic range. We just suspect if  
> there are some potential problems in our design. Calibration is our  
> current solution, and I believe it will work well in our system.
>
> And I tried all different rounding options, I found round +/- inf is  
> the best, even better than round even or odd. Is this normal?
>
> For wider bit width in FFT, I remember over 18 bits could not work  
> properly. So now it is fixed and it can work upto 25 bits?
>
> Thanks, Dan.
>
> Wan
>
>
> From: Dan Werthimer [mailto:d...@ssl.berkeley.edu]
> Sent: Thursday, 14 January 2010 11:54 AM
> To: Cheng, Wan (CASS, Marsfield)
> Cc: casper@lists.berkeley.edu
> Subject: Re: [casper] DC part of FFT output
>
>
>
> hi wan,
>
> here are five steps you could take, if you haven't already,
> to raise your signal higher above the noise floor and increase
> dynamic range:
>
> -1) adjust the FFT shifter settings to boost the output
>     signal so it's in the MSB's, way above the pattern noise.
>
> 0) subtract out the fixed pattern noise in post processing/ 
> calibration.
>     (this might be tricky, as it might be signal level dependent??)
>     this is easiest done after the FPGA (in C or some other high  
> level language).
>
> 1) raise the signal amplitude, so SNR will be higher
>
> 2) use more bits in the FFT.   i think with virtex 5, you can go to  
> 25 bits.
>        (this takes more FFT resources)
>
> 3)  turn on rounding in the FFT (this takes more FPGA resources).
>      the best rounding to use is round to even, or round to odd.
>      (not round up, or round down).
>      i'm not sure what kind of rounding we used in the FFT.
>
> best wishes,
>
> dan
>
>
>
>
> On 1/13/2010 3:31 PM, wan.ch...@csiro.au wrote:
>>
>> Hi Dan:
>>
>> Thanks a lot. I also believe it is from round off noise.
>> But it does not just occupy the least significant bit. I guess,  
>> because there are a number of stages in PFB and FFT, the round off  
>> noise will be distributed and accumulated at every stage. So at the  
>> final output, it would not just least significant bit any more. For  
>> a 1024 points FFT, I believe it could occupy 6 bits of 36 bits  
>> output. But they are still relative very small compared with the  
>> main carrier output. Please see the attached(steps2) for details  
>> about the noise floor.
>>
>> Our problem is we are using a 32K FFT, a fixed pattern become  
>> obvious on noise floor after we integrate for 1 sec. Please see the  
>> attached for 32K FFT noise floor. The pattern on noise floor is  
>> fixed, it would not change with the input. So is there any way we  
>> could remove or minimize the steps on noise floor?
>>
>> Thanks
>>
>> Wan
>>
>>
>>
>> From: Dan Werthimer [mailto:d...@ssl.berkeley.edu]
>> Sent: Wednesday, 13 January 2010 2:37 PM
>> To: casper@lists.berkeley.edu
>> Subject: Re: [casper] DC part of FFT output
>>
>>
>>
>> hi wan,
>>
>> what are the levels of this output?
>> if they are the least significant bits,
>> then this is likely from round off noise.
>>
>> best wishes,
>>
>> dan
>>
>>
>> On 1/12/2010 6:45 PM, wan.ch...@csiro.au wrote:
>>>
>>>
>>> Hi All:
>>>
>>> I use a matlab sine wave generator to generate a sine wave as an  
>>> input to PFB and FFT.
>>>
>>> But I find I get a little DC output and a few small steps from FFT  
>>> output. I am pretty sure there is no DC added into the input  
>>> signal. So where these DC could be from?
>>>
>>> And why there is some small steps on the noise floor?
>>>
>>> For the details of spectrum output, please see the attached.
>>>
>>> Thanks
>>>
>>> Wan
>>
>


Reply via email to