From: Puneet Agarwal on
Hi,

In trying to understand the bispectrum and its estimation from the
random time-series data, I did following example illustrating the
phase coherence discussed in some books/papers

signal x(t) = xb(t) + xc(t) + xd(t);
xi(t) = cos(2*pi*fi*t + phasei), i = b,c,d
fb, fc = choose. fd = fb+ fc
phaseb,phasec = random.
phased = phaseb + phasec (Case 1: Phase coupled)
phased = random (Case 2: Phase uncoupled)

I estimated bicoherence using the direct method (simmilar tp Welch's
method for power spectrum using FFT). Of main interest here is

b(fb,fc): bicoherence at coupled frequencies.

I find following:

1. b(fb,fc) = 1, for Case 1 (coupled frequencies).
b(fb,fc) = 0, for Case 2 (uncoupled frequencies).
when I estimate bicoherence by averaging over M (say 64) different
realizations of the process. This is correct.

1. b(fb,fc) = 1, for Case 1 (coupled frequencies).
b(fb,fc) = 1, for Case 2 (uncoupled frequencies).
when I estimate bicoherence by segmenting one time-series in M
(overlapping) segments. This is incorrect.

I did computations using a Matlab toolbox as well as my own small
code. My hand calculations suggest that the estimation method by its
very nature would give results listed above. However, I am sure there
are methods that give correct estimate of bispectrum for a
time-series.

Could some of you help understand the error i am making, or suggest a
method that estimated bispectrum of a time-series data.

Thanks

Puneet