Triple correlation and bispectrum
8 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
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 comentario
timothy petersen
el 26 de Ag. de 2022
Editada: timothy petersen
el 30 de Ag. de 2022
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).
Respuestas (1)
Bjorn Gustavsson
el 11 de Nov. de 2015
Perhaps you can modify any of the tools that appear when one searches for bispectrum at the File Exchange:
HTH
2 comentarios
Bjorn Gustavsson
el 20 de En. de 2021
Editada: Bjorn Gustavsson
el 20 de En. de 2021
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.
Ver también
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!