1
$\begingroup$

I am dealing with an inverse Fourier transform of a sampled complex function, $H(\omega)$. I want to obtain a real transformed function $h(t)$, which means that $H(-\omega)=H^{\ast}(\omega)$ has to be fulfilled. In order to have $h(t)$ sampled both for positive and negative times I use following procedure:

 h_c = RotateRight[InverseFourier[RotateLeft[Join[Conjugate[Reverse[H]],H], n/2 \[Minus]1], FourierParameters -> {0, 1}], n/2 \[Minus] 1] 

What bothers me is that $h_c$ is generally complex. Then I simply take only its real part, e.g.

 h = Re[h_c] 

However, I wonder if this approach is right.

$\endgroup$

1 Answer 1

2
$\begingroup$

The approach using Re[] is at least questionable and even more important, not necessary. First notice how Mathematica performs the Fourier transformation. It stores $\omega=0$ in the first element of the list. The highest frequencies are in the middle. Doing something like the following results in a real valued transformation

t1Lst=Table[i+ I i Sin[2.1 i],{i,0,3,.1}]; tLst=Join[t1Lst, Conjugate[ Reverse[ Drop[t1Lst , 1] ] ] ]; InverseFourier[tLst] 

This list unfortunately has an odd number of elements, though. Naturally you must assure that the $\omega=0$ value is real. If you want an even number of list elements you must also assure that the high frequency value $\omega_\mathrm{max}$ is real valued.

So a list of type $a_0,a_1,\ldots,a_{n-1},a_n, a_{n-1}^* ,\ldots ,a_1^* $ with $a_0 \in \mathbb{R}$ and $a_n \in \mathbb{R}$

$\endgroup$

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.