From: Greg Heath on
On Feb 11, 5:49 am, "rsk" <kalera...(a)yahoo.com> wrote:
> >On Feb 10, 6:11=A0am, Greg Heath <he...(a)alumni.brown.edu> wrote:
> >> On Feb 8, 3:05 pm, dbd <d...(a)ieee.org> wrote:
> >>>..
>
> >> I meant periodic extension by an integer multiple of the original
> >> sample count would yield a cleaner interpolated spectrum than
> >> integer multiple zero-padding because it would not have the
> >> zeropad sinc function lobe artifacts.
>
> >Zero-extending doesn't produce any artifacts,  windowing does that.
>
> >Extending the data with another copy of the data gives a gain of 2 and
> >inserts alternate zeros in the fft output, so what is the point in
> >that?
>
> >> > Periodic extension is a theoretical construct that is only
> implemented
> >> > if the signal in the sample set is stationary and periodic in the
> >> > sample set. If so, the new sample set represents the original signal
> >> > with a longer window with a narrower response about each component in
> >> > the frequency domain.
>
> >> without the sidelobes caused by zeropad windowing.
>
> >Again, sidelobes come only from windowing.  If the signals are
> >periodic before extension there are no artifacts in the samples
> >because you have calculated no samples at frequencies where the
> >artifacts are not zero. If you use an fft larger than the data set by
> >zero extending at least some of your frequency samples will be at
> >frequencies where the windowing-generated artifacts are not zero. (You
> >can also get samples at different frequencies with a smaller fft by
> >'wrapping' the data.)
>
> >> > With real world data, how do you perform periodic extension? You
> can't
> >> > get better results by just repeating the data set unless the signal
> is
> >> > stationary and periodic in the sample set.
>
> >Actually, as I've pointed out above you can't get better results
> >without more independent data.
>
> >> It depends what you mean by "better" (.. sounds like Bill Clinton).
>
> >> In comparison with zero-padding it would have narrower mainlobes
> >> without zeropad sinc function sidelobes. Otherwise it would still
> >> have all of the usual problems ... aliasing, Gibbs, ...
>
> >Extending with copies of the data does not produce 'narrower'
> >sidelobes. Only a bigger original data window does that. If you go to
> >a rectangular window twice as long and your signal actually repeats in
> >the windowed samples, every other frequency component -is- actually
> >zero and your frequency samples will be at frequencies where the
> >windowing artifacts are zero. (And you could have calculated the
> >response with a smaller transform.)
>
> > Oh, did I mention that the sinc function characteristics are a
> >characteristic of the window and are independent of the zero-
> >extension? Zero-extension only changes where you sample the frequency
> >response.
>
> >> ...
>
> >Periodic extension may be a useful pedagogical deceit, but it is not
> >an operation that you need to explicitly perform to analyze real-world
> >data.
>
> >Dale B. Dalrymple
>
> All of you talked about the effect of zero padding on the frequency. Those
> were quite valuable comments. However, can I be sure that by zero padding,
> i would not see difference in amplitudes in FFT?( compared to that without
> padding)
>
> As someone said in the previous replies to my original post, the energy
> would distribute over more points if I increase the # of samples used for
> FFT.

Quoting from my original reply:

begin quote "

Now, Z2 = fft(z2/N2) will yield max(abs(Z2)) =
0.5 * maxabs(Z)) = 0.25 at f2(3) = f0 = 1 and
f(2047) = Fs-f0 = 1023.

Therefore, the peaks of Z2 are at the same frequencies.

However, the magnitude of the peaks are lower by a
factor of 2 because the average power is a factor
of 2 lower.

This raises questions about the correct fft scaling
for comparing zero-padded and periodically continued
functions. For example, comparing

z3 = [ z z];

z4 = [zeros(1,M) z zeros(1,N-M)];

" end of quote

Hope this helps.

Greg



From: dbd on
On Feb 13, 4:19 am, Greg Heath <he...(a)alumni.brown.edu> wrote:
> On Feb 10, 11:56 am, dbd <d...(a)ieee.org> wrote:
>
> > On Feb 10, 6:11 am, Greg Heath <he...(a)alumni.brown.edu> wrote:
>
> > > On Feb 8, 3:05 pm, dbd <d...(a)ieee.org> wrote:
> > >>..
>
> > > I meant periodic extension by an integer multiple of the original
> > > sample count would yield a cleaner interpolated spectrum than
> > > integer multiple zero-padding because it would not have the
> > > zeropad sinc function lobe artifacts.
>
> > Zero-extending doesn't produce any artifacts, windowing does that.
..>
..> In this comparison zeropadding must be considered windowing.
..>

