資源簡介
即奇異譜分析,廣泛用于信號識別與預測。
代碼片段和文件信息
function?[sing_valuesUV]?=?ssa(ts?L)
%
%??Performs?decomposition?stage?of?the?Caterpillar-SSA?algorithm
%??i.e.?construction?of?trajectory?matrix?from?a?time?series?
%??and?its?Singular?Value?Decomposition
%
%??Parameters:
%????ts?--?a?time?series?(a?column)
%????L?--?window?length?(1 %
%??Returns:
%????sing_values?--?array?of?M?singular?values?(square?roots?of?eigen?values)
%???????????????????M=min(rank(ts)L)
%????U?--?a?matrix?of?M?eigenvectors?of?length?L?(R^LxM)?M=min(rank(ts)L)
%????V?--?a?matrix?of?M?factorvectors?of?length?K?(R^KxM)?M=min(rank(ts)L)
%
%
%??If?you?modify?this?source?code?somehow?please?send?me?the?modified?version.
%
%
%??(c)?Theodore?Alexandrov?(autossa@gmail.com)
%??Last?modified:?8?May?2006?
%
N=length(ts);
K=N-L+1;??%?K?must?be?>=1!
if?K<1
????errordlg(‘Wrong?L.?SSA?is?cancelled.‘?‘Error‘);
????return
end
%form?trajectory?matrix
X=zeros(LK);
for?i=1:L
????X(i:)=ts(i:i-1+K)‘;
end
%?prepare?to?finite?rank?time?series
M=min(?rank(X)?L?);
%SVD
[USV]?=?svd(X);?%?U_i?is?a?column?in?U?{V_i}?are?the?first?L?columns?of?V
%extract?sing.values?and?cut?them?to?the?rank?if?rank %it‘s?necessary?for?finite?rank?time?series
sing_values=diag(S);
if?M ????sing_values=sing_values(1:M);
end
%cut?eigen?vectors?to?the?rank?if?rank if?M ????U=U(:1:M);
end
%extract?factor?vectors
V=V(:1:M);
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件????????1464??2007-10-22?13:38??ssa.m
評論
共有 條評論