You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
33 lines
656 B
33 lines
656 B
#include "gsl/gslfft.h"
|
|
#include "fft.h"
|
|
|
|
void arts_fft_float (
|
|
unsigned NumSamples,
|
|
int InverseTransform,
|
|
float *RealIn,
|
|
float *ImagIn,
|
|
float *RealOut,
|
|
float *ImagOut )
|
|
{
|
|
double *ri_in = g_newa(double, NumSamples*4);
|
|
double *ri_out = ri_in + NumSamples*2;
|
|
unsigned int i;
|
|
|
|
for(i = 0; i < NumSamples; i++)
|
|
{
|
|
ri_in[2*i] = RealIn[i];
|
|
ri_in[2*i+1] = (ImagIn?ImagIn[i]:0.0);
|
|
}
|
|
|
|
if(InverseTransform == 0)
|
|
gsl_power2_fftac (NumSamples, ri_in, ri_out);
|
|
else
|
|
gsl_power2_fftsc (NumSamples, ri_in, ri_out);
|
|
|
|
for(i = 0; i < NumSamples; i++)
|
|
{
|
|
RealOut[i] = ri_out[2*i];
|
|
ImagOut[i] = ri_out[2*i+1];
|
|
}
|
|
}
|