Triple correlation and bispectrum

9 次查看(过去 30 天)
Georgiy
Georgiy 2015-11-11
Hello,
I have a three 1D signals which I want to triple cross-correlate. The triple cross correlation is:
Applying the convolution theorem, I can calculate this by FFT each signal, multiplying, and inverse FFT back.
where
So the FFT for g and h functions is just:
G = fft(g);
H = fft(h);
but how do I find the FFT of f function? It's not just fft(f), right?
Thanks!
  1 个评论
timothy petersen
timothy petersen 2022-8-26
编辑:timothy petersen 2022-8-30
The FFT of f function that you seek (i.e. F) is two-dimensional in frequency space, in a trivial manner, even though your spatial function f is one-dimensional. To compute the desired F* using ffts, note that the second fourier frequency f2 is a phase ramp applied to f before the f1-frequency fft, which can be interpreted using the Fourier shift theorem. F* can then be tconstructed by a single initial fft on the function f, followed by a sequence of circshifts to replicate the effect of the f2 phase ramp. Rather than loop through a sequence of circshifts, it is faster to note that the structure of F looks like a Toeplitz matrix. Hence this psuedo-code ought to do the trick:
temp = fft(arr);
Fstar = conj(fliplr(toeplitz([temp(1) fliplr(temp(2:end))], temp)));
Bjorn Gustavsson's toolbox advice is worth following, as there's a decent body of good literature around the bispectrum and triple correlation (mostly in IEEE journals) which present a variety of robust statistical methods for estimating these quantities.
My comment here is just to address your specific question, as this particular fft query had also troubled me when I wanted to improve my basic understanding of the bispectrum (which remains basic, despite having read the literature).

请先登录,再进行评论。

回答(1 个)

Bjorn Gustavsson
Bjorn Gustavsson 2015-11-11
Perhaps you can modify any of the tools that appear when one searches for bispectrum at the File Exchange:
HTH
  2 个评论
Bjorn Gustavsson
Bjorn Gustavsson 2021-1-20
编辑:Bjorn Gustavsson 2021-1-20
There are a couple of higher-order-spectral analysis tools to be found on the File Exchange (a user-contributed code-repository). Try to look at those toolboxes, that I linked to above, and see if any of those already have the functionality you search for.
I can write coherently.
Hope this clarify the confusion.

请先登录,再进行评论。

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by