2
$\begingroup$

As a beginner in signal processing, i'll try to explain my problem most thoroughly. I'll firstly explain the idea of the transformation the real valued data has undergone. This includes the ideas and reasons why it does work and the way to revert the procedure. Then i'll explain my difficulties in reverting it.

First of all a property of the FFT of a real signal:

Given an $N$ data point real valued signal $x(t)$, it has $\frac{N}{2} + 1$ unique Fourrier coefficients $X(f_i)$ with $i \in {0,..,N-1}$. The other $\frac{N}{2}-1$ coefficients can be retrieved by inverting the spectrum of the coefficients $X(f_1)$ to $X(f_{\frac{N}{2}})$. So in some sense all the information of my signal is stored in the first $\frac{N}{2}+1$ of it Fourrier coefficients. Keep that in mind, because this property i'm going to exploit to retrieve the original signal from it's analytic representation.

Now to the theory of the procedure the data has undergone:

Let $X_a (f_i)$ be the analytic representation of the Fourrier coefficients $X(f_i)$ of $x(t)$. Then $X_a(f_i)=0$, if $f_i < 0$, and for the Fourrier Coefficients of the original signal $x(t)$ we know that $X(f_i)= \frac{X_a(F_i)}{2}$with $i \in 1,...\frac{N}{2}$. So $\frac{N}{2}-1$ coefficients carry no additional information about the signal. This allows a downsampling to $\frac{N}{2}+1$ frequencies, by cutting those $X_a(f_i)$ off, with $f_i <0$. And no information is lost, as the original signal was real. To make sure you can follow me http://en.wikipedia.org/wiki/Analytic_signal explains it in detail. Let's call the resulting complex signal of length $\frac{N}{2} +1$ $x_c(t)$.

The way to retrieve the original real signal would be:

If i'd want to retrieve my original signal all i'd have to do is invert the Fourrier Cofficient vector $[X_a(f_i)]$, $i \in 1,N-1$ and append them to my frequency spectrum. Resulting in the spectrum: $[X_a(f_0),...X_a(f_{\frac{N}{2}+1}), X_a(f_{\frac{N}{2}}),X_a(f_{\frac{N}{2}-1}), X_a(f_{\frac{N}{2}-2}),...X_a(f_1)]=FFT(x(t))$ of my original signal $x(t)$.

Now to my situation:

I do get something similar to the results of above modification of signals. The major difference is that i don't get all $\frac{N}{2}+1$ coefficients of the complex signal $x_c(t)$. But what i do get is the complex signal from $0$ to $\frac{N}{2}-1$. So what i'm lacking is the coefficient $X_a(f_{\frac{N}{2}})= \sum_{k=0}^{N} e^{i\pi k}x_a(k)$ of the Fourrier transform of my Fourrier pair $(X_a(f_i),x_a(t))$. This is a real valued Fouerrier coefficient of the signal $x(t)$ at the nyquist frequency.

So what way i would be able to get the best approximation of my original signal?

Thanks in advance!!

PS: Hope this format is way better than before.

$\endgroup$
  • $\begingroup$ Hello Marcel. I am very, very confused by your question, so it is hard to answer. Can you cull it down and make it succinct please? Thanks. $\endgroup$ – Tarin Ziyaee Aug 8 '13 at 14:01
  • $\begingroup$ I'll try to make it short and more meaningful user4619. $\endgroup$ – Marcel Aug 8 '13 at 15:13
  • $\begingroup$ I did it and do hope it is more useful now.. $\endgroup$ – Marcel Aug 9 '13 at 8:22
3
$\begingroup$

First answer deleted since I completely misunderstood the question.

The problem here is that apparently you are missing one frequency point. From the question it's not clear what is missing. You say you have the points from 0 to N/2. That's actually N/2+1 (if 0 and N/2 are included) and all you need. If that's not the case, there are gew possibilities

  1. Go to the person who provided the data and ask them to fix it
  2. X(0) and X(N/2) are actually real valued. Sometimes people pack the X(N/2) value into the imaginary part of X(0) to save space and create a symmetrical representation. Check your X(0) and figure out whether it's imaginary part is actually 0 or not
  3. There is a way to represent a N-point real sequence with exactly N/2 complex coefficients that involves a half sample rotation in the frequency domain. That's pretty esoteric and unlikely in this case (but works quite well).
  4. If the high frequency energy in your original signal is sufficiently low, you can set the Nyquist coefficients simply to zero. According to the sampling theorem, that should be zero anyway. In practice this will add some noise to the reconstructed signal but if it's small enough that may be tolerable.
$\endgroup$
  • $\begingroup$ Thank you very much Hilmar! That 3rd point is very interesting to me. Do you have any source or any technical term for me to get into it? I also edited my question to prevent further missunderstanding. $\endgroup$ – Marcel Aug 9 '13 at 12:22
  • $\begingroup$ It's really simple and just a convention that I have seen in a few companies: to pack: X'(0) = X(0)+j*X(N/2). To unpack: X(0) = Re{X'(0)}; X(N/2) = Im{X'(0)}; $\endgroup$ – Hilmar Aug 9 '13 at 15:51
  • $\begingroup$ Looks good to me, thank you Hilmar. Your help is very appreciated! $\endgroup$ – Marcel Aug 12 '13 at 7:10

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.