>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.
Reply by Ron N.●December 1, 20092009-12-01
On Nov 29, 1:02�pm, "rih5342" <rob.hic...@us.bosch.com> 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. �
>
> 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 �(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
http://www.nicholson.com/dsp.html
Reply by kevin●December 1, 20092009-12-01
On Nov 30, 11:16�pm, kevin <kevinjmc...@netscape.net> wrote:
meant to write:
...the real world waveform should somehow magically be one half cycle?
Reply by kevin●December 1, 20092009-12-01
On Nov 30, 7:20 pm, "rih5342" <rob.hic...@us.bosch.com> 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
Reply by dbd●November 30, 20092009-11-30
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
Reply by rih5342●November 30, 20092009-11-30
Hi All,
This is an FFT question, not an experimental technique question.
I'm calculating a transfer function using measurements from
different setups and different data-acq systems.
If I had used fewer lines in my FFTs, the resonant frequencies
from the different measurements would have been in bins centered
on the same frequency. However, because of the high number of
lines, the resonant frequencies are off by a bin or 2.
What I need is a way to easily change the delta-f for a hundred FFTs.
The raw-time-domain data is not available.
The FFTs I'm using, have both amplitude and phase.
I plan on calculating the time domain data for each FFT, by inverse FFT,
halfing the measurement duration, then forward FFTing.
My question is about the details of doing this.
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).
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.
If the period is known exactly, why would a window still be needed?
Furthemore, is there any reason to not expect this
calculated-time-domain data to be of higher quality because it
represents an average of many FFTs?
I appreciate everyone's input.
RIH5342
Reply by Rune Allnor●November 30, 20092009-11-30
On 30 Nov, 03:34, robert bristow-johnson <r...@audioimagination.com>
wrote:
> > You have to do weird things which means
> > your approach to the problem is incorrect.
>
> Vlad, that's not always true.
You neet to know the rules to know when to break them.
The OP doesn't know the most basic rules. Vlad is right.
> > could you tell what is the
> > whole problem, what do you have at the
> > input, and what should you get at the output.
>
> i think he wants to smooth out those different bumps that he gets from
> the different sensors. �or something that makes the "resonant
> frequencies don't line up nicely". �so we're gonna smooth out them
> damn resonant frequencies. �i dunno, it's just a guess.
Exactly: Everybody are guessing because the OP doesn't
know what he is doing, and hence is unable to come up
with a useful problem description.
Rune
Reply by dbd●November 30, 20092009-11-30
On Nov 29, 1:02 pm, "rih5342" <rob.hic...@us.bosch.com> wrote:
> Hi All,
>
Your post has received many responses giving little help. There are
reasons for this. You do not provide adequate context or clear
technical statements. Examples follow:
> The context:
>
> I'm using Matlab to calculate a transfer function based on
> spectra measured with several data-acq systems.
Why does this matter? Are there different sample frequencies?
>
> My problem is that the FFTs are "hi" resolution
Resolution has a number of inconsistent meanings, later you use bin
width, is "hi" resolution bigger or smaller bin width? Do you really
mean bin spacing? When windowing is applied, it changes bin width but
not bin spacing. Consider using bin spacing.
> 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.
"line up nicely" and "capture the true system" are not technical terms
that communicate useful meaning.
>
> 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.
>
> 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?
Windowing is combined with overlapping and averaging most often with
power or magnitude data. if so you have no useful phase information.
If you have frequency domain data from rectangular windowed data
(sometimes referred to as unwidowed) and have magnitude and phase, you
can reconstruct the complex fft coefficients. If the frequency
components you want to measure are well separated at of adequate SNR,
you can apply a frequency domain flattop window to get an accurate
amplitude reading regardless of signal position relative to bin
centers.
Take a look at:
http://ece.wpi.edu/analog/resources/FFT_Windowing_Tutorial.pdf
for windows in general and the use of flattop in particular
There is a class of windows sometime referred to as "cosine-sum" that
can be applied in the frequency domain as small convolutions. They
would work for your frequency domain data. This only works if you
really do have phase information so you can get to complex fft
coefficients.
The documentation at:
http://www.mathworks.com/access/helpdesk/help/toolbox/signal/flattopwin.html
gives the coefficients for one example of a flattop window.
If you have only power or magnitude data, there are frequency
estimation techniques that could help you determine accurate amplitude
of non-bin centered signals. a number of people around here are
familiar with those techniques, but no one can tell what you need from
what you have said so far.
Good luck
Dale B. Dalrymple
Reply by robert bristow-johnson●November 29, 20092009-11-29
On Nov 29, 4:02 pm, "rih5342" <rob.hic...@us.bosch.com> wrote:
>
> 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.
you are trying to measure a composite spectrum from several sources?
> 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.
>
> 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,
that would mean tossing the high frequency data in the data that goes
into this iFFT.
> then do a lower resolution FFT (no windowing,
> no overlapping, and no averaging required, right?)?
i think a butt-splice can be made into a complementary splice. if
it's a butt-splice, it would be no overlap. but, i think a constraint
on the windowing and overlapping is that the overlapping windows add
to a constant 1. there are overlapping splices that satisfy that
constraint also.
> 2. or do an intelligent addition of adjacent bins?
that's convolution and that has multiplicative (as with a transfer
function) in the other domain. it's sorta the same as doing the iFFT
and multiplying by a low-pass transfer function and iFFTing back.
> 3. or try something you haven't thought of yet
how could anyone answer that question with "yes"?
anyway, i think that "reducing the resolution" in the frequency domain
means the same as shortening the impulse response in the time-domain
data. and you can shorten it by truncating it with some
multiplicative window that goes to zero as t increases. so numbers 1
and 2 are sorta two different ways of doing the same thing.
On Nov 29, 8:13�pm, Vladimir Vassilevsky <nos...@nowhere.com> wrote:
>
...
> I don't give a damn about FFTs, Matlabs or whatever recent engineering
> punks have instead of brains.
my goodness, the hapless OP pays for his question.
> You have to do weird things which means
> your approach to the problem is incorrect.
Vlad, that's not always true. sometimes doing the weird thing is the
correct approach. i think that general relativity is more correct
*and* weirder than newtonian gravitation.
> could you tell what is the
> whole problem, what do you have at the
> input, and what should you get at the output.
i think he wants to smooth out those different bumps that he gets from
the different sensors. or something that makes the "resonant
frequencies don't line up nicely". so we're gonna smooth out them
damn resonant frequencies. i dunno, it's just a guess.
r b-j
Reply by Vladimir Vassilevsky●November 29, 20092009-11-29
rih5342 wrote:
> It's impossible to anticipate everything every time, and cranking out 16
> kHz, 8 kHz, ..etc. FFTs for every measurement and every data channel (100
> +) just isn't practical.
>
> Judging what frequency resolution is best can only be done after you have
> most of the data.
>
> Let me reword the question.
>
> 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?
No.
> There's no need to overlap or average one period of data. I also think
> the averaging in the frequency domain improves the quality of the
> calculated time domain data.
Huh?
> I'm not a fan of Matlab, and like it or not, it is the computational tool
> recent engineering graduates know and WILL use.
I don't give a damn about FFTs, Matlabs or whatever recent engineering
punks have instead of brains. You have to do weird things which means
your approach to the problem is incorrect. Instead of wiggling with
data, could you tell what is the whole problem, what do you have at the
input, and what should you get at the output.
Vladimir Vassilevsky
DSP and Mixed Signal Design Consultant
http://www.abvolt.com