⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 cyclic_cross_covariance.m

📁 循环自相关函数工具箱
💻 M
字号:
function R=cyclic_cross_covariance(x,y,alpha,max_tau)%% CYCLIC_CROSS_COVARIANCE%              %              calculates the cyclic cross covariance between%              two signals x,y at frequency alpha%             %              R(k*alpha,tau)=E{x(t-tau/2)y(t+tau/2)exp(-jk(alpha)t)}%              for k=0 ... 1/alpha%              With signals x and y having their periodic average removed%% USAGE%              R=cyclic_cross_covariance(x,y,alpha,max_tau)%%              calculate cross covariance up to max_tau time lags% File: cyclic_cross_covariance.m% Last Revised: 23/4/98% Created: 24/11/97% Author: Andrew C. McCormick% (C) University of Strathclyde% Simple error checksif nargin~=4  error('Incorrect number of arguments for function cyclic_cross_covariance');endif alpha>2*pi  error('Cyclic frequency must be less than 2 pi in function cyclic_cross_covariance');end% Remove cyclic mean from signalscmx=cyclic_mean(x,alpha);cmy=cyclic_mean(y,alpha);lx=length(x);t=0:lx-1;T=ceil(2*pi/alpha)-1;for k=1:lx  x(k)=x(k)-1/(2*pi)*sum(cmx.*exp(j*alpha*(0:T)*(k-1)));  y(k)=y(k)-1/(2*pi)*sum(cmy.*exp(j*alpha*(0:T)*(k-1)));endR=zeros(2*max_tau,T+1);% Compute even time shift segmentsfor tau=-max_tau:2:max_tau  for k=0:T    R(tau+1+max_tau,k+1)=mean(x(1:lx-tau-max_tau).*y(tau+1+max_tau:lx) ...       .*exp(j*k*alpha*t(1+(tau+max_tau)/2:lx-(tau+max_tau)/2)));  endend% Compute odd time shift segmentst=t+0.5;for tau=-max_tau+1:2:max_tau  for k=0:T    R(tau+1+max_tau,k+1)=mean(x(1:lx-tau-max_tau).*y(tau+1+max_tau:lx) ...       .*exp(j*k*alpha*t(1+(tau+max_tau-1)/2:lx-(tau+max_tau+1)/2)));  endend

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -