Fast Circular Cross Covariance
No License
%% CXCOV Circular Cross Covariance function estimates.
% CXCOV(a,b), where a and b are two signals of the same length, both
% periodic signals and real.
%%
%[lags,cc]=CXCOV(a,b) returns the length M-1 circular cross covariance
%sequence cc with corresponded lags.
%%
% The circular cross covariance is the normalized circular cross correlation function of
% two vectors with their means removed:
% c(k) = sum[a(n)-mean(a))*conj(b(n+k)-mean(b))]/[norm(a-mean(a))*norm(b-mean(b))];
% where vector b is shifted CIRCULARLY by k samples.
%%
% The function doesn't check the format of input vectors a and b!
%%
% For circular correlation and also the slower implementation of Cross Covariance
% between a and b look for CXCORR(a,b) (written by G. Levin, Apr. 26, 2004.) in
% http://www.mathworks.com/matlabcentral/fileexchange/loadAuthor.do?objectType=author&objectId=1093734
%%
% For Cross Covariance of real signals, the current method is about 30 times faster than
% the method suggested by Levin using For-loop. Simply cxcov(a,b)=ifft(fft(a).*fft(b(length(b):-1:1)))/(norm(a)*norm(b))
the devision is for normalization
%
% Author: Ehsan Azarnasab, Aug. 17, 2006.
%%
Cite As
Ehsan Azar (2024). Fast Circular Cross Covariance (https://www.mathworks.com/matlabcentral/fileexchange/11997-fast-circular-cross-covariance), MATLAB Central File Exchange. Retrieved .
MATLAB Release Compatibility
Platform Compatibility
Windows macOS LinuxCategories
- Signal Processing > Signal Processing Toolbox > Transforms, Correlation, and Modeling > Correlation and Convolution >
Tags
Acknowledgements
Inspired by: Circular Cross Covariance
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!Discover Live Editor
Create scripts with code, output, and formatted text in a single executable document.
Version | Published | Release Notes | |
---|---|---|---|
1.0.0.0 |