safe FFT resolution reduction and transfer functions

Started by rih5342 November 29, 2009
This thread reminds me that I have long believed that one of the
comp.dsp parallels of Clarke's 3rd law is that:

Any sufficiently pressed inadequate grasp of technology is
indistinguishable from a troll.

Dale B. Dalrymple
On Nov 30, 7:20 pm, "rih5342" <> wrote:

>How is the calculated-time-domain data (via IFFT) changed by the >raw-time-domain data being windowed prior to FFTing in the first place? >I assume you divide the calculated-time-domain data by the window >function (being careful about divide by zero).
The raw data is windowed, then FFT'd. Since your data after FFT is mag/phase, you have to convert it to real/imaginary before doing an IFFT. After the IFFT, you get the real/imaginary windowed data back. Trying to 'unwindow' that data can be problematic, especially for some windows. You also have to know if/how the windowed data was scaled for the FFT.
>Since this calculated-time-domain data represents 1 period (by the >definition of Fourier Analysis), any halfing of the measurement >duration will also be 1 period and therfore does not require windowing >for the forward FFT.
Also, from a previous post:
>Doesn't the INVERSE >of a properly filtered, windowed, overlapped, and averaged FFT >produce time data with a KNOWN period and therefor doesn't need windowing?
This is completely wrong. If you have a sinusoid of 1 cycle per second, and you have a measurement interval of 1/2 sec, and you window/ FFT the data, the real world waveform should somehow magically be one cycle? The real world does not know or care about your presumptions. The FFT provides you with an estimate of the amplitudes and phases of N harmonic sinusoids whose sum will most closely approximate the data in the measurement interval in a least mean squares sense. Your result could be significantly wrong if the real world behaves differently than what you or the FFT presumes.
>If the period is known exactly, why would a window still be needed?
IF you knew the exact period of the real world data, AND you had a measurement interval that EXACTLY matched the real world waveform period, then .... you may still need to use a window. It depends on what you're trying to do. Are you trying to get an average estimate from multiple data acquisitions? Do you need an accurate average amplitude estimate? Do you need to preserve phase information? I'm still not quite clear on what you're trying to do. Kevin McGee
On Nov 30, 11:16&#2013266080;pm, kevin <> wrote:

meant to write:

...the real world waveform should somehow magically be one half cycle?

On Nov 29, 1:02&#2013266080;pm, "rih5342" <> wrote:
> Hi All, > > The context: > > I'm using Matlab to calculate a transfer function based on > spectra measured with several data-acq systems. > > My problem is that the FFTs are "hi" resolution > and because of the different setups, the resonant frequencies > don't line up nicely. I suspect the resulting transfer function > doesn't capture the true system. > > I'd like to reduce the resolution of the FFTs from 16 kHz, to 8 kHz, > to 4kHz, ... etc until the frequency bin width of the measurements is > large enough to engage the different measurements. &#2013266080; > > The question: > > Assuming I only have the "hi" resolution FFTs, amplitude and phase, > and that they are good, ie properly filtered, properly windowed, > properly overlapped, properly averaged, whats the best way to reduce the > resolution? > > 1. do an inverse FFT, decimate/resample the calculated time > domain data, then do a lower resolution FFT &#2013266080;(no windowing, > no overlapping, and no averaging required, right?)? > > 2. or do an intelligent addition of adjacent bins?
Intelligent addition, in the form of a low pass filter of the frequency data plus resampling the result at the greater bin spacing might work. The low pass filter plus the resampling will end up looking very similar to convolving with a sinc function. Since convolving with this filter is equivalent to multiplying with its transform in the time domain (a rectangular window, or close to it), what you would get would be close to taking a shorter FFT of some truncated time domain vector (for stationary data). And the shorter FFT would give less frequency "resolution", as you desire. So the equivalent might be IFFT, truncate (or fold), FFT, if that's computationally cheaper. So the results of 1. or 2. could be close to the same, depending on how "intelligently" you do your addition of bins (filter choice, resampling method, window function, etc.) The inverse window + truncate + rewindow will be lossy, but less lossy if you choose your rectangular truncation window wisely. If you don't window, then the distant side lobes of any noise/interfering signals would be greater. If the data isn't stationary, and you don't take phase into consideration, I think that low pass filtering the frequency domain data is equivalent to folding the time domain data into a smaller window rather eliminating time domain segments with a rectangular window before FFTing, but I'm not sure about this. . IMHO. YMMV. -- rhn A.T nicholson d.0.t C-o-M
>Any sufficiently pressed inadequate grasp of technology is >indistinguishable from a troll.
If you press coal hard enough you get diamond. Right or wrong, I have enough info to work up a series of definitive test cases. Everyone thank you.