help-gsl
[Top][All Lists]

## [Help-gsl] Reconstruct a function from FFT coefficients?

 From: Georg-Johann Lay Subject: [Help-gsl] Reconstruct a function from FFT coefficients? Date: Wed, 10 Jun 2009 23:19:27 +0200 User-agent: Mozilla Thunderbird 1.0.7 (Windows/20050923)

```Hi,

I am quite new to gsl and have a beginner's question.

```
I computed the FFT coefficients of a double array using gsl_fft_real_transform. On the result I applied gsl_fft_halfcomplex_unpack in order to get the familiar representation as series of complex numbers.
```
```
From that series I'd like to evaluate the function that is represented by these numbers which can be considered as approximation of the original data.
```
I read the manual and used a piece of code like this

double to_real (double * c, unsigned int k, double t)
{
double cr = c[2*k];
double ci = c[2*k+1];

double a = 2.0 * M_PI * k/N * t;

// c * exp (2 * Pi * i * k/N * t)
return cr * cos(a) - ci * sin(a);
}

// return f(t)
// f is series of complex numers computed by
// gsl_fft_real_transform + gsl_fft_halfcomplex_unpack
double eval_trafo (double * f, double t)
{
double val = 0.0;

for (unsigned int k=0; k < N; k++)
{
val += to_real (f, k, t);
}

val /= N;

return val;
}

```
But obviously, that does not represent the original function. What am I missing?
```
Would be great if anyone could give ne a hint.

Georg-Johann

```