DSPRelated.com
Forums

Transfer Function and Coherence

Started by kool_ajith January 24, 2007
Hi All,

I have two waveforms X and Y. X is input waveform and Y is output.

I have FFT algorithm with me.

Now can anyone help me calculate the Transfer function and Coherence using
the FFT, rather than Matlab etc.

I have read at many places that the transfer function is calculated by the
cross spectrum X(k)*Y(k) divided by the autospectrum of the input signal
X(k)*X(k). 
But how shall calculate cross spectrum and autospectrum using FFT?

If there are any other suggestions ... please specify.
Any suggestions are welcome.

Thanks and regards,
Ajith


Here is a step-by-step instruction:

http://www.go-ci.com/services.asp?BigClassName=Hardware%20Development&SmallClassName=H-Real%20time%20dynamic%20signal%20analyzer&id=47

"DigitalSignal" <digitalsignal999@yahoo.com> wrote in message
news:1169685949.866823.245430@q2g2000cwa.googlegroups.com...
> Here is a step-by-step instruction: > >
http://www.go-ci.com/services.asp?BigClassName=Hardware%20Development&SmallClassName=H-Real%20time%20dynamic%20signal%20analyzer&id=47
>
Best way is to take your two FFT frequency vector ersults (say X and Y) and do this Sxx(i)=beta*Sxx(i-1)+(1-beta)*XX^ (here ^ is complex conjugate) where beta 0<beta<1 is a forgetting factor (say 0.9) Syy(i)=beta*Syy(i-1)+(1-beta)*YY^ and for cross spectrum we have Sxy(i)=beta*Sxy(i-1)+(1-beta)*XY^ This method tracks variations for non-stationary signals - works well.If beta is close to unity it performs an averaging ie smoothing effect. When beta is say 0.5 it is better for tracking but less smooth. If you just use straight periodograms and cross-periodograms the results will be more noisy. F. -- Posted via a free Usenet account from http://www.teranews.com
FitLike,

Thanks for the additional info. We called this method as exponential
averaging. Alternatively people use Linear averaging.