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:
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
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!