It need not and it should not. I have tried to consistently use the
term 'zero extension' for the operation performed after windowing(by a
block of contiguous 1's).It is possible but unnecessarily confusing
(and it doesn't help) to get the same result by windowing(by a bigger
block of 1's) and then again windowing(by a block of 1's concatenated
by a block of 0's), but I think it is clearer to describe the process
with a single meaning of 'windowing', that being: windowing(by a
contiguous block of 1's). That is the simplest process that determines
all the information available for analysis.

..> The zeropadded function [z zeros(1,N)] is the windowed
..> periodically estended function [ones(1,N) zeros(1,N)] .* [ z z].

The problem with this is that
[z zeros(1,N)]
is also equal to
[ones(1,N) zeros(1,N)] .* [ z {anything else the size of z}]
and there is no way to distinguish from [z zeros(1,N)] whether the
original signal you were sampling would have yielded the 2N samples:
[ z z]
or
[ z {anything else the size of z}]

z contains all the information you have to analyze and that is why the
selection of z by windowing(by a block of contiguous 1's) is the
'eigen-operation' of the processes we are discussing.

....

I as said before:
>
> > Periodic extension may be a useful pedagogical deceit, but it is not
> > an operation that you need to explicitly perform to analyze real-world
> > data.

'Periodic extension' is a relationship between z and some hypothetical
signal of infinite extent. If the sampling of your signal for mN
samples would have produced m concatenated copies of z for all m =>
inf, your signal possesses the property of periodic extension with
respect to z. Collecting N samples of a signal does not 'generate'
periodic extension. You cannot determine from z whether the property
of periodic extension exists between z and your signal. Why would we
bother with such a nebulous concept? It is the property that validates
the interpretation of the outputs of the DFT as samples of the
Fourier(no D) transform of the signal that z was sampled from. Some
people find this powerful and helpful. Real world signals are very
unlikely to exactly meet this criteria. They may well be close enough
for it to be useful. It is an exercise left for the analyst to judge
'close enough'. Suggesting that because you can concatenate two copies
of z to get [ z z] you have periodic extension is false (and it does
not help). That's the kind of thinking that gets us the 'A Fourier
transform does this but my calculation gives that. What's wrong with
my code?' questions.

Dale B. Dalrymple

From: Ron N. on
On Feb 13, 1:40 pm, dbd <d...(a)ieee.org> wrote:
> I have tried to consistently use the
> term 'zero extension' for the operation performed after windowing(by a
> block of contiguous 1's).It is possible but unnecessarily confusing
> (and it doesn't help) to get the same result by windowing(by a bigger
> block of 1's) and then again windowing(by a block of 1's concatenated
> by a block of 0's),

I regard multiplying 2 windows as simpler. Multiplying the 2 windows
reduces them to one window. You then have only 2 process: window
and transform, instead of 3 processes: window, extend and transform,
to analyze or consider the effects of. The doubled Sinc or Dirichlet
you end up with is exactly the transform of a shorter rectangular
window.


IMHO. YMMV.
--
rhn A.T nicholson d.0.t C-o-M
From: dbd on
On Feb 13, 6:22 pm, "Ron N." <rhnlo...(a)yahoo.com> wrote:
> On Feb 13, 1:40 pm, dbd <d...(a)ieee.org> wrote:
>
> > I have tried to consistently use the
> > term 'zero extension' for the operation performed after windowing(by a
> > block of contiguous 1's).It is possible but unnecessarily confusing
> > (and it doesn't help) to get the same result by windowing(by a bigger
> > block of 1's) and then again windowing(by a block of 1's concatenated
> > by a block of 0's),
>
> I regard multiplying 2 windows as simpler.  Multiplying the 2 windows
> reduces them to one window.  You then have only 2 process: window
> and transform, instead of 3 processes: window, extend and transform,
> to analyze or consider the effects of.  

The extend consists of no adds or multiplies and no conditional branch
within the process.

> The doubled Sinc or Dirichlet
> you end up with is exactly the transform of a shorter rectangular
> window.

Which is what the posters above forgot when they thought of the
window as ones -and- zeros. Which is why I suggest thinking of it the
other way. Once you understand it, you can certainly implement it
however the tools and libraries you use make it simplest.

>
> IMHO. YMMV.
> --
>  rhn A.T nicholson d.0.t C-o-M

Dale B. Dalrymple