【发布时间】:2012-05-20 13:20:56
【问题描述】:
x 和 y 是 1x100000 个向量。
我计算了x 和y 的均值和方差。当我想计算自协方差和互协方差函数时,由于我的循环,模拟可能持续 5 分钟。不允许使用xcorr、xcov、mean、cov、var等。
请帮帮我。
提前致谢。
%%Mean of Vector x
Nx=length(x);
mx= sum(x)/Nx;
%%Mean of Vector y
Ny=length(y);
my=sum(y)/Ny;
%%Variance of x
varx=0;
for i=1:Nx
varx=varx+(abs(x(i)-mx)^(2));
end
varx=varx/Nx;
%%Variance of y
vary=0;
for j=1:Ny
vary=vary+(abs(y(j)-my)^(2));
end
vary=vary/Ny;
%%Auto-Covariance function of x
for k=1:Nx
Cxx(k)=0;
for i=1:(Nx-k+1)
Cxx(k)=Cxx(k)+(x(i+k-1)-mx)*conj((x(i)-my));
end
end
%%Auto-Covariance function of y
for s=1:Ny
Cyy(s)=0;
for j=1:(Ny-s+1)
Cyy(s)=Cyy(s)+(y(j+s-1)-my)*conj((y(j)-mx));
end
end
【问题讨论】:
-
是否允许使用
conv或fft? :-) -
如果
fft被允许,看看我的回答。
标签: matlab covariance