本文主要是介绍气象要素奇异谱分析,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
软件:http://bbs.06climate.com/forum.php?mod=viewthread&tid=19681
步骤一:建立轨迹矩阵
原始信号长度为N,滑动窗口长度为Lp,Kp = N-Lp+1;轨迹矩阵就是按照列做分割,第一列为索引为1~Lp的信号,第二列为2~Lp+1,第三列为3~Lp+2,第Kp列为信号索引为Kp~N。
轨迹矩阵:
步骤二:奇异值分解
1) 计算XXT的特征值和特征向量U
2) 计算左奇异向量U和右奇异向量V,
求V的时候可以不用除lambda,因为重构信号的时候又乘上lambda。
步骤三:分组
分组的目的就是将目标信号成份和其他信号成份分开,在信号处理领域,通常认为前面r个较大的奇异值反应信号的主要能量。
步骤四:对角重构信号平均化
根据分组结果将对应的奇异向量重构:
i为选择的r个奇异向量。
对角平均化分为三部完成,对应于下面表格的三部分。
若:奇异矩阵是rca,Lp*Kp,其中Lp<Kp,重构信号为y,长度为N
第一部分:浅蓝色部分,1~Lp-1
y(1) = rca(1,1);
y(2) = (rca(1,2)+rca(2,1))/2;
y(3) = (rca(1,3)+rca(2,2)+rca(3,1))/3;
…
y(Lp-1) = (rca(1,Lp-1)+rca(2,Lp-2)+…+rca(Lp-1,1))/(Lp-1);
第二部分:橙色部分,Lp~Kp
y(Lp) = (rca(1,Lp)+rca(2,Lp-1)+…+rca(Lp,1))/Lp;
y(Lp+1) = (rca(1,Lp+1)+rca(2,Lp)+rca(3,Lp-1)…+rca(Lp,2))/Lp;
…
y(Kp) = (rca(1,Kp)+rca(2,Kp-1)+rca(3,Kp-2)+…+rca(Lp,Kp-Lp+1))/Lp;
第三部分:绿色部分,Kp+1~N
y(Kp+1) = (rca(2,Kp)+rca(3,Kp-1)+rca(4,Kp-2)+…+rca(Lp, Kp-Lp+2))/(Lp-1);
y(Kp+2) = (rca(3,Kp)+rca(4,Kp-1)+…+rca(Lp,Kp-Lp+3))/(Lp-2)
…
y(N-1) = (rca(Lp-1,Kp)+rca(Lp,Kp-1))/(Lp-(Lp-1)+1);
y(N) = rca(Lp,Kp);
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 |
|
参考:[1] https://wiki.mbalib.com/wiki/%E5%A5%87%E5%BC%82%E8%B0%B1%E5%88%86%E6%9E%90
[2]《基于改进奇异谱分析的信号去噪方法》http://journal.bit.edu.cn/zr/ch/reader/create_pdf.aspx?file_no=20160713&year_id=2016&quarter_id=7&falg=1
这篇关于气象要素奇异谱分析的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!