Reply by dan September 18, 20062006-09-18
Rune Allnor wrote:
> [snip] > It's not a "good point". It is what kills the "simple" idea. > [snip] > > Rune
Yes, transfer functions estimated using too low level of an excitation will be poor. ...And hotdogs are a choking hazard. The world is, indeed, a very dangerous place. :-) Rune - I think that you are making a bit bigger deal of this one thing than necessary. In my mind, there are plenty of other, equally important issues to manage regarding the microphone(s), speaker(s)/amplifiers(s), and how their configuration and dynamics affect the resulting TF estimate. OP: To address the excitation level... measure excitation/response coherance at the time of transfer function estimation. If you have good coherance (i.e., 1 or darn near) across the band of interest, and you don't goof up the actual estimation process, you will likely end up with a suitable transfer function for whatever dynamics are included - whether you wanted to include them or not. As far as references, Bendat/Pearsol or Candy come to mind - but that is just off the top of my head. Otherwise, use a pistol to get the impulse response. Have I mentioned that the world is a very dangerous place. :-) BR, Dan
Reply by Rune Allnor September 15, 20062006-09-15
stereo skrev:
> Hello to all, > > thank you for your answers, the point with numerical noise / very large > errors if the input at frequency kn is very small is certainly a good > point.
It's not a "good point". It is what kills the "simple" idea.
> I just still don't get how the approach with cross-spectra and > auto-spectra is superior in that case to the simple division case, i.e. > why should this approach get a different result.
The cross spectrum method is not an unconditionally failing approach. Dividing the spectra is.
> If the system is fed > with a tiny signal at frequency kn there is no way in getting the > response at this frequency, independent of the approach used. > What do I miss, and where is the reason for using the > correlation-formulae instead of "simple division and subtraction"?
You miss the fact that a 0/0 expression (or rather, a/b where |a| and |b| are very small) generates intolerable amounts of numerical noise every single time it occurs. And it occurs sufficiently often to make people look for other methods that achieve the desired result. Rune
Reply by stereo September 15, 20062006-09-15
Hello to all,

thank you for your answers, the point with numerical noise / very large
errors if the input at frequency kn is very small is certainly a good
point. I just still don't get how the approach with cross-spectra and
auto-spectra is superior in that case to the simple division case, i.e.
why should this approach get a different result. If the system is fed
with a tiny signal at frequency kn there is no way in getting the
response at this frequency, independent of the approach used.
What do I miss, and where is the reason for using the
correlation-formulae instead of "simple division and subtraction"?

stereo


Rune Allnor schrieb:

> Andor skrev: > > stereo wrote: > > > > > > > > What happens when |X(k)| -> 0? > > > > > > > Sorry, I forgot to mention the assumption of a linear system. Then, if > > > |X(k)| == 0 it follows |Y(k)| == 0. > > Right. Which leaves H(k) unspecified since you end up with a 0/0 > expression. Well, not exactly, but close enough to make a serious > mess. Not good. Not good at all. > > > I think what Rune wanted to say that if |X(k)| is very small, then you > > cannot accurately determine the value of the transfer function at that > > k. In case |X(k)| = 0, there is nothing you say about the transfer > > function at k. > > Exactly. Lots of people who take the "easy" route along H(k) = > Y(k)/X(k) > find themselves bogged down with numerical noise. > > Rune
Reply by Rune Allnor September 14, 20062006-09-14
Andor skrev:
> stereo wrote: > > > > > > What happens when |X(k)| -> 0? > > > > > Sorry, I forgot to mention the assumption of a linear system. Then, if > > |X(k)| == 0 it follows |Y(k)| == 0.
Right. Which leaves H(k) unspecified since you end up with a 0/0 expression. Well, not exactly, but close enough to make a serious mess. Not good. Not good at all.
> I think what Rune wanted to say that if |X(k)| is very small, then you > cannot accurately determine the value of the transfer function at that > k. In case |X(k)| = 0, there is nothing you say about the transfer > function at k.
Exactly. Lots of people who take the "easy" route along H(k) = Y(k)/X(k) find themselves bogged down with numerical noise. Rune
Reply by Andor September 14, 20062006-09-14
stereo wrote:
> > > > What happens when |X(k)| -> 0? > > > Sorry, I forgot to mention the assumption of a linear system. Then, if > |X(k)| == 0 it follows |Y(k)| == 0.
I think what Rune wanted to say that if |X(k)| is very small, then you cannot accurately determine the value of the transfer function at that k. In case |X(k)| = 0, there is nothing you say about the transfer function at k. However, this doesn't really answer your original question. Have you tried Googling for deconvolution? A rather complex topic. Regards, Andor
Reply by stereo September 14, 20062006-09-14
> > What happens when |X(k)| -> 0? >
Sorry, I forgot to mention the assumption of a linear system. Then, if |X(k)| == 0 it follows |Y(k)| == 0. If |X(k)| -> 0 and there is some output signal |Y(k)| > 0 at the respective frequency, the magnitude of the TF is indeed (and correctly determined) very large. IMO. stereo
Reply by Rune Allnor September 13, 20062006-09-13
stereo skrev:
> Hi everyone, > > this questions sounds possibly too simple, but nevertheless I don't get > it: taken a measurement, say sweep measurement of a room, I want to get > the acoustic room transfer function. I have the stimulus signal X(k) > and the measured response Y(k), k being the discrete frequency. All > formulae I found say: the transfer function is calulated by the cross > spectrum X(k)*Y(k) divided by the autospectrum of the input signal > X(k)*X(k). > Why can't I simply divide the measurements to get the relationship > between the output Y(k) and the input X(k), meaning TF = Y(k) /. X(k) ?
What happens when |X(k)| -> 0? Rune
Reply by Jack Ace September 13, 20062006-09-13
stereo ha scritto:

> Aeeehm...sorry for the sloppy formulations. I meant something like > magitude of the transfer function = abs(Y(k)) /. abs(X(k)) and > phase of the transfer function = angle(Y(k)) - angle(X(k))
point by point calculation is fine once you have "recorded" a sufficiently dense set of points (Y(k), X(k) ) sorry, but I can't figure out your doubt... Bye, Jack
Reply by stereo September 12, 20062006-09-12
Aeeehm...sorry for the sloppy formulations. I meant something like
magitude of the transfer function = abs(Y(k)) /. abs(X(k)) and
phase of the transfer function = angle(Y(k)) - angle(X(k))

Reply by stereo September 12, 20062006-09-12
Hi everyone,

this questions sounds possibly too simple, but nevertheless I don't get
it: taken a measurement, say sweep measurement of a room, I want to get
the acoustic room transfer function. I have the stimulus signal X(k)
and the measured response Y(k), k being the discrete frequency. All
formulae I found say: the transfer function is calulated by the cross
spectrum X(k)*Y(k) divided by the autospectrum of the input signal
X(k)*X(k).
Why can't I simply divide the measurements to get the relationship
between the output Y(k) and the input X(k), meaning TF = Y(k) /. X(k) ?

Thanks in advance to everyone taking the time to answer :-)

stereo