Here's a relatively arcane issue that I hope someone has the answer for.
I understand that given the vagarities of FFT's if I start with
a waveform of say 256 _or_ 257 points I will end up with an fft
of 129 points. That's fine.
Conversely, if I take an ifft of the spectrum (129) points I can
get either a 256 or 257 point waveform.
The question is- how do I control which waveform to get?
By experiment, if I take a waveform and then take an fft and an ifft
I get exactly the original waveform
ifft(fft(256 point waveform)) gives a 256 point waveform
ifft(fft(257 point waveform)) gives a 257 point waveform
This is great.
HOWEVER, it seems that if I do anything to the spectrum in between
the fft and ifft, then I don't know what I will get back
for example:
ifft(randomize(fft(256 point waveform))) gives a 257 point waveform
ifft(sin(fft(256 point waveform))) gives a 256 point waveform
and it seems that any time I create a spectrum using the BUILD SPECTRUM
object I get the 257 point waveform
ifft(129 point spectrum built from BUILD SPECTRUM) gives a 257 point waveform
***************
BOTTOM LINE: I need to be able to control this so that there is a consistent
result!
Any hints would be appreciated.
thanks
Stan Bischof
----------------------------------------------------------------------
Stan Bischof Hewlett Packard Company 707-577-3994 rsb@sr.hp.com
----------------------------------------------------------------------
I understand that given the vagarities of FFT's if I start with
a waveform of say 256 _or_ 257 points I will end up with an fft
of 129 points. That's fine.
Conversely, if I take an ifft of the spectrum (129) points I can
get either a 256 or 257 point waveform.
The question is- how do I control which waveform to get?
By experiment, if I take a waveform and then take an fft and an ifft
I get exactly the original waveform
ifft(fft(256 point waveform)) gives a 256 point waveform
ifft(fft(257 point waveform)) gives a 257 point waveform
This is great.
HOWEVER, it seems that if I do anything to the spectrum in between
the fft and ifft, then I don't know what I will get back
for example:
ifft(randomize(fft(256 point waveform))) gives a 257 point waveform
ifft(sin(fft(256 point waveform))) gives a 256 point waveform
and it seems that any time I create a spectrum using the BUILD SPECTRUM
object I get the 257 point waveform
ifft(129 point spectrum built from BUILD SPECTRUM) gives a 257 point waveform
***************
BOTTOM LINE: I need to be able to control this so that there is a consistent
result!
Any hints would be appreciated.
thanks
Stan Bischof
----------------------------------------------------------------------
Stan Bischof Hewlett Packard Company 707-577-3994 rsb@sr.hp.com
----------------------------------------------------------------------