clc;clear all;close all;
%% 输入数据
x=xlsread('55567-2012.csv','G5:G1004');
k=36; % k表示分解为多少个子序列,人为设定
%% 对序列进行SSA分解:RR为分解得到的子序列,DD为得到的特征值
[RR,DD] = ssacom(x,k); % RR即为分解得到的子序列 DD为特征值
%semilogy(DD,'-*'); % 根据图像,判断前15个作为单独分量比较合适
t=1:length(DD);
y=log(DD);
figure(2)
plot(t,y)
cumsum_DD=cumsum(DD)/sum(DD); % cumsum_DD表示特征值占比 %cumsum为累加值函数
RR_reb=sum(RR(:,1:16),2);
RR_rec=sum(RR(:,17:36),2); % 前面的15个分别作为分量,第16个到36个加和得到RR_rec
RR_new=[RR_reb,RR_rec]; % sum(A,1)为列求和,sum(A,2)为行求和
%% 画图
RR_new=[x,RR_reb,RR_rec]; % sum(A,1)为列求和,sum(A,2)为行求和
figure(1)
for i=1:3 % 前面15个分量+RR_rec,一共16个分量
subplot(3,1,i);
plot(RR_new(:,i));
% xlabel('时间/5min/采样间隔');
% ylabel('风速(m/s)');
set(gca,'XTick',[0 200 400 600 size(RR_new,1)]);
set(gca,'XLim',[0 size(RR_new,1)]);
set(gca,'xtick',0:200:size(RR_new,1))
end
%plot(RR_new(:,i),'LineWidth',1,'Color',[0 0 0]);