Triple correlation and bispectrum
9 次查看(过去 30 天)
显示 更早的评论
Hello,
I have a three 1D signals which I want to triple cross-correlate. The triple cross correlation is:
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/151607/image.png)
Applying the convolution theorem, I can calculate this by FFT each signal, multiplying, and inverse FFT back.
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/151609/image.png)
where
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/151611/image.png)
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
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
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
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!