Path: news.mathworks.com!newsfeed-00.mathworks.com!newsfeed2.dallas1.level3.net!news.level3.com!postnews.google.com!r60g2000hsc.googlegroups.com!not-for-mail
From: Greg Heath <heath@alumni.brown.edu>
Newsgroups: comp.soft-sys.matlab
Subject: Re: How to zoom into a certain part of FFT?
Date: Wed, 21 Nov 2007 11:55:24 -0800 (PST)
Organization: http://groups.google.com
Lines: 122
Message-ID: <98f96493-52b1-4425-9ce3-455c07b608ed@r60g2000hsc.googlegroups.com>
References: <f5sk5g$qmm$1@news.Stanford.EDU> <fhut0b$6om$1@fred.mathworks.com>
NNTP-Posting-Host: 69.141.182.127
Mime-Version: 1.0
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: 7bit
X-Trace: posting.google.com 1195674926 13929 127.0.0.1 (21 Nov 2007 19:55:26 GMT)
X-Complaints-To: groups-abuse@google.com
NNTP-Posting-Date: Wed, 21 Nov 2007 19:55:26 +0000 (UTC)
Complaints-To: groups-abuse@google.com
Injection-Info: r60g2000hsc.googlegroups.com; posting-host=69.141.182.127; 
User-Agent: G2/1.0
X-HTTP-UserAgent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; (R1 1.5); 
Content-Disposition: inline
Xref: news.mathworks.com comp.soft-sys.matlab:438772


Corrected for the heinous crime of Top-Posting.

On Jun 27, 10:44 pm, "Vista" <a...@gmai.com> wrote:

> "Vista" <a...@gmai.com> wrote in message
> news:f5sk5g$qmm$1@news.Stanford.EDU...
>
> > Suppose I have a signal f(t), t is in [0, +infinity).

f(t) is then categorized as "causal"

> > And I have its spectrum F(w).

For causal time functions, there can be no singularities of
F(w = wr+j*wi) in the closed lower half complex plane wi <= 0.

> > Let's say I found out that its main spectrum has 99.9% in [-B, B].
>
> > So I truncate/extract out the portion of F(w), for w in [-B, B], and
> > discretized the interval into small grids with step size deltaB.
>
> > And I then do the inverse FFT on the above samples of F(w), let's call the
> > inverse FFT reconstruction f_hat.
>
> > Which part of f(t) does this inverse FFT f_hat represent?

A low pass filtered part. When 0 <= t < inf, think of f_hat as a
moving
window average of f(t). However, it is more complicated than that
because f_hat will be noncausal and nonzero in the negative time
interval -inf < t < 0.

> > If I want to zoom into a certain part of f(t), how can I use inverse FFT
> > to do that?
> > Let's say I only need [a, b] where 0<a<b< infinity, in the time domain,
>
> > I only need to visualize the f(t), for t in [a, b],
>
> > how do I sample F(w) and do the inverse FFT?

There is no prescibed way to do this.  In general, the function
fab(t) = f(t) for t in [a,b] but zero elsewhere has a transform
Fab(w) with infinite support; i.e., there is no interval on (-
inf,inf)
where Fab(w) is identically zero. In addition there is no interval
on (-inf,inf) where abs(Fab(w)) is guaranteed to be small.

> > -------------------------
>
> > More generally, I am actually thinking of desing a "spectrum analyzer"
> > with zoom-in feactures:
>
> > as you can see, first do a coarse level inverse FFT to gain a big picture
> > of the f(t) curve, and then allow user to zoom into a particular part of
> > the f(t) curve and display it with higher resolution of IFFT.
>
> > How to do all of these?
>
> This is not a joke post. I really have this question in my mind for long
> time.
>
> When I truncate/extract out F(w) for w in [-B, B] and use step size deltaB
> to sample it and then do IFFT, what is the portion of f(t) I see? Say f(t)
> for t in [a, b]. What are a and b?

Unfortunately, there is an inverse relationship between B and b-a.
The
extreme cases are B = 0 ==> b-a = inf  and b-a = 0 ==> B = inf (in
particular,
impulse <--> sinc). Consequently, there is no finite frequency
interval that
directly corresponds to a finite time interval.

F(w) = FB(w) + FE(w),      -inf < w < inf

FB(w) =     F(w), |w| < B      Bandlimited part of the spectrum
           =         0 , |w| > B
FE(w) =          0, |w| < B
           =   F(w) , |w| > B

Inverse transforming

 f(t)   = fB(t) + fE(t),      0 <= t < inf

where

FB -> fB,       -inf < t < inf
FE -> fE,       -inf < t < inf

and

fB(t)+fE(t) = 0 ,      -inf < t < 0.

1. FB(w) = 0, |w| > B  ==>  fB is not time limited
==> In general, there is no finite time interval [t0-d,t0+d] for
which fB(t) = 0 for |t-t0| > d.
2. Therefore fE = f-fB is also not time limited.
3. Statements 1 and 2 are  true even if f is causal (i.e., f(t) = 0, t
< 0).
4. If f is causal, neither fB or fE are causal and fE = - fB for t <
0.
5. In intervals where |fB| >> |fE|, think of fB as a smooth version of
f
    and fE as the residual.

> Now suppose I find there is some fine structure in [c, d], which is shown
> from the visual display of f_hat(t), t in [a, b]. And a<c<d<b.
>
> How to do IFFT targeting at f(t) on [c, d] with higher resolution?

Fine structure in any interval can be resolved by increasing B.
Although this tends to increase the average of the ratio |fE^2| / |
fB^2|
over (-inf,inf), it is most significant in the intervals of interest
where
|fE^2| / |fB^2| is originally small.

Hope this helps.

Greg