2
$\begingroup$

I have sequence of $N$ real numbers: $\mathbf{x} = (x_0, x_1, \ldots, x_{N-1})$.

Discrete Fourier Transform (DFT) is defined as $$ X_k = \sum_{n=0}^{N-1} x_n e^{-i 2\pi k \frac{n}{N}}, \quad (k=0,1,\ldots,N-1). $$

Coefficients $X_0,X_1,\ldots,X_{N-1}$ are complex-valued at all.

How to change starting sequence $\mathbf{x}$ to make all its DFT- coefficients $X_k$ real-valued?

"To change" I mean to multiply each term $x_n$ by some $z_n\in \mathbb{C}, |z_n|=1, \quad n=0,1,\ldots,N-1$.

Thanks!

$\endgroup$
2
$\begingroup$

The condition $\overline{X_k} = X_k$ can be written as $$ \sum_{n=0}^{N-1} \bar{x}_n e^{ i 2\pi k \frac{n}{N}} = \sum_{n=0}^{N-1} x_n e^{-i 2\pi k \frac{n}{N}} \tag{1}$$ The change of index $n \mapsto N -n$ turns the left sum in (1) into $$ \sum_{n=1}^{N } \bar{x}_{N-n} e^{ - i 2\pi k \frac{n}{N}} \tag{2}$$ Comparing the right sides of (1) and (2), and recalling that DFT is an injective transformation, we see that $x_n = \bar x_{N-n}$ for $n=1,\dots,N-1$; and also $x_0=\bar x_0$. These are necessary and sufficient conditions for the DFT to be real.

Multiplying $x_n$ by unimodular constants, you can certainly achieve $x_0=\bar x_0$. But you can't get $x_n = \bar x_{N-n}$ in this way, unless you have $|x_n|=|x_{N-n}|$.

$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.