diff options
Diffstat (limited to 'externals/grill/fftease/src/leanunconvert.c')
-rw-r--r-- | externals/grill/fftease/src/leanunconvert.c | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/externals/grill/fftease/src/leanunconvert.c b/externals/grill/fftease/src/leanunconvert.c new file mode 100644 index 00000000..f8575168 --- /dev/null +++ b/externals/grill/fftease/src/leanunconvert.c @@ -0,0 +1,23 @@ +#include "pv.h" + +/* unconvert essentially undoes what convert does, i.e., it + turns N2+1 PAIRS of amplitude and frequency values in + C into N2 PAIR of complex spectrum data (in rfft format) + in output array S; sampling rate R and interpolation factor + I are used to recompute phase values from frequencies */ + +void leanunconvert( float *C, float *S, int N2 ) +{ + int real, imag, + amp, phase; + float a, b; + register int i; + + for ( i = 0; i <= N2; i++ ) { + imag = phase = ( real = amp = i<<1 ) + 1; + S[real] = *(C+amp) * cos( *(C+phase) ); + if ( i != N2 ) + S[imag] = -*(C+amp) * sin( *(C+phase) ); + } +} + |