我正在嘗試為 colculate 自相關函式撰寫代碼。你能建議我做錯了什么嗎?提前致謝
i = 1:199;
U =sin(0.3*i);
sum_1 = 0;
for tau = 1:length(U)
for t = tau:length(U)-1
sum_1 = sum_1 sum(U(t).*U(t 1-tau));
r(tau)=sum_1;
end
end
uj5u.com熱心網友回復:
你可以做這樣的事情。這是原始演算法的一個實作,只做了一個小的優化;計算一半的序列并復制剩下的一半。
n = length(x);
m = 2*n - 1;
rxx = zeros(1,m);
for i = 1:length(x)
rxx(i) = dot(x(n-i 1:n), x(1:i).');
rxx(m-i 1) = rxx(i)';
end
例子:
x = [2, 3, -1];
rxx =
-2 3 14 3 -2
% MATLAB built-in
xcorr(x,x)
ans =
-2 3 14 3 -2
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/507949.html
