Auto-suggest helps you quickly narrow down your search results by suggesting possible matches as you type.

- Community Forums
- :
- Forums
- :
- Hardware Development
- :
- AI Engine, DSP IP and Tools
- :
- FFT v8.0 Output word length

- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Mute
- Printer Friendly Page

thinusviljoen

Visitor

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content

06-19-2015 08:50 AM

6,440 Views

Registered:
06-02-2014

FFT v8.0 Output word length

Good day

I would like to use the FFT v8.0 LogiCORE IP block with the following settings:

1. Fixed point

2. Unscaled

3. Rounding mode = convergent rounding

According to the documentation (DS808) the word length of the output will be:

(input width + log2(transform length) + 1)

My problem is: this is 1 more bit that I would expect.

I tried to get an input signal that would exercise the MSB bit of the output signal, but failed. I thought (naively, apparently) that the maximum output sample would result if a maximum-amplitude sinusoid was applied at the input, with a frequency in the center of any of the FFT frequency bins.

For example, if you look at the documentation of the simulation model (UG459) on page 15, Notes->"FFTs with Fixed-Point Interface"->1.b, then if C_INPUT_WIDTH = 8 and C_NFFT_MAX = 3 then the output is in the range -16.0 to +15.99. The maximum output that I could ever get from the core with this configuration is -8.0, i.e. 1 bit less that the full range. For example, when all the input samples are set to their maximum negative value.

So my question is basically: can anybody give me an example of an input signal that will exercise the MSB of the output signal, with the core configured as above?

I am at the point of simply discarding the MSB, but perhaps there is some scenario where it can be exercised which I can't think of.

Thanks

Thinus Viljoen

1 Reply

thinusviljoen

Visitor

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content

06-23-2015 01:40 AM

6,378 Views

Registered:
06-02-2014

I managed to construct an input vector that does exercise that top bit.

I generated a complex sinusoid with zero phase, and then I forced each of the samples to their maximum negative or positive values, depending on whether their original value was negative or positive. This was done to the real and imaginary component of each sample separately.

The end result is then a complex square wave with maximum amplitude and zero phase. (Zero phase so that the output signal's power is contained only in the real component, maximising the number of bits excersized in a specific sample)

The corresponding Matlab code snippet is:

input = cos(2*pi*f*t) + 1i.*sin(2*pi*f*t);

input = (real(input)>0) - (real(input)<=0) + 1i*((imag(input)>0) - (imag(input)<=0));

Thinus Viljoen