压缩感知重构算法之分段正交匹配追踪(StOMP)
分段正交匹配追踪(StagewiseOMP)或者翻译为逐步正交匹配追踪,它是OMP另一种改进算法,每次迭代可以选择多个原子。此算法的输入参数中没有信号稀疏度K,因此相比于ROMP及CoSaMP有独到的优势。
0、符号说明如下:
压缩观测y=Φx,其中y为观测所得向量M×1,x为原信号N×1(M< (1)y为观测所得向量,大小为M×1 (2)x为原信号,大小为N×1 (3)θ为K稀疏的,是信号在x在某变换域的稀疏表示 (4)Φ称为观测矩阵、测量矩阵、测量基,大小为M×N (5)Ψ称为变换矩阵、变换基、稀疏矩阵、稀疏基、正交基字典矩阵,大小为N×N (6)A称为测度矩阵、传感矩阵、CS信息算子,大小为M×N 上式中,一般有K< 注意:这里的稀疏表示模型为x=Ψθ,所以传感矩阵A=ΦΨ;而有些文献中稀疏模型为θ=Ψx,而一般Ψ为Hermite矩阵(实矩阵时称为正交矩阵),所以Ψ-1=ΨH(实矩阵时为Ψ-1=ΨT),即x=ΨHθ,所以传感矩阵A=ΦΨH,例如沙威的OMP例程中就是如此。 1、StOMP重构算法流程: 2、分段正交匹配追踪(StOMP)Matlab代码(CS_StOMP.m) 代码参考了文献[4]中的SolveStOMP.m,也可参考文献[5]中的StOMP.m。其实文献[4]是斯坦福的SparseLab中的一个函数而已,链接为,最新版本为2.1,SolveStOMP.m在目录SparseLab21-Core\\SparseLab2.1-Core\\Solvers里面。 1. function[theta]=CS_StOMP(y,A,S,ts) 2. %CS_StOMP Summary ofthisfunctiongoes here 3. %Version:1.0 writtenbyjbb0523@2015-04-29 4. Ttailedexplanationgoeshere 5. %y =Phi*x 6. % x=Psi*theta 7. % y=Phi*Psi*theta 8. % 令 A = Phi*Psi, 则y=A*theta 9. % S is the maximum number of StOMP iterations to 10. % ts is the threshold parameter 11. % 现在已知y和A,求theta 12. % Reference:Donoho D L,Tsaig Y,Drori I,Starck J L.Sparse solution of perform