Reply by Mr. Ken February 12, 20072007-02-12
"f1 fan" <fake@nospam.net> wrote in message
news:5aRyh.9406$xu4.2859@trndny04...
> >My design is 4096-point FFT, which splits into 4 stages of radix-8 FFT. > >The system twiddle factor is 15-bits and gives acceptable quantization > >error. > >However the design is bogged down by the trivial twiddle factor within > >radix-8, > >W81 = 2 * pi * 1/8 = 0.707, which can be reasonably done with 181/256. > > >However the quantization of 181/256 causes system quantization error from > >80dB > >.to 30+dB, and this error absorbed quantization error variations with > > system > >twiddle > >factors varying between 13~20bits. > > > >Consideration is the system memory (4096 point, 13b) won't be widdened to > >accomodate this 0.707. > > > >Are there any means to fix this problem? > > pi/4 = 0.785 or 201/256 > > Try that. > > John Oxton >
My mistake, it's W81 = cos(2 * pi * 1/8) + i*sin(2 * pi * 1/8) = 0.707 + 0.707i. In hardware it's done with (181+181i)/256. However the quantization noise is very high comparing to floating point, signal to quantization noise ratio is expected to be worse than 20*log10(181/(181.0193-181)) = 79.4dB. However in some IEEE papers, the author claimed SQNR of 100dB and higher with radix-8 implementation.
Reply by f1 fan February 8, 20072007-02-08
>My design is 4096-point FFT, which splits into 4 stages of radix-8 FFT. >The system twiddle factor is 15-bits and gives acceptable quantization >error. >However the design is bogged down by the trivial twiddle factor within >radix-8, >W81 = 2 * pi * 1/8 = 0.707, which can be reasonably done with 181/256.
>However the quantization of 181/256 causes system quantization error from >80dB >.to 30+dB, and this error absorbed quantization error variations with > system >twiddle >factors varying between 13~20bits.
>Consideration is the system memory (4096 point, 13b) won't be widdened to >accomodate this 0.707.
>Are there any means to fix this problem?
pi/4 = 0.785 or 201/256 Try that. John Oxton