# Basic IFFT Question - Please tell me if this is correct ...

Started by June 14, 2004
```Hi,

I have collected the complex transfer function H(f) of a device using
a network analyzer. The data is between frequencies f1 and f2 and
there are N available points (N is usually odd). I wish to use IFFT to
study the time-domain response of the system.

Now, my frequency resolution, fR = (f2 - f1)/(N-1). Hence, my sampling
time would be tS = 1/(N*fR) which gives, tS = (N-1)/(N*(f2 - f1)). N
is usually very large (16001, 32001 etc.,). Hence tS ~ 1/B, where B =
f2 - f1, and fS ~ B. But shouldn't fS >= 2B to satisfy Dr. Nyquist ?

The only explanation that I could come up with for this apparent
discrepancy is that that data is collected only at the positive
frequencies f1-f2 and is symmetric about zero. Hence, its baseband
representation will be between -(f2-f1)/2 and +(f2-f1)/2. So the
maximum bandwidth of the input signal is B/2 and Dr. Nyquisit is
happy.

Is my interpretation correct ?

Also, with such a measurement system, how do I increase the sampling
rate (fS), using post-processing ?

Vijay.
```
```Lord Labakudas wrote:
> Now, my frequency resolution, fR = (f2 - f1)/(N-1). Hence, my sampling
> time would be tS = 1/(N*fR) which gives, tS = (N-1)/(N*(f2 - f1)). N
> is usually very large (16001, 32001 etc.,). Hence tS ~ 1/B, where B =
> f2 - f1, and fS ~ B. But shouldn't fS >= 2B to satisfy Dr. Nyquist ?

I think Dr. Nyquist only requires fs >= B for *complex* samples.

> Also, with such a measurement system, how do I increase the sampling
> rate (fS), using post-processing ?

You can always interpolate to create more data points, but you can't
change the true sample rate.

OUP
```
```llabakudas@yahoo.com (Lord Labakudas) wrote in message news:<d632d29f.0406140756.41936b74@posting.google.com>...
> Hi,
>
> I have collected the complex transfer function H(f) of a device using
> a network analyzer. The data is between frequencies f1 and f2 and
> there are N available points (N is usually odd). I wish to use IFFT to
> study the time-domain response of the system.
>
> Now, my frequency resolution, fR = (f2 - f1)/(N-1). Hence, my sampling
> time would be tS = 1/(N*fR) which gives, tS = (N-1)/(N*(f2 - f1)). N
> is usually very large (16001, 32001 etc.,). Hence tS ~ 1/B, where B =
> f2 - f1, and fS ~ B. But shouldn't fS >= 2B to satisfy Dr. Nyquist ?

For real-valued data, yes. For complex-valued data it is sufficient that
fs > B.

> The only explanation that I could come up with for this apparent
> discrepancy is that that data is collected only at the positive
> frequencies f1-f2 and is symmetric about zero.

Indirectly, you are right. That's why your set of sampled complex-valued
data can be related to a physical world where only real-valued data exist.

From a *mathematical* point of view, the reason why fs > B works is that
there are no "spectrum mirrors" at negative frequencies for complex-
valued data. Remember, the real-valued sinusoidal is experessed as

sin(wt) = 1/j2(exp(jwt))-exp(-jwt))

which means a spectrum line will be needed on both +w and -w. You only
need one coefficient to represent the complex exponential exp(jwt).

> Hence, its baseband
> representation will be between -(f2-f1)/2 and +(f2-f1)/2. So the
> maximum bandwidth of the input signal is B/2 and Dr. Nyquisit is
> happy.

Wrong. The "extra" information is kept in the imaginary parts of your
complex-valued data. You will find that the real-valued time series
x(t) can be reconstructed from complex-valued time data x'(t) as

x(t)= 2*real(x'(t))

or

x(t) = 2*real(IDFT(X'(w)))

where X'(w) is a one-sided spectrum that fulfills Nyquist.

Mind you that you may have to zero-pad the N-point one-sided spectrum
by a factor N to make space for the "spectrum mirror" before computing
the IDFT as above. Even if you have all the information to represent
the real-valued time series, you still need dense enough sampling
to keep Dr Nyquist happy after having converted the signal to time
real-valued domain.

> Is my interpretation correct ?

Not quite. I think you got very far along the right lines of thought,
but you did not quite break loose from the usual "indoctrination"
in basic DSP courses. In my experience, most basic DSP text concern
themselves with causal, real-valued data only. Unfortunately, many
basic results (like the Nyquist limit of fs > 2B) are valid for
real-valued data only. When you. like me, deal with complex-valued
data in an off-line setting, all those "fundamental truths" must
be discarded and one have to deduce relevant results by oneself.

If only somebody some time would write a basic DSP text where
real-valued data and causality are introduced as convenient
simplifying assumptions and not the general case to be taken
for granted...

> Also, with such a measurement system, how do I increase the sampling
> rate (fS), using post-processing ?

Spectrum zero-padding, as indicated above, would be one method.

Y'welcome.

> Vijay.

Rune
```
```Thanks a lot for your helpful e-mail. I indeed went a long way with
the "fS >= 2B" stuff ! Now I see what's going on .

Since I am working on Phased Array sutff, I am more interested in the
baseband complex (I, Q) data, and hence I believe now that I just have
to re-label the frequency axis from 0 to f2-f1 (instead of between f1
and f2), zero pad to allow space for the spectral mirror and take IDFT
to get the complex time-domain data.

Thanks,
Vijay.

allnor@tele.ntnu.no (Rune Allnor) wrote in message news:<f56893ae.0406142337.31bbbf42@posting.google.com>...
> llabakudas@yahoo.com (Lord Labakudas) wrote in message news:<d632d29f.0406140756.41936b74@posting.google.com>...
> > Hi,
> >
> > I have collected the complex transfer function H(f) of a device using
> > a network analyzer. The data is between frequencies f1 and f2 and
> > there are N available points (N is usually odd). I wish to use IFFT to
> > study the time-domain response of the system.
> >
> > Now, my frequency resolution, fR = (f2 - f1)/(N-1). Hence, my sampling
> > time would be tS = 1/(N*fR) which gives, tS = (N-1)/(N*(f2 - f1)). N
> > is usually very large (16001, 32001 etc.,). Hence tS ~ 1/B, where B =
> > f2 - f1, and fS ~ B. But shouldn't fS >= 2B to satisfy Dr. Nyquist ?
>
> For real-valued data, yes. For complex-valued data it is sufficient that
> fs > B.
>
> > The only explanation that I could come up with for this apparent
> > discrepancy is that that data is collected only at the positive
> > frequencies f1-f2 and is symmetric about zero.
>
> Indirectly, you are right. That's why your set of sampled complex-valued
> data can be related to a physical world where only real-valued data exist.
>
> From a *mathematical* point of view, the reason why fs > B works is that
> there are no "spectrum mirrors" at negative frequencies for complex-
> valued data. Remember, the real-valued sinusoidal is experessed as
>
>    sin(wt) = 1/j2(exp(jwt))-exp(-jwt))
>
> which means a spectrum line will be needed on both +w and -w. You only
> need one coefficient to represent the complex exponential exp(jwt).
>
> > Hence, its baseband
> > representation will be between -(f2-f1)/2 and +(f2-f1)/2. So the
> > maximum bandwidth of the input signal is B/2 and Dr. Nyquisit is
> > happy.
>
> Wrong. The "extra" information is kept in the imaginary parts of your
> complex-valued data. You will find that the real-valued time series
> x(t) can be reconstructed from complex-valued time data x'(t) as
>
>   x(t)= 2*real(x'(t))
>
> or
>
>   x(t) = 2*real(IDFT(X'(w)))
>
> where X'(w) is a one-sided spectrum that fulfills Nyquist.
>
> Mind you that you may have to zero-pad the N-point one-sided spectrum
> by a factor N to make space for the "spectrum mirror" before computing
> the IDFT as above. Even if you have all the information to represent
> the real-valued time series, you still need dense enough sampling
> to keep Dr Nyquist happy after having converted the signal to time
> real-valued domain.
>
> > Is my interpretation correct ?
>
> Not quite. I think you got very far along the right lines of thought,
> but you did not quite break loose from the usual "indoctrination"
> in basic DSP courses. In my experience, most basic DSP text concern
> themselves with causal, real-valued data only. Unfortunately, many
> basic results (like the Nyquist limit of fs > 2B) are valid for
> real-valued data only. When you. like me, deal with complex-valued
> data in an off-line setting, all those "fundamental truths" must
> be discarded and one have to deduce relevant results by oneself.
>
> If only somebody some time would write a basic DSP text where
> real-valued data and causality are introduced as convenient
> simplifying assumptions and not the general case to be taken
> for granted...
>
> > Also, with such a measurement system, how do I increase the sampling
> > rate (fS), using post-processing ?
>
> Spectrum zero-padding, as indicated above, would be one method.
>
> > Thanks for your help,
>
> Y'welcome.
>
> > Vijay.
>
> Rune
```
```llabakudas@yahoo.com (Lord Labakudas) wrote in message news:<d632d29f.0406150800.3277d382@posting.google.com>...
> Thanks a lot for your helpful e-mail. I indeed went a long way with
> the "fS >= 2B" stuff ! Now I see what's going on .
>
> Since I am working on Phased Array sutff, I am more interested in the
> baseband complex (I, Q) data, and hence I believe now that I just have
> to re-label the frequency axis from 0 to f2-f1 (instead of between f1
> and f2), zero pad to allow space for the spectral mirror and take IDFT
> to get the complex time-domain data.
>
> Thanks,
> Vijay.
>
>
> allnor@tele.ntnu.no (Rune Allnor) wrote in message news:<f56893ae.0406142337.31bbbf42@posting.google.com>...

> > Mind you that you may have to zero-pad the N-point one-sided spectrum
> > by a factor N to make space for the "spectrum mirror" before computing
> > the IDFT as above.

This should be zero-padding with a factor 2, i.e. appending N zeros
to the one-sided spectrum before computing the IDFT.

Rune
```