11-11-2018 07:03 AM - edited 11-11-2018 07:14 AM
Dear All,
I have implemented the Jim Wu' s useful FFT result comparison model. He compares the System Generator FFT IP result, with Bit Accurate C - model and also MATLAB built-in function "fft". Test basicly contains a comparison of 256- point FFT results of numbers (-128:127)/128 taken from 3 - different methods. Input numbers are in the format of signed fixed point (16,15).
From the results, it is seen that FFT results are almost the same, except for the input numbers around zero. System generator FFT results are deviated for the input numbers around "0" from the MATLAB "fft" function results and Bit Accurate C-Model results as seen below;
İdx | Input numbers | MATLAB “fft” function | Bit Accurate C - Model | Xilinx FFT 9.0 IP System Generator |
0 | -1 | 1.000000 | 1.000000 | 1.992188 |
1 | -0,992187500000000 | 81.489376 | 81.489504 | 81.483460 |
2 | -0,984375000000000 | 40.747756 | 40.747746 | 40.735596 |
3 | -0,976562500000000 | 27.168581 | 27.168709 | 27.150331 |
4 | -0,968750000000000 | 20.380016 | 20.380048 | 20.355531 |
5 | -0,960937500000000 | 16.307697 | 16.307667 | 16.276888 |
6 | -0,953125000000000 | 13.593501 | 13.593534 | 13.556551 |
7 | -0,945312500000000 | 11.655377 | 11.655313 | 11.612307 |
8 | -0,937500000000000 | 10.202297 | 10.202295 | 10.153201 |
9 | -0,929687500000000 | 9.072582 | 9.072553 | 9.017032 |
… |
| … | … | … |
127 | -0,00781250000000000 | 1.000075 | 1.000075 | 0.015351 |
128 | 0 | 1.000000 | 1.000000 | 0.007813 |
129 | 0,00781250000000000 | 1.000075 | 1.000075 | 0.014544 |
130 | 0,0156250000000000 | 1.000301 | 1.000301 | 0.025750 |
… |
| … | … | … |
253 | 0,976562500000000 | 27.168581 | 27.168709 | 27.150087 |
254 | 0,984375000000000 | 40.747756 | 40.747746 | 40.735688 |
255 | 0,992187500000000 | 81.489376 | 81.489504 | 81.483551 |
Why System Generator FFT 9.0 IP results are deviated from MATLAB "fft" and Bit Accurate Model results around "0" ? Could this error be tolerated ?
Best Regards,
11-12-2018 01:39 AM
11-12-2018 10:09 AM
Dear @meherp,
You can find the attached design .slx file.
I use Vivado 2017.2 and MATLAB 2016a.
Best Regards,
11-14-2018 10:24 PM