MDCT via FFT, computation of rotation coefficients
Hi all,
I am looking into algorithm for computing MDCT via FFT which requires pre-
and post- rotation operations on complex data.
These computations are done in recursive fashion for example :
cfreq = cos ( 2 * PI / N );
sfreq = sin ( 2 * PI / N );
c = cos ( 2 * PI / 8N );
s = sin ( 2 * PI / 8N );
for (i = 0; i < N / 4; i++)
{
//Pre-rotation of input using values of c and s
Pre-rotation();
//Use recurrence to prepare cosine and sine for next iteration
cold = c;
c = c * cfreq - s * sfreq;
s = s * cfreq + cold * sfreq;
}
Is there a way how to avoid this recursive computation of c and s (and avoid
build-up of inacuracies due to use of a fixed point implementation), or
avoid use of a pre-computed look-up table (not much data space either) ?
Is there any way of reusing (some) values from FFT pre-twidle table (of
length N/2) :
w_i = cos( 2*PI*i / N )
thanks for discussion,
dubravko
|