[Speex-dev] question about spx_fft
Jean-Marc Valin
Jean-Marc.Valin at USherbrooke.ca
Tue Apr 17 20:31:39 PDT 2007
> > If that's the case, then you can still benefit by converting the N-point
> > real FFT into an N/2 point complex FFT and an update pass.
> This is what the kiss_fftr function does, right?
Yes.
> > Because the input is real, it means that I(0) and R(N/2) are equal to
> I think you mean
> I(R/2), correct?
right.
> > Sure, use the right ordering (and be careful with scaling!) and it'll
> work.
>
> In the FIX_POINT version of the spx_fft function, where is the actual code
> that do
> the forward FFT normaliaztion by 1/N? I saw the code first maxmize the input
> before the FFT and renormalize it back afterwards. Isn't this making the
> signal bigger
> and easy to overflow? If I am not mistaking, the input to the kiss_fft is
> the 2's complement
> value.
The normalisation by 1/N is done progressively in each stage of kiss_fft.
There's also a normalisation stage in fftwrap.c that just makes sure to keep
the maximum accuracy.
> I use the Xilinx Logicore FFT IP which also supports the 16bit fixed point
> FFT and it
> has some internal scaling for each stage. Do I need to match the same
> scaling of 1/N
> in the software code?
Yes, you need to make sure that the scaling is the same.
Jean-Marc
> > Jean-Marc
> >
> >
>
More information about the Speex-dev
mailing list